@aws-amplify/ui-react-storage 0.0.0-studio-e5b8195-20230912200241 → 0.0.0-studio-console-80bb2e2-20230921222703

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/esm/components/StorageImage/StorageImage.mjs +1 -0
  2. package/dist/esm/components/StorageManager/StorageManager.mjs +1 -0
  3. package/dist/esm/components/StorageManager/hooks/useStorageManager/actions.mjs +1 -0
  4. package/dist/esm/components/StorageManager/hooks/useStorageManager/reducer.mjs +1 -0
  5. package/dist/esm/components/StorageManager/hooks/useStorageManager/useStorageManager.mjs +1 -0
  6. package/dist/esm/components/StorageManager/hooks/useUploadFiles/useUploadFiles.mjs +1 -0
  7. package/dist/esm/components/StorageManager/ui/DropZone/DropZone.mjs +1 -0
  8. package/dist/esm/components/StorageManager/ui/FileList/FileControl.mjs +1 -0
  9. package/dist/esm/components/StorageManager/ui/FileList/FileDetails.mjs +1 -0
  10. package/dist/esm/components/StorageManager/ui/FileList/FileList.mjs +1 -0
  11. package/dist/esm/components/StorageManager/ui/FileList/FileRemoveButton.mjs +1 -0
  12. package/dist/esm/components/StorageManager/ui/FileList/FileStatusMessage.mjs +1 -0
  13. package/dist/esm/components/StorageManager/ui/FileList/FileThumbnail.mjs +1 -0
  14. package/dist/esm/components/StorageManager/ui/FileListFooter/FileListFooter.mjs +1 -0
  15. package/dist/esm/components/StorageManager/ui/FileListHeader/FileListHeader.mjs +1 -0
  16. package/dist/esm/components/StorageManager/ui/FilePicker/FilePicker.mjs +1 -0
  17. package/dist/esm/components/StorageManager/utils/checkMaxFileSize.mjs +1 -0
  18. package/dist/esm/components/StorageManager/utils/humanFileSize.mjs +1 -0
  19. package/dist/esm/components/StorageManager/utils/uploadFile.mjs +1 -0
  20. package/dist/esm/index.mjs +1 -0
  21. package/dist/index.js +1 -1
  22. package/dist/styles.css +52 -387
  23. package/package.json +9 -9
  24. package/dist/esm/components/StorageImage/StorageImage.js +0 -1
  25. package/dist/esm/components/StorageManager/StorageManager.js +0 -1
  26. package/dist/esm/components/StorageManager/hooks/useStorageManager/actions.js +0 -1
  27. package/dist/esm/components/StorageManager/hooks/useStorageManager/reducer.js +0 -1
  28. package/dist/esm/components/StorageManager/hooks/useStorageManager/useStorageManager.js +0 -1
  29. package/dist/esm/components/StorageManager/hooks/useUploadFiles/useUploadFiles.js +0 -1
  30. package/dist/esm/components/StorageManager/ui/DropZone/DropZone.js +0 -1
  31. package/dist/esm/components/StorageManager/ui/FileList/FileControl.js +0 -1
  32. package/dist/esm/components/StorageManager/ui/FileList/FileDetails.js +0 -1
  33. package/dist/esm/components/StorageManager/ui/FileList/FileList.js +0 -1
  34. package/dist/esm/components/StorageManager/ui/FileList/FileRemoveButton.js +0 -1
  35. package/dist/esm/components/StorageManager/ui/FileList/FileStatusMessage.js +0 -1
  36. package/dist/esm/components/StorageManager/ui/FileList/FileThumbnail.js +0 -1
  37. package/dist/esm/components/StorageManager/ui/FileListFooter/FileListFooter.js +0 -1
  38. package/dist/esm/components/StorageManager/ui/FileListHeader/FileListHeader.js +0 -1
  39. package/dist/esm/components/StorageManager/ui/FilePicker/FilePicker.js +0 -1
  40. package/dist/esm/components/StorageManager/utils/checkMaxFileSize.js +0 -1
  41. package/dist/esm/components/StorageManager/utils/humanFileSize.js +0 -1
  42. package/dist/esm/components/StorageManager/utils/uploadFile.js +0 -1
  43. package/dist/esm/index.js +0 -1
  44. /package/dist/esm/components/StorageManager/hooks/useStorageManager/{types.js → types.mjs} +0 -0
  45. /package/dist/esm/components/StorageManager/hooks/useUploadFiles/{resolveFile.js → resolveFile.mjs} +0 -0
  46. /package/dist/esm/components/StorageManager/{types.js → types.mjs} +0 -0
  47. /package/dist/esm/components/StorageManager/ui/Container/{Container.js → Container.mjs} +0 -0
  48. /package/dist/esm/components/StorageManager/utils/{displayText.js → displayText.mjs} +0 -0
  49. /package/dist/esm/components/StorageManager/utils/{filterAllowedFiles.js → filterAllowedFiles.mjs} +0 -0
@@ -0,0 +1 @@
1
+ import*as e from"react";import r from"classnames";import{ComponentClassName as a}from"@aws-amplify/ui";import{Image as t}from"@aws-amplify/ui-react";import{useStorageURL as o}from"@aws-amplify/ui-react/internal";const m=({accessLevel:m,className:i,fallbackSrc:s,identityId:c,imgKey:l,onStorageGetError:n,...f})=>{const p=e.useMemo((()=>({level:m,identityId:c})),[m,c]),y=o({key:l,options:p,fallbackURL:s,onStorageGetError:n});return e.createElement(t,{...f,className:r(a.StorageImage,i),src:y})};export{m as StorageImage};
@@ -0,0 +1 @@
1
+ import*as e from"react";import{Logger as i}from"aws-amplify";import{ComponentClassName as t}from"@aws-amplify/ui";import{VisuallyHidden as o}from"@aws-amplify/ui-react";import{useDropZone as l}from"@aws-amplify/ui-react/internal";import{useStorageManager as r}from"./hooks/useStorageManager/useStorageManager.mjs";import{useUploadFiles as s}from"./hooks/useUploadFiles/useUploadFiles.mjs";import{FileStatus as a}from"./types.mjs";import{Container as n}from"./ui/Container/Container.mjs";import{DropZone as p}from"./ui/DropZone/DropZone.mjs";import{FileList as m}from"./ui/FileList/FileList.mjs";import{FileListHeader as c}from"./ui/FileListHeader/FileListHeader.mjs";import{FileListFooter as u}from"./ui/FileListFooter/FileListFooter.mjs";import{FilePicker as d}from"./ui/FilePicker/FilePicker.mjs";import{checkMaxFileSize as F}from"./utils/checkMaxFileSize.mjs";import{defaultStorageManagerDisplayText as f}from"./utils/displayText.mjs";import{filterAllowedFiles as g}from"./utils/filterAllowedFiles.mjs";const U=new i("Storage.StorageManager");const E=Object.assign(e.forwardRef((function({acceptedFileTypes:i=[],accessLevel:E,autoUpload:y=!0,defaultFiles:D,displayText:L,isResumable:S=!1,maxFileCount:h,maxFileSize:x,onUploadError:C,onUploadSuccess:j,onFileRemove:T,onUploadStart:k,showThumbnails:v=!0,processFile:w,components:P,provider:M,path:b},R){E&&h||U.warn("StorageManager requires accessLevel and maxFileCount props");const A={Container:n,DropZone:p,FileList:m,FilePicker:d,FileListHeader:c,FileListFooter:u,...P},H=void 0===h||"number"==typeof h&&h>1,Z={...f,...L},{getFileSizeErrorText:z}=Z,O=e=>F({file:e,maxFileSize:x,getFileSizeErrorText:z}),{addFiles:q,clearFiles:I,files:Q,removeUpload:$,queueFiles:N,setUploadingFile:B,setUploadPaused:G,setUploadProgress:J,setUploadSuccess:K,setUploadResumed:V}=r(D);e.useImperativeHandle(R,(()=>({clearFiles:I})));const{dragState:W,...X}=l({acceptedFileTypes:i,onDropComplete:({acceptedFiles:e,rejectedFiles:t})=>{t&&t.length>0&&U.warn("Rejected files: ",t);const o=g(e,i);q({files:o,status:y?a.QUEUED:a.ADDED,getFileErrorMessage:O})}});s({accessLevel:E,files:Q,isResumable:S,maxFileCount:h,onUploadError:C,onUploadSuccess:j,onUploadStart:k,setUploadingFile:B,setUploadProgress:J,setUploadSuccess:K,processFile:w,provider:M,path:b});const Y=0!==Q.length&&Q.every((e=>e?.status===a.UPLOADED)),_=Q.filter((e=>e.progress<100)).length>h,ee=Q.filter((e=>e?.status===a.UPLOADED)).length,ie=Q.length-ee,te=y?0:ie,oe=Q.length>0,le=!y&&ie>0,re=e.useRef(null);return e.createElement(A.Container,{className:`${t.StorageManager} ${oe?t.StorageManagerPreviewer:""}`},e.createElement(A.DropZone,{inDropZone:"inactive"!==W,...X,displayText:Z},e.createElement(e.Fragment,null,e.createElement(A.FilePicker,{onClick:function(){re.current&&(re.current.click(),re.current.value="")}},Z.browseFilesText),e.createElement(o,null,e.createElement("input",{type:"file",tabIndex:-1,ref:re,onChange:e=>{const{files:i}=e.target;i&&0!==i.length&&q({files:Array.from(i),status:y?a.QUEUED:a.ADDED,getFileErrorMessage:O})},multiple:H,accept:i.join(",")})))),oe?e.createElement(A.FileListHeader,{allUploadsSuccessful:Y,displayText:Z,fileCount:Q.length,remainingFilesCount:ie,selectedFilesCount:te}):null,e.createElement(A.FileList,{displayText:Z,files:Q,isResumable:S,onCancelUpload:({id:e,uploadTask:i})=>{i.pause(),$({id:e})},onDeleteUpload:({id:e})=>{if($({id:e}),"function"==typeof T){const i=Q.find((i=>i.id===e));i&&T({key:i.key})}},onResume:({id:e,uploadTask:i})=>{i.resume(),V({id:e})},onPause:({id:e,uploadTask:i})=>{i.pause(),G({id:e})},showThumbnails:v,hasMaxFilesError:_,maxFileCount:h}),le?e.createElement(A.FileListFooter,{displayText:Z,remainingFilesCount:ie,onClearAll:()=>{I()},onUploadAll:()=>{N()}}):null)})),{Container:n,DropZone:p,FileList:m,FileListHeader:c,FileListFooter:u,FilePicker:d});export{E as StorageManager};
@@ -0,0 +1 @@
1
+ import{StorageManagerActionTypes as s}from"./types.mjs";const e=({files:e,status:t,getFileErrorMessage:p})=>({type:s.ADD_FILES,files:e,status:t,getFileErrorMessage:p}),t=()=>({type:s.CLEAR_FILES}),p=()=>({type:s.QUEUE_FILES}),E=({id:e,uploadTask:t})=>({type:s.SET_STATUS_UPLOADING,id:e,uploadTask:t}),i=({id:e,progress:t})=>({type:s.SET_UPLOAD_PROGRESS,id:e,progress:t}),r=({id:e,status:t})=>({type:s.SET_STATUS,id:e,status:t}),S=({id:e})=>({type:s.REMOVE_UPLOAD,id:e});export{e as addFilesAction,t as clearFilesAction,p as queueFilesAction,S as removeUploadAction,i as setUploadProgressAction,r as setUploadStatusAction,E as setUploadingFileAction};
@@ -0,0 +1 @@
1
+ import{FileStatus as s}from"../../types.mjs";import{StorageManagerActionTypes as e}from"./types.mjs";function r(r,t){switch(t.type){case e.ADD_FILES:{const{files:e,status:i}=t,a=e.map((e=>{const r=t.getFileErrorMessage(e);return{id:e.name,file:e,error:r,key:e.name,status:r?s.ERROR:i,isImage:e.type.startsWith("image/"),progress:-1}})),o=[...r.files,...a];return{...r,files:o}}case e.CLEAR_FILES:return{...r,files:[]};case e.QUEUE_FILES:{const{files:e}=r,t=e.reduce(((e,r)=>[...e,{...r,status:s.QUEUED}]),[]);return{...r,files:t}}case e.SET_STATUS_UPLOADING:{const{id:e,uploadTask:i}=t,{files:a}=r,o=a.reduce(((r,t)=>t.id===e?[...r,{...t,status:s.UPLOADING,progress:0,uploadTask:i||void 0}]:[...r,t]),[]);return{...r,files:o}}case e.SET_UPLOAD_PROGRESS:{const{id:s,progress:e}=t,{files:i}=r,a=i.reduce(((r,t)=>t.id===s?[...r,{...t,progress:e}]:[...r,t]),[]);return{...r,files:a}}case e.SET_STATUS:{const{id:s,status:e}=t,{files:i}=r,a=i.reduce(((r,t)=>t.id===s?[...r,{...t,status:e}]:[...r,t]),[]);return{...r,files:a}}case e.REMOVE_UPLOAD:{const{id:s}=t,{files:e}=r,i=e.reduce(((e,r)=>r.id===s?[...e]:[...e,r]),[]);return{...r,files:i}}}}export{r as storageManagerStateReducer};
@@ -0,0 +1 @@
1
+ import s from"react";import{FileStatus as e}from"../../types.mjs";import{storageManagerStateReducer as i}from"./reducer.mjs";import{addFilesAction as r,clearFilesAction as t,queueFilesAction as o,setUploadingFileAction as a,setUploadProgressAction as d,setUploadStatusAction as l,removeUploadAction as p}from"./actions.mjs";import{isObject as u}from"@aws-amplify/ui";const m=s=>(s=>!(!u(s)||!s.key))(s)?{...s,id:s.key,status:e.UPLOADED}:void 0;function f(u=[]){const[{files:f},c]=s.useReducer(i,{files:Array.isArray(u)?u.map(m).filter((s=>!!s)):[]});return{removeUpload:({id:s})=>{c(p({id:s}))},setUploadPaused:({id:s})=>{c(l({id:s,status:e.PAUSED}))},setUploadProgress:({progress:s,id:e})=>{c(d({id:e,progress:s}))},setUploadResumed:({id:s})=>{c(l({id:s,status:e.UPLOADING}))},setUploadSuccess:({id:s})=>{c(l({id:s,status:e.UPLOADED}))},setUploadingFile:({uploadTask:s,id:e})=>{c(a({id:e,uploadTask:s}))},queueFiles:()=>{c(o())},addFiles:({files:s,status:e,getFileErrorMessage:i})=>{c(r({files:s,status:e,getFileErrorMessage:i}))},clearFiles:()=>{c(t())},files:f}}export{f as useStorageManager};
@@ -0,0 +1 @@
1
+ import*as e from"react";import{uploadFile as o}from"../../utils/uploadFile.mjs";import{FileStatus as s}from"../../types.mjs";import{resolveFile as l}from"./resolveFile.mjs";function r({files:r,accessLevel:t,isResumable:a,setUploadProgress:i,setUploadingFile:p,setUploadSuccess:c,onUploadError:d,onUploadSuccess:f,onUploadStart:m,maxFileCount:n,processFile:u,provider:k,path:U=""}){e.useEffect((()=>{const e=r.filter((e=>e.status===s.QUEUED));if(!(e.length>n))for(const{file:s,key:r,id:n}of e){const e=e=>{f?.(e),c({id:n})},y=e=>{const o=0===e.total?100:Math.floor(e.loaded/e.total*100);i({id:n,progress:o})},v=e=>{d?.(e,{key:r})};s&&l({processFile:u,file:s,key:r}).then((({key:s,...l})=>{m?.({key:s});const r=o({...l,isResumable:a,provider:k,key:U+s,level:t,completeCallback:e,progressCallback:y,errorCallback:v});p({id:n,uploadTask:a?r:void 0})}))}}),[r,t,a,i,p,d,f,m,n,c,u,k,U])}export{r as useUploadFiles};
@@ -0,0 +1 @@
1
+ import a from"react";import e from"classnames";import{classNameModifier as r,ComponentClassName as o}from"@aws-amplify/ui";import{View as t,Text as n}from"@aws-amplify/ui-react";import{useIcons as i,IconUpload as m}from"@aws-amplify/ui-react/internal";function p({children:p,displayText:s,inDropZone:g,onDragEnter:l,onDragLeave:c,onDragOver:D,onDragStart:d,onDrop:f,testId:u}){const{dropFilesText:E}=s,S=i("storageManager");return a.createElement(t,{className:e(g&&r(o.StorageManagerDropZone,"active"),o.StorageManagerDropZone),"data-testid":u,onDragStart:d,onDragEnter:l,onDragLeave:c,onDrop:f,onDragOver:D},a.createElement(t,{as:"span","aria-hidden":!0,className:o.StorageManagerDropZoneIcon},S?.upload??a.createElement(m,null)),a.createElement(n,{className:o.StorageManagerDropZoneText},E),p)}export{p as DropZone};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as a}from"@aws-amplify/ui";import{View as t,Loader as r,Button as l}from"@aws-amplify/ui-react";import{FileStatus as s}from"../../types.mjs";import{FileStatusMessage as i}from"./FileStatusMessage.mjs";import{FileRemoveButton as m}from"./FileRemoveButton.mjs";import{UploadDetails as o}from"./FileDetails.mjs";import{FileThumbnail as n}from"./FileThumbnail.mjs";function u({onPause:u,onResume:c,displayName:p,errorMessage:g,isImage:f,isResumable:d,loaderIsDeterminate:T,onRemove:x,progress:E,showThumbnails:S=!0,size:N,status:P,displayText:D,thumbnailUrl:U}){const{getPausedText:v,getUploadingText:y,uploadSuccessfulText:F,pauseText:M,resumeText:j}=D;return e.createElement(t,{className:a.StorageManagerFile},e.createElement(t,{className:a.StorageManagerFileWrapper},S?e.createElement(n,{isImage:f,fileName:p,url:U}):null,e.createElement(o,{displayName:p,fileSize:N}),P===s.UPLOADING?e.createElement(r,{className:a.StorageManagerLoader,variation:"linear",percentage:E,isDeterminate:T,isPercentageTextHidden:!0}):null,!d||P!==s.UPLOADING&&P!==s.PAUSED?null:P===s.PAUSED?e.createElement(l,{onClick:c,size:"small",variation:"link"},j):e.createElement(l,{onClick:u,size:"small",variation:"link"},M),e.createElement(m,{altText:`Remove file ${p}`,onClick:x})),e.createElement(i,{uploadSuccessfulText:F,getUploadingText:y,getPausedText:v,status:P,errorMessage:g,percentage:E}))}export{u as FileControl};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as a}from"@aws-amplify/ui";import{View as m,Text as r}from"@aws-amplify/ui-react";import{humanFileSize as t}from"../../utils/humanFileSize.mjs";import"aws-amplify";const i=({displayName:i,fileSize:l})=>e.createElement(e.Fragment,null,e.createElement(m,{className:a.StorageManagerFileMain},e.createElement(r,{className:a.StorageManagerFileName},i)),e.createElement(r,{as:"span",className:a.StorageManagerFileSize},l?t(l,!0):""));export{i as UploadDetails};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as a}from"@aws-amplify/ui";import{View as r,Alert as s}from"@aws-amplify/ui-react";import{FileStatus as o}from"../../types.mjs";import{FileControl as i}from"./FileControl.mjs";function t({displayText:t,files:l,hasMaxFilesError:m,isResumable:n,onCancelUpload:u,onDeleteUpload:p,onResume:d,onPause:c,showThumbnails:f,maxFileCount:g}){if(l.length<1)return null;const{getMaxFilesErrorText:T}=t,U=T(g);return e.createElement(r,{className:a.StorageManagerFileList},l.map((a=>{const{file:r,status:s,progress:l,error:m,key:g,isImage:T,id:U,uploadTask:h}=a,y=r&&T?URL.createObjectURL(r):"",x=!n||l>0,R=s===o.UPLOADING;return e.createElement(i,{displayName:g,errorMessage:m,displayText:t,isImage:T,isUploading:R,isResumable:n,key:U,loaderIsDeterminate:x,onRemove:()=>{n&&(s===o.UPLOADING||s===o.PAUSED)&&h?u({id:U,uploadTask:h}):p({id:U})},onPause:()=>{h&&c({id:U,uploadTask:h})},onResume:()=>{h&&d({id:U,uploadTask:h})},progress:l,showThumbnails:f,size:r?.size,status:s,thumbnailUrl:y})})),m&&e.createElement(s,{variation:"error",heading:U}))}export{t as FileList};
@@ -0,0 +1 @@
1
+ import e from"react";import{useIcons as t,IconClose as a}from"@aws-amplify/ui-react/internal";import{Button as r,VisuallyHidden as n,View as l}from"@aws-amplify/ui-react";const m=({altText:m,onClick:i})=>{const o=t("storageManager");return e.createElement(r,{size:"small",onClick:i},e.createElement(n,null,m),e.createElement(l,{as:"span","aria-hidden":!0,fontSize:"medium"},o?.remove??e.createElement(a,null)))};export{m as FileRemoveButton};
@@ -0,0 +1 @@
1
+ import e from"react";import a from"classnames";import{ComponentClassName as t,classNameModifier as r}from"@aws-amplify/ui";import{Text as s,View as l}from"@aws-amplify/ui-react";import{useIcons as n,IconError as c,IconCheck as m}from"@aws-amplify/ui-react/internal";import{FileStatus as o}from"../../types.mjs";const u=({errorMessage:u,getPausedText:i,getUploadingText:g,percentage:p,status:S,uploadSuccessfulText:f})=>{const E=n("storageManager");switch(S){case o.UPLOADING:return e.createElement(s,{className:t.StorageManagerFileStatus},g(p));case o.PAUSED:return e.createElement(s,{className:t.StorageManagerFileStatus},i(p));case o.UPLOADED:return e.createElement(s,{className:a(t.StorageManagerFileStatus,r(t.StorageManagerFileStatus,"success"))},e.createElement(l,{as:"span",fontSize:"xl"},E?.success??e.createElement(m,null)),f);case o.ERROR:return e.createElement(s,{className:a(t.StorageManagerFileStatus,r(t.StorageManagerFileStatus,"error"))},e.createElement(l,{as:"span",fontSize:"xl"},E?.error??e.createElement(c,null)),u);default:return null}};export{u as FileStatusMessage};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as a}from"@aws-amplify/ui";import{Image as r,View as t}from"@aws-amplify/ui-react";import{useIcons as m,IconFile as i}from"@aws-amplify/ui-react/internal";const l=({fileName:l,isImage:o,url:n})=>{const c=m("storageManager"),s=o?e.createElement(r,{alt:l,src:n}):c?.file??e.createElement(i,null);return e.createElement(t,{className:a.StorageManagerFileImage},s)};export{l as FileThumbnail};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as a}from"@aws-amplify/ui";import{View as t,Button as r}from"@aws-amplify/ui-react";function l({displayText:l,remainingFilesCount:i,onClearAll:o,onUploadAll:n}){const{clearAllButtonText:m,getUploadButtonText:c}=l;return e.createElement(t,{className:a.StorageManagerPreviewerFooter},e.createElement(t,{className:a.StorageManagerPreviewerActions},e.createElement(r,{size:"small",variation:"link",onClick:o},m),e.createElement(r,{size:"small",variation:"primary",onClick:n},c(i))))}export{l as FileListFooter};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as t}from"@aws-amplify/ui";import{Text as i}from"@aws-amplify/ui-react";function a({allUploadsSuccessful:a,displayText:l,fileCount:r,remainingFilesCount:o,selectedFilesCount:s=0}){const{getFilesUploadedText:n,getRemainingFilesText:m,getSelectedFilesText:c}=l;return e.createElement(i,{className:t.StorageManagerPreviewerText},s?c(s):a?n(r):m(o))}export{a as FileListHeader};
@@ -0,0 +1 @@
1
+ import e from"react";import{ComponentClassName as r}from"@aws-amplify/ui";import{Button as a}from"@aws-amplify/ui-react";function i({children:i,className:m=r.StorageManagerFilePicker,size:t="small",...l}){return e.createElement(a,{...l,className:m,size:t},i)}export{i as FilePicker};
@@ -0,0 +1 @@
1
+ import{humanFileSize as e}from"./humanFileSize.mjs";const i=({file:i,getFileSizeErrorText:o,maxFileSize:r})=>void 0===r?"":i.size>r?o(e(r,!0)):"";export{i as checkMaxFileSize};
@@ -0,0 +1 @@
1
+ function B(B,t=!1,i=1){const n=t?1e3:1024;if(Math.abs(B)<n)return`${B} B`;const e=t?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let o=-1;const r=10**i;do{B/=n,++o}while(Math.round(Math.abs(B)*r)/r>=n&&o<e.length-1);return B.toFixed(i)+" "+e[o]}export{B as humanFileSize};
@@ -0,0 +1 @@
1
+ import{Storage as e}from"aws-amplify";function r({file:r,key:l,level:a="private",progressCallback:t,errorCallback:o,completeCallback:p,isResumable:c=!1,provider:s,...b}){const i=r.type||"binary/octet-stream";return!0===c?e.put(l,r,{level:a,resumable:!0,progressCallback:t,errorCallback:o,completeCallback:p,contentType:i,provider:s,...b}):e.put(l,r,{level:a,resumable:!1,progressCallback:t,contentType:i,provider:s,...b}).then(p,o)}export{r as uploadFile};
@@ -0,0 +1 @@
1
+ export{StorageImage}from"./components/StorageImage/StorageImage.mjs";export{StorageManager}from"./components/StorageManager/StorageManager.mjs";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),a=require("react"),t=require("classnames"),s=require("@aws-amplify/ui-react"),l=require("@aws-amplify/ui-react/internal"),r=require("aws-amplify"),n=require("@aws-amplify/ui");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var a=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),a.default=e,Object.freeze(a)}var c=o(a),u=i(a),d=i(t);var m,g;function p(e,a){switch(a.type){case g.ADD_FILES:{const{files:t,status:s}=a,l=t.map((e=>{const t=a.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?m.ERROR:s,isImage:e.type.startsWith("image/"),progress:-1}})),r=[...e.files,...l];return Object.assign(Object.assign({},e),{files:r})}case g.CLEAR_FILES:return Object.assign(Object.assign({},e),{files:[]});case g.QUEUE_FILES:{const{files:a}=e,t=a.reduce(((e,a)=>[...e,Object.assign(Object.assign({},a),{status:m.QUEUED})]),[]);return Object.assign(Object.assign({},e),{files:t})}case g.SET_STATUS_UPLOADING:{const{id:t,uploadTask:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:m.UPLOADING,progress:0,uploadTask:s||void 0})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case g.SET_UPLOAD_PROGRESS:{const{id:t,progress:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{progress:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case g.SET_STATUS:{const{id:t,status:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case g.REMOVE_UPLOAD:{const{id:t}=a,{files:s}=e,l=s.reduce(((e,a)=>a.id===t?[...e]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:l})}}}!function(e){e.ADDED="added",e.QUEUED="queued",e.UPLOADING="uploading",e.PAUSED="paused",e.ERROR="error",e.UPLOADED="uploaded"}(m||(m={})),function(e){e.ADD_FILES="ADD_FILES",e.CLEAR_FILES="CLEAR_FILES",e.QUEUE_FILES="QUEUE_FILES",e.SET_STATUS="SET_STATUS",e.SET_STATUS_UPLOADING="SET_STATUS_UPLOADING",e.SET_UPLOAD_PROGRESS="SET_UPLOAD_PROGRESS",e.REMOVE_UPLOAD="REMOVE_UPLOAD"}(g||(g={}));const f=({files:e,status:a,getFileErrorMessage:t})=>({type:g.ADD_FILES,files:e,status:a,getFileErrorMessage:t}),E=()=>({type:g.CLEAR_FILES}),S=()=>({type:g.QUEUE_FILES}),T=({id:e,uploadTask:a})=>({type:g.SET_STATUS_UPLOADING,id:e,uploadTask:a}),U=({id:e,progress:a})=>({type:g.SET_UPLOAD_PROGRESS,id:e,progress:a}),F=({id:e,status:a})=>({type:g.SET_STATUS,id:e,status:a}),C=({id:e})=>({type:g.REMOVE_UPLOAD,id:e}),b=e=>(e=>!(!n.isObject(e)||!e.key))(e)?Object.assign(Object.assign({},e),{id:e.key,status:m.UPLOADED}):void 0;function D(a){var{file:t,key:s,level:l="private",progressCallback:n,errorCallback:i,completeCallback:o,isResumable:c=!1,provider:u}=a,d=e.__rest(a,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const m=t.type||"binary/octet-stream";return!0===c?r.Storage.put(s,t,Object.assign({level:l,resumable:!0,progressCallback:n,errorCallback:i,completeCallback:o,contentType:m,provider:u},d)):r.Storage.put(s,t,Object.assign({level:l,resumable:!1,progressCallback:n,contentType:m,provider:u},d)).then(o,i)}const x=({processFile:e,file:a,key:t})=>new Promise(((s,l)=>{const r=n.isFunction(e)?e({file:a,key:t}):{file:a,key:t};r instanceof Promise?r.then(s).catch(l):s(r)}));function O({children:e,className:a}){return u.default.createElement(s.View,{className:a},e)}function v({children:e,displayText:a,inDropZone:t,onDragEnter:r,onDragLeave:i,onDragOver:o,onDragStart:c,onDrop:m,testId:g}){var p;const{dropFilesText:f}=a,E=l.useIcons("storageManager");return u.default.createElement(s.View,{className:d.default(t&&n.classNameModifier(s.ComponentClassNames.StorageManagerDropZone,"active"),s.ComponentClassNames.StorageManagerDropZone),"data-testid":g,onDragStart:c,onDragEnter:r,onDragLeave:i,onDrop:m,onDragOver:o},u.default.createElement(s.View,{as:"span","aria-hidden":!0,className:s.ComponentClassNames.StorageManagerDropZoneIcon},null!==(p=null==E?void 0:E.upload)&&void 0!==p?p:u.default.createElement(l.IconUpload,null)),u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerDropZoneText},f),e)}const y=({errorMessage:e,getPausedText:a,getUploadingText:t,percentage:r,status:i,uploadSuccessfulText:o})=>{var c,g;const p=l.useIcons("storageManager");switch(i){case m.UPLOADING:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},t(r));case m.PAUSED:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},a(r));case m.UPLOADED:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"success"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},null!==(c=null==p?void 0:p.success)&&void 0!==c?c:u.default.createElement(l.IconCheck,null)),o);case m.ERROR:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"error"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},null!==(g=null==p?void 0:p.error)&&void 0!==g?g:u.default.createElement(l.IconError,null)),e);default:return null}},N=({altText:e,onClick:a})=>{var t;const r=l.useIcons("storageManager");return u.default.createElement(s.Button,{size:"small",onClick:a},u.default.createElement(s.VisuallyHidden,null,e),u.default.createElement(s.View,{as:"span","aria-hidden":!0,fontSize:"medium"},null!==(t=null==r?void 0:r.remove)&&void 0!==t?t:u.default.createElement(l.IconClose,null)))},L=({displayName:e,fileSize:a})=>u.default.createElement(u.default.Fragment,null,u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileMain},u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileName},e)),u.default.createElement(s.Text,{as:"span",className:s.ComponentClassNames.StorageManagerFileSize},a?n.humanFileSize(a,!0):"")),k=({fileName:e,isImage:a,url:t})=>{var r;const n=l.useIcons("storageManager"),i=a?u.default.createElement(s.Image,{alt:e,src:t}):null!==(r=null==n?void 0:n.file)&&void 0!==r?r:u.default.createElement(l.IconFile,null);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileImage},i)};function P({onPause:e,onResume:a,displayName:t,errorMessage:l,isImage:r,isResumable:n,loaderIsDeterminate:i,onRemove:o,progress:c,showThumbnails:d=!0,size:g,status:p,displayText:f,thumbnailUrl:E}){const{getPausedText:S,getUploadingText:T,uploadSuccessfulText:U,pauseText:F,resumeText:C}=f;return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFile},u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileWrapper},d?u.default.createElement(k,{isImage:r,fileName:t,url:E}):null,u.default.createElement(L,{displayName:t,fileSize:g}),p===m.UPLOADING?u.default.createElement(s.Loader,{className:s.ComponentClassNames.StorageManagerLoader,variation:"linear",percentage:c,isDeterminate:i,isPercentageTextHidden:!0}):null,!n||p!==m.UPLOADING&&p!==m.PAUSED?null:p===m.PAUSED?u.default.createElement(s.Button,{onClick:a,size:"small",variation:"link"},C):u.default.createElement(s.Button,{onClick:e,size:"small",variation:"link"},F),u.default.createElement(N,{altText:`Remove file ${t}`,onClick:o})),u.default.createElement(y,{uploadSuccessfulText:U,getUploadingText:T,getPausedText:S,status:p,errorMessage:l,percentage:c}))}function A({displayText:e,files:a,hasMaxFilesError:t,isResumable:l,onCancelUpload:r,onDeleteUpload:n,onResume:i,onPause:o,showThumbnails:c,maxFileCount:d}){if(a.length<1)return null;const{getMaxFilesErrorText:g}=e,p=g(d);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:d,error:g,key:p,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!l||d>0,F=s===m.UPLOADING;return u.default.createElement(P,{displayName:p,errorMessage:g,displayText:e,isImage:f,isUploading:F,isResumable:l,key:E,loaderIsDeterminate:U,onRemove:()=>{l&&(s===m.UPLOADING||s===m.PAUSED)&&S?r({id:E,uploadTask:S}):n({id:E})},onPause:()=>{S&&o({id:E,uploadTask:S})},onResume:()=>{S&&i({id:E,uploadTask:S})},progress:d,showThumbnails:c,size:null==t?void 0:t.size,status:s,thumbnailUrl:T})})),t&&u.default.createElement(s.Alert,{variation:"error",heading:p}))}function M({allUploadsSuccessful:e,displayText:a,fileCount:t,remainingFilesCount:l,selectedFilesCount:r=0}){const{getFilesUploadedText:n,getRemainingFilesText:i,getSelectedFilesText:o}=a;return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerPreviewerText},r?o(r):e?n(t):i(l))}function h({displayText:e,remainingFilesCount:a,onClearAll:t,onUploadAll:l}){const{clearAllButtonText:r,getUploadButtonText:n}=e;return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerPreviewerFooter},u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerPreviewerActions},u.default.createElement(s.Button,{size:"small",variation:"link",onClick:t},r),u.default.createElement(s.Button,{size:"small",variation:"primary",onClick:l},n(a))))}function R(a){var{children:t,className:l=s.ComponentClassNames.StorageManagerFilePicker,size:r="small"}=a,n=e.__rest(a,["children","className","size"]);return u.default.createElement(s.Button,Object.assign({},n,{className:l,size:r}),t)}const I=({file:e,getFileSizeErrorText:a,maxFileSize:t})=>void 0===t?"":e.size>t?a(function(e,a=!1,t=1){const s=a?1e3:1024;if(Math.abs(e)<s)return`${e} B`;const l=a?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let r=-1;const n=Math.pow(10,t);do{e/=s,++r}while(Math.round(Math.abs(e)*n)/n>=s&&r<l.length-1);return e.toFixed(t)+" "+l[r]}(t,!0)):"",_={getFilesUploadedText:e=>`${e} ${1===e?"file uploaded":"files uploaded"}`,getFileSizeErrorText:e=>`File size must be below ${e}`,getRemainingFilesText:e=>`${e} ${1===e?"file":"files"} uploading`,getSelectedFilesText:e=>`${e} ${1===e?"file":"files"} selected`,getUploadingText:e=>"Uploading"+(e>0?`: ${e}%`:""),getUploadButtonText:e=>`Upload ${e} ${1===e?"file":"files"}`,getMaxFilesErrorText:e=>`Cannot choose more than ${e} ${1===e?"file":"files"}. Remove files before updating`,getErrorText:e=>e,doneButtonText:"Done",clearAllButtonText:"Clear all",extensionNotAllowedText:"Extension not allowed",browseFilesText:"Browse files",dropFilesText:"Drop files here or",pauseText:"Pause",resumeText:"Resume",uploadSuccessfulText:"Uploaded",getPausedText:e=>`Paused: ${e}%`},j=new r.Logger("Storage.StorageManager");const w=Object.assign(c.forwardRef((function({acceptedFileTypes:a=[],accessLevel:t,autoUpload:r=!0,defaultFiles:n,displayText:i,isResumable:o=!1,maxFileCount:d,maxFileSize:g,onUploadError:y,onUploadSuccess:N,onFileRemove:L,onUploadStart:k,showThumbnails:P=!0,processFile:w,components:B,provider:z,path:G},V){t&&d||j.warn("FileUploader requires accessLevel and maxFileCount props");const $=Object.assign({Container:O,DropZone:v,FileList:A,FilePicker:R,FileListHeader:M,FileListFooter:h},B),Z=void 0===d||"number"==typeof d&&d>1,q=Object.assign(Object.assign({},_),i),{getFileSizeErrorText:Q}=q,H=e=>I({file:e,maxFileSize:g,getFileSizeErrorText:Q}),{addFiles:W,clearFiles:K,files:Y,removeUpload:J,queueFiles:X,setUploadingFile:ee,setUploadPaused:ae,setUploadProgress:te,setUploadSuccess:se,setUploadResumed:le}=function(e=[]){const[{files:a},t]=u.default.useReducer(p,{files:Array.isArray(e)?e.map(b).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(C({id:e}))},setUploadPaused:({id:e})=>{t(F({id:e,status:m.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(U({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(F({id:e,status:m.UPLOADING}))},setUploadSuccess:({id:e})=>{t(F({id:e,status:m.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(T({id:a,uploadTask:e}))},queueFiles:()=>{t(S())},addFiles:({files:e,status:a,getFileErrorMessage:s})=>{t(f({files:e,status:a,getFileErrorMessage:s}))},clearFiles:()=>{t(E())},files:a}}(n);c.useImperativeHandle(V,(()=>({clearFiles:K})));const re=l.useDropZone({acceptedFileTypes:a,onDropComplete:({acceptedFiles:e,rejectedFiles:t})=>{t&&t.length>0&&j.warn("Rejected files: ",t);const s=((e,a)=>!a||0===a.length||a.includes("*")?e:e.filter((e=>{const t=e.name||"",s=(e.type||"").toLowerCase(),l=s.replace(/\/.*$/,"");return a.some((e=>{const a=e.trim().toLowerCase();return"."===a.charAt(0)?t.toLowerCase().endsWith(a):a.endsWith("/*")?l===a.replace(/\/.*$/,""):s===a}))})))(e,a);W({files:s,status:r?m.QUEUED:m.ADDED,getFileErrorMessage:H})}}),{dragState:ne}=re,ie=e.__rest(re,["dragState"]);!function({files:a,accessLevel:t,isResumable:s,setUploadProgress:l,setUploadingFile:r,setUploadSuccess:n,onUploadError:i,onUploadSuccess:o,onUploadStart:u,maxFileCount:d,processFile:g,provider:p,path:f=""}){c.useEffect((()=>{const c=a.filter((e=>e.status===m.QUEUED));if(!(c.length>d))for(const{file:a,key:d,id:m}of c){const c=e=>{null==o||o(e),n({id:m})},E=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);l({id:m,progress:a})},S=e=>{null==i||i(e,{key:d})};a&&x({processFile:g,file:a,key:d}).then((a=>{var{key:l}=a,n=e.__rest(a,["key"]);null==u||u({key:l});const i=D(Object.assign(Object.assign({},n),{isResumable:s,provider:p,key:f+l,level:t,completeCallback:c,progressCallback:E,errorCallback:S}));r({id:m,uploadTask:s?i:void 0})}))}}),[a,t,s,l,r,i,o,u,d,n,g,p,f])}({accessLevel:t,files:Y,isResumable:o,maxFileCount:d,onUploadError:y,onUploadSuccess:N,onUploadStart:k,setUploadingFile:ee,setUploadProgress:te,setUploadSuccess:se,processFile:w,provider:z,path:G});const oe=0!==Y.length&&Y.every((e=>(null==e?void 0:e.status)===m.UPLOADED)),ce=Y.filter((e=>e.progress<100)).length>d,ue=Y.filter((e=>(null==e?void 0:e.status)===m.UPLOADED)).length,de=Y.length-ue,me=r?0:de,ge=Y.length>0,pe=!r&&de>0,fe=c.useRef(null);return c.createElement($.Container,{className:`${s.ComponentClassNames.StorageManager} ${ge?s.ComponentClassNames.StorageManagerPreviewer:""}`},c.createElement($.DropZone,Object.assign({inDropZone:"inactive"!==ne},ie,{displayText:q}),c.createElement(c.Fragment,null,c.createElement($.FilePicker,{onClick:function(){fe.current&&(fe.current.click(),fe.current.value="")}},q.browseFilesText),c.createElement(s.VisuallyHidden,null,c.createElement("input",{type:"file",tabIndex:-1,ref:fe,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&W({files:Array.from(a),status:r?m.QUEUED:m.ADDED,getFileErrorMessage:H})},multiple:Z,accept:a.join(",")})))),ge?c.createElement($.FileListHeader,{allUploadsSuccessful:oe,displayText:q,fileCount:Y.length,remainingFilesCount:de,selectedFilesCount:me}):null,c.createElement($.FileList,{displayText:q,files:Y,isResumable:o,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),J({id:e})},onDeleteUpload:({id:e})=>{if(J({id:e}),"function"==typeof L){const a=Y.find((a=>a.id===e));a&&L({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),le({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),ae({id:e})},showThumbnails:P,hasMaxFilesError:ce,maxFileCount:d}),pe?c.createElement($.FileListFooter,{displayText:q,remainingFilesCount:de,onClearAll:()=>{K()},onUploadAll:()=>{X()}}):null)})),{Container:O,DropZone:v,FileList:A,FileListHeader:M,FileListFooter:h,FilePicker:R});exports.StorageImage=a=>{var{accessLevel:t,className:r,fallbackSrc:n,identityId:i,imgKey:o,onStorageGetError:u}=a,m=e.__rest(a,["accessLevel","className","fallbackSrc","identityId","imgKey","onStorageGetError"]);const g=c.useMemo((()=>({level:t,identityId:i})),[t,i]),p=l.useStorageURL({key:o,options:g,fallbackURL:n,onStorageGetError:u});return c.createElement(s.Image,Object.assign({},m,{className:d.default(s.ComponentClassNames.StorageImage,r),src:p}))},exports.StorageManager=w;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("classnames"),t=require("@aws-amplify/ui"),s=require("@aws-amplify/ui-react"),l=require("@aws-amplify/ui-react/internal"),r=require("aws-amplify");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var a=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),a.default=e,Object.freeze(a)}var i=n(e),u=o(e),c=o(a);var d,m;function p(e,a){switch(a.type){case m.ADD_FILES:{const{files:t,status:s}=a,l=t.map((e=>{const t=a.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?d.ERROR:s,isImage:e.type.startsWith("image/"),progress:-1}})),r=[...e.files,...l];return{...e,files:r}}case m.CLEAR_FILES:return{...e,files:[]};case m.QUEUE_FILES:{const{files:a}=e,t=a.reduce(((e,a)=>[...e,{...a,status:d.QUEUED}]),[]);return{...e,files:t}}case m.SET_STATUS_UPLOADING:{const{id:t,uploadTask:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,{...a,status:d.UPLOADING,progress:0,uploadTask:s||void 0}]:[...e,a]),[]);return{...e,files:r}}case m.SET_UPLOAD_PROGRESS:{const{id:t,progress:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,{...a,progress:s}]:[...e,a]),[]);return{...e,files:r}}case m.SET_STATUS:{const{id:t,status:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,{...a,status:s}]:[...e,a]),[]);return{...e,files:r}}case m.REMOVE_UPLOAD:{const{id:t}=a,{files:s}=e,l=s.reduce(((e,a)=>a.id===t?[...e]:[...e,a]),[]);return{...e,files:l}}}}!function(e){e.ADDED="added",e.QUEUED="queued",e.UPLOADING="uploading",e.PAUSED="paused",e.ERROR="error",e.UPLOADED="uploaded"}(d||(d={})),function(e){e.ADD_FILES="ADD_FILES",e.CLEAR_FILES="CLEAR_FILES",e.QUEUE_FILES="QUEUE_FILES",e.SET_STATUS="SET_STATUS",e.SET_STATUS_UPLOADING="SET_STATUS_UPLOADING",e.SET_UPLOAD_PROGRESS="SET_UPLOAD_PROGRESS",e.REMOVE_UPLOAD="REMOVE_UPLOAD"}(m||(m={}));const g=({files:e,status:a,getFileErrorMessage:t})=>({type:m.ADD_FILES,files:e,status:a,getFileErrorMessage:t}),f=()=>({type:m.CLEAR_FILES}),E=()=>({type:m.QUEUE_FILES}),S=({id:e,uploadTask:a})=>({type:m.SET_STATUS_UPLOADING,id:e,uploadTask:a}),T=({id:e,progress:a})=>({type:m.SET_UPLOAD_PROGRESS,id:e,progress:a}),U=({id:e,status:a})=>({type:m.SET_STATUS,id:e,status:a}),F=({id:e})=>({type:m.REMOVE_UPLOAD,id:e}),C=e=>(e=>!(!t.isObject(e)||!e.key))(e)?{...e,id:e.key,status:d.UPLOADED}:void 0;function D({file:e,key:a,level:t="private",progressCallback:s,errorCallback:l,completeCallback:o,isResumable:n=!1,provider:i,...u}){const c=e.type||"binary/octet-stream";return!0===n?r.Storage.put(a,e,{level:t,resumable:!0,progressCallback:s,errorCallback:l,completeCallback:o,contentType:c,provider:i,...u}):r.Storage.put(a,e,{level:t,resumable:!1,progressCallback:s,contentType:c,provider:i,...u}).then(o,l)}const x=({processFile:e,file:a,key:s})=>new Promise(((l,r)=>{const o=t.isFunction(e)?e({file:a,key:s}):{file:a,key:s};o instanceof Promise?o.then(l).catch(r):l(o)}));function N({children:e,className:a}){return u.default.createElement(s.View,{className:a},e)}function y({children:e,displayText:a,inDropZone:r,onDragEnter:o,onDragLeave:n,onDragOver:i,onDragStart:d,onDrop:m,testId:p}){const{dropFilesText:g}=a,f=l.useIcons("storageManager");return u.default.createElement(s.View,{className:c.default(r&&t.classNameModifier(t.ComponentClassName.StorageManagerDropZone,"active"),t.ComponentClassName.StorageManagerDropZone),"data-testid":p,onDragStart:d,onDragEnter:o,onDragLeave:n,onDrop:m,onDragOver:i},u.default.createElement(s.View,{as:"span","aria-hidden":!0,className:t.ComponentClassName.StorageManagerDropZoneIcon},f?.upload??u.default.createElement(l.IconUpload,null)),u.default.createElement(s.Text,{className:t.ComponentClassName.StorageManagerDropZoneText},g),e)}const L=({errorMessage:e,getPausedText:a,getUploadingText:r,percentage:o,status:n,uploadSuccessfulText:i})=>{const m=l.useIcons("storageManager");switch(n){case d.UPLOADING:return u.default.createElement(s.Text,{className:t.ComponentClassName.StorageManagerFileStatus},r(o));case d.PAUSED:return u.default.createElement(s.Text,{className:t.ComponentClassName.StorageManagerFileStatus},a(o));case d.UPLOADED:return u.default.createElement(s.Text,{className:c.default(t.ComponentClassName.StorageManagerFileStatus,t.classNameModifier(t.ComponentClassName.StorageManagerFileStatus,"success"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},m?.success??u.default.createElement(l.IconCheck,null)),i);case d.ERROR:return u.default.createElement(s.Text,{className:c.default(t.ComponentClassName.StorageManagerFileStatus,t.classNameModifier(t.ComponentClassName.StorageManagerFileStatus,"error"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},m?.error??u.default.createElement(l.IconError,null)),e);default:return null}},P=({altText:e,onClick:a})=>{const t=l.useIcons("storageManager");return u.default.createElement(s.Button,{size:"small",onClick:a},u.default.createElement(s.VisuallyHidden,null,e),u.default.createElement(s.View,{as:"span","aria-hidden":!0,fontSize:"medium"},t?.remove??u.default.createElement(l.IconClose,null)))};function A(e,a=!1,t=1){const s=a?1e3:1024;if(Math.abs(e)<s)return`${e} B`;const l=a?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let r=-1;const o=10**t;do{e/=s,++r}while(Math.round(Math.abs(e)*o)/o>=s&&r<l.length-1);return e.toFixed(t)+" "+l[r]}const k={getFilesUploadedText:e=>`${e} ${1===e?"file uploaded":"files uploaded"}`,getFileSizeErrorText:e=>`File size must be below ${e}`,getRemainingFilesText:e=>`${e} ${1===e?"file":"files"} uploading`,getSelectedFilesText:e=>`${e} ${1===e?"file":"files"} selected`,getUploadingText:e=>"Uploading"+(e>0?`: ${e}%`:""),getUploadButtonText:e=>`Upload ${e} ${1===e?"file":"files"}`,getMaxFilesErrorText:e=>`Cannot choose more than ${e} ${1===e?"file":"files"}. Remove files before updating`,getErrorText:e=>e,doneButtonText:"Done",clearAllButtonText:"Clear all",extensionNotAllowedText:"Extension not allowed",browseFilesText:"Browse files",dropFilesText:"Drop files here or",pauseText:"Pause",resumeText:"Resume",uploadSuccessfulText:"Uploaded",getPausedText:e=>`Paused: ${e}%`},M=({displayName:e,fileSize:a})=>u.default.createElement(u.default.Fragment,null,u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerFileMain},u.default.createElement(s.Text,{className:t.ComponentClassName.StorageManagerFileName},e)),u.default.createElement(s.Text,{as:"span",className:t.ComponentClassName.StorageManagerFileSize},a?A(a,!0):"")),h=({fileName:e,isImage:a,url:r})=>{const o=l.useIcons("storageManager"),n=a?u.default.createElement(s.Image,{alt:e,src:r}):o?.file??u.default.createElement(l.IconFile,null);return u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerFileImage},n)};function v({onPause:e,onResume:a,displayName:l,errorMessage:r,isImage:o,isResumable:n,loaderIsDeterminate:i,onRemove:c,progress:m,showThumbnails:p=!0,size:g,status:f,displayText:E,thumbnailUrl:S}){const{getPausedText:T,getUploadingText:U,uploadSuccessfulText:F,pauseText:C,resumeText:D}=E;return u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerFile},u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerFileWrapper},p?u.default.createElement(h,{isImage:o,fileName:l,url:S}):null,u.default.createElement(M,{displayName:l,fileSize:g}),f===d.UPLOADING?u.default.createElement(s.Loader,{className:t.ComponentClassName.StorageManagerLoader,variation:"linear",percentage:m,isDeterminate:i,isPercentageTextHidden:!0}):null,!n||f!==d.UPLOADING&&f!==d.PAUSED?null:f===d.PAUSED?u.default.createElement(s.Button,{onClick:a,size:"small",variation:"link"},D):u.default.createElement(s.Button,{onClick:e,size:"small",variation:"link"},C),u.default.createElement(P,{altText:`Remove file ${l}`,onClick:c})),u.default.createElement(L,{uploadSuccessfulText:F,getUploadingText:U,getPausedText:T,status:f,errorMessage:r,percentage:m}))}function R({displayText:e,files:a,hasMaxFilesError:l,isResumable:r,onCancelUpload:o,onDeleteUpload:n,onResume:i,onPause:c,showThumbnails:m,maxFileCount:p}){if(a.length<1)return null;const{getMaxFilesErrorText:g}=e,f=g(p);return u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:l,error:p,key:g,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!r||l>0,F=s===d.UPLOADING;return u.default.createElement(v,{displayName:g,errorMessage:p,displayText:e,isImage:f,isUploading:F,isResumable:r,key:E,loaderIsDeterminate:U,onRemove:()=>{r&&(s===d.UPLOADING||s===d.PAUSED)&&S?o({id:E,uploadTask:S}):n({id:E})},onPause:()=>{S&&c({id:E,uploadTask:S})},onResume:()=>{S&&i({id:E,uploadTask:S})},progress:l,showThumbnails:m,size:t?.size,status:s,thumbnailUrl:T})})),l&&u.default.createElement(s.Alert,{variation:"error",heading:f}))}function I({allUploadsSuccessful:e,displayText:a,fileCount:l,remainingFilesCount:r,selectedFilesCount:o=0}){const{getFilesUploadedText:n,getRemainingFilesText:i,getSelectedFilesText:c}=a;return u.default.createElement(s.Text,{className:t.ComponentClassName.StorageManagerPreviewerText},o?c(o):e?n(l):i(r))}function b({displayText:e,remainingFilesCount:a,onClearAll:l,onUploadAll:r}){const{clearAllButtonText:o,getUploadButtonText:n}=e;return u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerPreviewerFooter},u.default.createElement(s.View,{className:t.ComponentClassName.StorageManagerPreviewerActions},u.default.createElement(s.Button,{size:"small",variation:"link",onClick:l},o),u.default.createElement(s.Button,{size:"small",variation:"primary",onClick:r},n(a))))}function O({children:e,className:a=t.ComponentClassName.StorageManagerFilePicker,size:l="small",...r}){return u.default.createElement(s.Button,{...r,className:a,size:l},e)}const w=new r.Logger("Storage.StorageManager");const _=Object.assign(i.forwardRef((function({acceptedFileTypes:e=[],accessLevel:a,autoUpload:r=!0,defaultFiles:o,displayText:n,isResumable:c=!1,maxFileCount:m,maxFileSize:L,onUploadError:P,onUploadSuccess:M,onFileRemove:h,onUploadStart:v,showThumbnails:_=!0,processFile:B,components:z,provider:G,path:V},$){a&&m||w.warn("StorageManager requires accessLevel and maxFileCount props");const j={Container:N,DropZone:y,FileList:R,FilePicker:O,FileListHeader:I,FileListFooter:b,...z},Z=void 0===m||"number"==typeof m&&m>1,q={...k,...n},{getFileSizeErrorText:Q}=q,H=e=>(({file:e,getFileSizeErrorText:a,maxFileSize:t})=>void 0===t?"":e.size>t?a(A(t,!0)):"")({file:e,maxFileSize:L,getFileSizeErrorText:Q}),{addFiles:W,clearFiles:K,files:Y,removeUpload:J,queueFiles:X,setUploadingFile:ee,setUploadPaused:ae,setUploadProgress:te,setUploadSuccess:se,setUploadResumed:le}=function(e=[]){const[{files:a},t]=u.default.useReducer(p,{files:Array.isArray(e)?e.map(C).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(F({id:e}))},setUploadPaused:({id:e})=>{t(U({id:e,status:d.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(T({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(U({id:e,status:d.UPLOADING}))},setUploadSuccess:({id:e})=>{t(U({id:e,status:d.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(S({id:a,uploadTask:e}))},queueFiles:()=>{t(E())},addFiles:({files:e,status:a,getFileErrorMessage:s})=>{t(g({files:e,status:a,getFileErrorMessage:s}))},clearFiles:()=>{t(f())},files:a}}(o);i.useImperativeHandle($,(()=>({clearFiles:K})));const{dragState:re,...oe}=l.useDropZone({acceptedFileTypes:e,onDropComplete:({acceptedFiles:a,rejectedFiles:t})=>{t&&t.length>0&&w.warn("Rejected files: ",t);const s=((e,a)=>!a||0===a.length||a.includes("*")?e:e.filter((e=>{const t=e.name||"",s=(e.type||"").toLowerCase(),l=s.replace(/\/.*$/,"");return a.some((e=>{const a=e.trim().toLowerCase();return"."===a.charAt(0)?t.toLowerCase().endsWith(a):a.endsWith("/*")?l===a.replace(/\/.*$/,""):s===a}))})))(a,e);W({files:s,status:r?d.QUEUED:d.ADDED,getFileErrorMessage:H})}});!function({files:e,accessLevel:a,isResumable:t,setUploadProgress:s,setUploadingFile:l,setUploadSuccess:r,onUploadError:o,onUploadSuccess:n,onUploadStart:u,maxFileCount:c,processFile:m,provider:p,path:g=""}){i.useEffect((()=>{const i=e.filter((e=>e.status===d.QUEUED));if(!(i.length>c))for(const{file:e,key:c,id:d}of i){const i=e=>{n?.(e),r({id:d})},f=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);s({id:d,progress:a})},E=e=>{o?.(e,{key:c})};e&&x({processFile:m,file:e,key:c}).then((({key:e,...s})=>{u?.({key:e});const r=D({...s,isResumable:t,provider:p,key:g+e,level:a,completeCallback:i,progressCallback:f,errorCallback:E});l({id:d,uploadTask:t?r:void 0})}))}}),[e,a,t,s,l,o,n,u,c,r,m,p,g])}({accessLevel:a,files:Y,isResumable:c,maxFileCount:m,onUploadError:P,onUploadSuccess:M,onUploadStart:v,setUploadingFile:ee,setUploadProgress:te,setUploadSuccess:se,processFile:B,provider:G,path:V});const ne=0!==Y.length&&Y.every((e=>e?.status===d.UPLOADED)),ie=Y.filter((e=>e.progress<100)).length>m,ue=Y.filter((e=>e?.status===d.UPLOADED)).length,ce=Y.length-ue,de=r?0:ce,me=Y.length>0,pe=!r&&ce>0,ge=i.useRef(null);return i.createElement(j.Container,{className:`${t.ComponentClassName.StorageManager} ${me?t.ComponentClassName.StorageManagerPreviewer:""}`},i.createElement(j.DropZone,{inDropZone:"inactive"!==re,...oe,displayText:q},i.createElement(i.Fragment,null,i.createElement(j.FilePicker,{onClick:function(){ge.current&&(ge.current.click(),ge.current.value="")}},q.browseFilesText),i.createElement(s.VisuallyHidden,null,i.createElement("input",{type:"file",tabIndex:-1,ref:ge,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&W({files:Array.from(a),status:r?d.QUEUED:d.ADDED,getFileErrorMessage:H})},multiple:Z,accept:e.join(",")})))),me?i.createElement(j.FileListHeader,{allUploadsSuccessful:ne,displayText:q,fileCount:Y.length,remainingFilesCount:ce,selectedFilesCount:de}):null,i.createElement(j.FileList,{displayText:q,files:Y,isResumable:c,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),J({id:e})},onDeleteUpload:({id:e})=>{if(J({id:e}),"function"==typeof h){const a=Y.find((a=>a.id===e));a&&h({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),le({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),ae({id:e})},showThumbnails:_,hasMaxFilesError:ie,maxFileCount:m}),pe?i.createElement(j.FileListFooter,{displayText:q,remainingFilesCount:ce,onClearAll:()=>{K()},onUploadAll:()=>{X()}}):null)})),{Container:N,DropZone:y,FileList:R,FileListHeader:I,FileListFooter:b,FilePicker:O});exports.StorageImage=({accessLevel:e,className:a,fallbackSrc:r,identityId:o,imgKey:n,onStorageGetError:u,...d})=>{const m=i.useMemo((()=>({level:e,identityId:o})),[e,o]),p=l.useStorageURL({key:n,options:m,fallbackURL:r,onStorageGetError:u});return i.createElement(s.Image,{...d,className:c.default(t.ComponentClassName.StorageImage,a),src:p})},exports.StorageManager=_;
package/dist/styles.css CHANGED
@@ -677,70 +677,6 @@
677
677
  --amplify-components-fieldset-outlined-large-padding: var(--amplify-space-large);
678
678
  --amplify-components-fieldset-small-gap: var(--amplify-components-field-small-gap);
679
679
  --amplify-components-fieldset-large-gap: var(--amplify-components-field-large-gap);
680
- --amplify-components-fileuploader-dropzone-background-color: var(--amplify-colors-background-primary);
681
- --amplify-components-fileuploader-dropzone-border-radius: var(--amplify-radii-small);
682
- --amplify-components-fileuploader-dropzone-border-color: var(--amplify-colors-border-primary);
683
- --amplify-components-fileuploader-dropzone-border-style: dashed;
684
- --amplify-components-fileuploader-dropzone-border-width: var(--amplify-border-widths-small);
685
- --amplify-components-fileuploader-dropzone-gap: var(--amplify-space-small);
686
- --amplify-components-fileuploader-dropzone-padding-block: var(--amplify-space-xl);
687
- --amplify-components-fileuploader-dropzone-padding-inline: var(--amplify-space-large);
688
- --amplify-components-fileuploader-dropzone-text-align: center;
689
- --amplify-components-fileuploader-dropzone-active-background-color: var(--amplify-colors-brand-primary-10);
690
- --amplify-components-fileuploader-dropzone-active-border-radius: var(--amplify-components-fileuploader-dropzone-border-radius);
691
- --amplify-components-fileuploader-dropzone-active-border-color: var(--amplify-colors-border-pressed);
692
- --amplify-components-fileuploader-dropzone-active-border-style: var(--amplify-components-fileuploader-dropzone-border-style);
693
- --amplify-components-fileuploader-dropzone-active-border-width: var(--amplify-border-widths-medium);
694
- --amplify-components-fileuploader-dropzone-icon-color: var(--amplify-colors-border-primary);
695
- --amplify-components-fileuploader-dropzone-icon-font-size: var(--amplify-font-sizes-xxl);
696
- --amplify-components-fileuploader-dropzone-text-color: var(--amplify-colors-font-tertiary);
697
- --amplify-components-fileuploader-dropzone-text-font-size: var(--amplify-font-sizes-medium);
698
- --amplify-components-fileuploader-dropzone-text-font-weight: var(--amplify-font-weights-bold);
699
- --amplify-components-fileuploader-file-background-color: var(--amplify-colors-background-primary);
700
- --amplify-components-fileuploader-file-border-radius: var(--amplify-radii-small);
701
- --amplify-components-fileuploader-file-border-color: var(--amplify-colors-border-primary);
702
- --amplify-components-fileuploader-file-border-style: solid;
703
- --amplify-components-fileuploader-file-border-width: var(--amplify-border-widths-small);
704
- --amplify-components-fileuploader-file-padding-block: var(--amplify-space-xs);
705
- --amplify-components-fileuploader-file-padding-inline: var(--amplify-space-small);
706
- --amplify-components-fileuploader-file-gap: var(--amplify-space-small);
707
- --amplify-components-fileuploader-file-align-items: baseline;
708
- --amplify-components-fileuploader-file-name-font-size: var(--amplify-font-sizes-medium);
709
- --amplify-components-fileuploader-file-name-font-weight: var(--amplify-font-weights-bold);
710
- --amplify-components-fileuploader-file-name-color: var(--amplify-colors-font-primary);
711
- --amplify-components-fileuploader-file-size-font-size: var(--amplify-font-sizes-small);
712
- --amplify-components-fileuploader-file-size-font-weight: var(--amplify-font-weights-normal);
713
- --amplify-components-fileuploader-file-size-color: var(--amplify-colors-font-tertiary);
714
- --amplify-components-fileuploader-file-image-width: var(--amplify-space-xxl);
715
- --amplify-components-fileuploader-file-image-height: var(--amplify-space-xxl);
716
- --amplify-components-fileuploader-file-image-background-color: var(--amplify-colors-background-secondary);
717
- --amplify-components-fileuploader-file-image-color: var(--amplify-colors-font-tertiary);
718
- --amplify-components-fileuploader-file-image-border-radius: var(--amplify-radii-small);
719
- --amplify-components-fileuploader-loader-stroke-linecap: round;
720
- --amplify-components-fileuploader-loader-stroke-empty: var(--amplify-colors-border-secondary);
721
- --amplify-components-fileuploader-loader-stroke-filled: var(--amplify-components-loader-stroke-filled);
722
- --amplify-components-fileuploader-loader-stroke-width: var(--amplify-border-widths-large);
723
- --amplify-components-fileuploader-previewer-background-color: var(--amplify-colors-background-primary);
724
- --amplify-components-fileuploader-previewer-border-color: var(--amplify-colors-border-primary);
725
- --amplify-components-fileuploader-previewer-border-style: solid;
726
- --amplify-components-fileuploader-previewer-border-width: var(--amplify-border-widths-small);
727
- --amplify-components-fileuploader-previewer-border-radius: var(--amplify-radii-small);
728
- --amplify-components-fileuploader-previewer-padding-block: var(--amplify-space-zero);
729
- --amplify-components-fileuploader-previewer-padding-inline: var(--amplify-space-zero);
730
- --amplify-components-fileuploader-previewer-max-height: 40rem;
731
- --amplify-components-fileuploader-previewer-max-width: auto;
732
- --amplify-components-fileuploader-previewer-text-font-size: var(--amplify-font-sizes-medium);
733
- --amplify-components-fileuploader-previewer-text-font-weight: var(--amplify-font-weights-bold);
734
- --amplify-components-fileuploader-previewer-text-color: var(--amplify-colors-font-primary);
735
- --amplify-components-fileuploader-previewer-body-padding-block: var(--amplify-space-medium);
736
- --amplify-components-fileuploader-previewer-body-padding-inline: var(--amplify-space-medium);
737
- --amplify-components-fileuploader-previewer-body-gap: var(--amplify-space-small);
738
- --amplify-components-fileuploader-previewer-footer-border-color: var(--amplify-colors-border-secondary);
739
- --amplify-components-fileuploader-previewer-footer-border-style: solid;
740
- --amplify-components-fileuploader-previewer-footer-border-width: var(--amplify-border-widths-small);
741
- --amplify-components-fileuploader-previewer-footer-padding-block: var(--amplify-space-medium);
742
- --amplify-components-fileuploader-previewer-footer-padding-inline: var(--amplify-space-medium);
743
- --amplify-components-fileuploader-previewer-footer-justify-content: space-between;
744
680
  --amplify-components-flex-gap: var(--amplify-space-medium);
745
681
  --amplify-components-flex-justify-content: normal;
746
682
  --amplify-components-flex-align-items: stretch;
@@ -1000,7 +936,11 @@
1000
936
  --amplify-components-searchfield-button-hover-background-color: var(--amplify-components-button-hover-background-color);
1001
937
  --amplify-components-searchfield-button-hover-border-color: var(--amplify-components-button-hover-border-color);
1002
938
  --amplify-components-searchfield-button-hover-color: var(--amplify-components-button-hover-color);
939
+ --amplify-components-select-color: var(--amplify-components-fieldcontrol-color);
940
+ --amplify-components-select-background-color: var(--amplify-colors-background-primary);
1003
941
  --amplify-components-select-padding-inline-end: var(--amplify-space-xxl);
942
+ --amplify-components-select-disabled-color: var(--amplify-colors-font-disabled);
943
+ --amplify-components-select-disabled-background-color: var(--amplify-colors-background-disabled);
1004
944
  --amplify-components-select-wrapper-flex: 1;
1005
945
  --amplify-components-select-wrapper-display: block;
1006
946
  --amplify-components-select-wrapper-position: relative;
@@ -1013,15 +953,20 @@
1013
953
  --amplify-components-select-icon-wrapper-pointer-events: none;
1014
954
  --amplify-components-select-icon-wrapper-small-right: var(--amplify-space-xs);
1015
955
  --amplify-components-select-icon-wrapper-large-right: var(--amplify-space-medium);
1016
- --amplify-components-select-option-background-color: var(--amplify-colors-background-primary);
956
+ --amplify-components-select-option-background-color: transparent;
1017
957
  --amplify-components-select-option-color: var(--amplify-colors-font-primary);
1018
958
  --amplify-components-select-option-disabled-color: var(--amplify-colors-font-disabled);
959
+ --amplify-components-select-option-disabled-background-color: transparent;
1019
960
  --amplify-components-select-white-space: nowrap;
1020
961
  --amplify-components-select-min-width: 6.5rem;
1021
962
  --amplify-components-select-small-min-width: 5.5rem;
1022
963
  --amplify-components-select-small-padding-inline-end: var(--amplify-space-xl);
1023
964
  --amplify-components-select-large-min-width: 7.5rem;
1024
965
  --amplify-components-select-large-padding-inline-end: var(--amplify-space-xxl);
966
+ --amplify-components-select-expanded-padding-block: var(--amplify-space-xs);
967
+ --amplify-components-select-expanded-padding-inline: var(--amplify-space-small);
968
+ --amplify-components-select-expanded-option-padding-block: var(--amplify-space-xs);
969
+ --amplify-components-select-expanded-option-padding-inline: var(--amplify-space-small);
1025
970
  --amplify-components-selectfield-border-color: var(--amplify-components-fieldcontrol-border-color);
1026
971
  --amplify-components-selectfield-color: var(--amplify-components-fieldcontrol-color);
1027
972
  --amplify-components-selectfield-flex-direction: column;
@@ -1082,9 +1027,9 @@
1082
1027
  --amplify-components-storagemanager-dropzone-padding-inline: var(--amplify-space-large);
1083
1028
  --amplify-components-storagemanager-dropzone-text-align: center;
1084
1029
  --amplify-components-storagemanager-dropzone-active-background-color: var(--amplify-colors-brand-primary-10);
1085
- --amplify-components-storagemanager-dropzone-active-border-radius: var(--amplify-components-fileuploader-dropzone-border-radius);
1030
+ --amplify-components-storagemanager-dropzone-active-border-radius: var(--amplify-components-storagemanager-dropzone-border-radius);
1086
1031
  --amplify-components-storagemanager-dropzone-active-border-color: var(--amplify-colors-border-pressed);
1087
- --amplify-components-storagemanager-dropzone-active-border-style: var(--amplify-components-fileuploader-dropzone-border-style);
1032
+ --amplify-components-storagemanager-dropzone-active-border-style: var(--amplify-components-storagemanager-dropzone-border-style);
1088
1033
  --amplify-components-storagemanager-dropzone-active-border-width: var(--amplify-border-widths-medium);
1089
1034
  --amplify-components-storagemanager-dropzone-icon-color: var(--amplify-colors-border-primary);
1090
1035
  --amplify-components-storagemanager-dropzone-icon-font-size: var(--amplify-font-sizes-xxl);
@@ -1111,6 +1056,8 @@
1111
1056
  --amplify-components-storagemanager-file-image-background-color: var(--amplify-colors-background-secondary);
1112
1057
  --amplify-components-storagemanager-file-image-color: var(--amplify-colors-font-tertiary);
1113
1058
  --amplify-components-storagemanager-file-image-border-radius: var(--amplify-radii-small);
1059
+ --amplify-components-storagemanager-filelist-flex-direction: column;
1060
+ --amplify-components-storagemanager-filelist-gap: var(--amplify-space-small);
1114
1061
  --amplify-components-storagemanager-loader-stroke-linecap: round;
1115
1062
  --amplify-components-storagemanager-loader-stroke-empty: var(--amplify-colors-border-secondary);
1116
1063
  --amplify-components-storagemanager-loader-stroke-filled: var(--amplify-components-loader-stroke-filled);
@@ -1131,8 +1078,6 @@
1131
1078
  --amplify-components-storagemanager-previewer-body-padding-inline: var(--amplify-space-medium);
1132
1079
  --amplify-components-storagemanager-previewer-body-gap: var(--amplify-space-small);
1133
1080
  --amplify-components-storagemanager-previewer-footer-justify-content: flex-end;
1134
- --amplify-components-storagemanager-filelist-flex-direction: column;
1135
- --amplify-components-storagemanager-filelist-gap: var(--amplify-space-small);
1136
1081
  --amplify-components-switchfield-disabled-opacity: var(--amplify-opacities-60);
1137
1082
  --amplify-components-switchfield-focused-shadow: 0px 0px 0px 2px var(--amplify-colors-border-focus);
1138
1083
  --amplify-components-switchfield-font-size: var(--amplify-font-sizes-medium);
@@ -2939,12 +2884,6 @@ strong.amplify-text {
2939
2884
  border-color: var(--amplify-components-fieldcontrol-error-border-color);
2940
2885
  box-shadow: var(--amplify-components-fieldcontrol-error-focus-box-shadow);
2941
2886
  }
2942
- .amplify-input[disabled] {
2943
- color: var(--amplify-components-fieldcontrol-disabled-color);
2944
- cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
2945
- border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
2946
- background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
2947
- }
2948
2887
  .amplify-input--quiet {
2949
2888
  border-block-start: var(--amplify-components-fieldcontrol-quiet-border-block-start);
2950
2889
  border-inline-start: var(--amplify-components-fieldcontrol-quiet-border-inline-start);
@@ -2961,6 +2900,12 @@ strong.amplify-text {
2961
2900
  .amplify-input--quiet[aria-invalid=true]:focus {
2962
2901
  box-shadow: var(--amplify-components-fieldcontrol-quiet-error-focus-box-shadow);
2963
2902
  }
2903
+ .amplify-input[disabled] {
2904
+ color: var(--amplify-components-fieldcontrol-disabled-color);
2905
+ cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
2906
+ border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
2907
+ background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
2908
+ }
2964
2909
 
2965
2910
  .amplify-textarea {
2966
2911
  box-sizing: border-box;
@@ -3011,12 +2956,6 @@ strong.amplify-text {
3011
2956
  border-color: var(--amplify-components-fieldcontrol-error-border-color);
3012
2957
  box-shadow: var(--amplify-components-fieldcontrol-error-focus-box-shadow);
3013
2958
  }
3014
- .amplify-textarea[disabled] {
3015
- color: var(--amplify-components-fieldcontrol-disabled-color);
3016
- cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
3017
- border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
3018
- background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
3019
- }
3020
2959
  .amplify-textarea--quiet {
3021
2960
  border-block-start: var(--amplify-components-fieldcontrol-quiet-border-block-start);
3022
2961
  border-inline-start: var(--amplify-components-fieldcontrol-quiet-border-inline-start);
@@ -3033,6 +2972,12 @@ strong.amplify-text {
3033
2972
  .amplify-textarea--quiet[aria-invalid=true]:focus {
3034
2973
  box-shadow: var(--amplify-components-fieldcontrol-quiet-error-focus-box-shadow);
3035
2974
  }
2975
+ .amplify-textarea[disabled] {
2976
+ color: var(--amplify-components-fieldcontrol-disabled-color);
2977
+ cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
2978
+ border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
2979
+ background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
2980
+ }
3036
2981
 
3037
2982
  .amplify-image {
3038
2983
  height: var(--amplify-components-image-height);
@@ -4359,153 +4304,6 @@ html[dir=rtl] .amplify-field-group__inner-start {
4359
4304
  border-radius: 2px;
4360
4305
  }
4361
4306
 
4362
- .amplify-fileuploader__dropzone {
4363
- background-color: var(--amplify-components-fileuploader-dropzone-background-color);
4364
- border-color: var(--amplify-components-fileuploader-dropzone-border-color);
4365
- border-radius: var(--amplify-components-fileuploader-dropzone-border-radius);
4366
- border-style: var(--amplify-components-fileuploader-dropzone-border-style);
4367
- border-width: var(--amplify-components-fileuploader-dropzone-border-width);
4368
- text-align: var(--amplify-components-fileuploader-dropzone-text-align);
4369
- padding-block: var(--amplify-components-fileuploader-dropzone-padding-block);
4370
- padding-inline: var(--amplify-components-fileuploader-dropzone-padding-inline);
4371
- display: flex;
4372
- flex-direction: column;
4373
- align-items: center;
4374
- gap: var(--amplify-components-fileuploader-dropzone-gap);
4375
- }
4376
- .amplify-fileuploader__dropzone--small {
4377
- flex-direction: row;
4378
- justify-content: center;
4379
- }
4380
- .amplify-fileuploader__dropzone--active {
4381
- border-color: var(--amplify-components-fileuploader-dropzone-active-border-color);
4382
- border-width: var(--amplify-components-fileuploader-dropzone-active-border-width);
4383
- background-color: var(--amplify-components-fileuploader-dropzone-active-background-color);
4384
- }
4385
- .amplify-fileuploader__dropzone__icon {
4386
- font-size: var(--amplify-components-fileuploader-dropzone-icon-font-size);
4387
- color: var(--amplify-components-fileuploader-dropzone-icon-color);
4388
- }
4389
- .amplify-fileuploader__dropzone__text {
4390
- color: var(--amplify-components-fileuploader-dropzone-text-color);
4391
- font-size: var(--amplify-components-fileuploader-dropzone-text-font-size);
4392
- font-weight: var(--amplify-components-fileuploader-dropzone-text-font-weight);
4393
- }
4394
- .amplify-fileuploader__file {
4395
- position: relative;
4396
- border-width: var(--amplify-components-fileuploader-file-border-width);
4397
- border-style: var(--amplify-components-fileuploader-file-border-style);
4398
- border-color: var(--amplify-components-fileuploader-file-border-color);
4399
- border-radius: var(--amplify-components-fileuploader-file-border-radius);
4400
- display: flex;
4401
- flex-direction: column;
4402
- padding-inline: var(--amplify-components-fileuploader-file-padding-inline);
4403
- padding-block: var(--amplify-components-fileuploader-file-padding-block);
4404
- align-items: var(--amplify-components-fileuploader-file-align-items);
4405
- }
4406
- .amplify-fileuploader__file__wrapper {
4407
- width: 100%;
4408
- display: flex;
4409
- flex-direction: row;
4410
- align-items: center;
4411
- gap: var(--amplify-components-fileuploader-file-gap);
4412
- }
4413
- .amplify-fileuploader__file__name {
4414
- text-overflow: ellipsis;
4415
- overflow: hidden;
4416
- font-weight: var(--amplify-components-fileuploader-file-name-font-weight);
4417
- font-size: var(--amplify-components-fileuploader-file-name-font-size);
4418
- color: var(--amplify-components-fileuploader-file-name-color);
4419
- }
4420
- .amplify-fileuploader__file__size {
4421
- font-weight: var(--amplify-components-fileuploader-file-size-font-weight);
4422
- font-size: var(--amplify-components-fileuploader-file-size-font-size);
4423
- color: var(--amplify-components-fileuploader-file-size-color);
4424
- }
4425
- .amplify-fileuploader__file__main {
4426
- flex: 1;
4427
- white-space: nowrap;
4428
- overflow: hidden;
4429
- }
4430
- .amplify-fileuploader__file__image {
4431
- position: relative;
4432
- display: flex;
4433
- align-items: center;
4434
- justify-content: center;
4435
- width: var(--amplify-components-fileuploader-file-image-width);
4436
- height: var(--amplify-components-fileuploader-file-image-height);
4437
- background-color: var(--amplify-components-fileuploader-file-image-background-color);
4438
- border-radius: var(--amplify-components-fileuploader-file-image-border-radius);
4439
- color: var(--amplify-components-fileuploader-file-image-color);
4440
- }
4441
- .amplify-fileuploader__file__image img {
4442
- max-height: 100%;
4443
- }
4444
- .amplify-fileuploader__file__status--error {
4445
- color: var(--amplify-colors-font-error);
4446
- font-size: var(--amplify-components-fileuploader-file-size-font-size);
4447
- }
4448
- .amplify-fileuploader__file__status--success {
4449
- color: var(--amplify-colors-font-success);
4450
- }
4451
- .amplify-fileuploader__loader {
4452
- stroke-linecap: var(--amplify-components-fileuploader-loader-stroke-linecap);
4453
- stroke: var(--amplify-components-fileuploader-loader-stroke-empty);
4454
- stroke-width: var(--amplify-components-fileuploader-loader-stroke-width);
4455
- height: var(--amplify-components-fileuploader-loader-stroke-width);
4456
- --amplify-components-loader-linear-stroke-filled: var(
4457
- --amplify-components-fileuploader-loader-stroke-filled
4458
- );
4459
- overflow: hidden;
4460
- position: absolute;
4461
- bottom: 0;
4462
- left: 0;
4463
- width: 100%;
4464
- }
4465
- .amplify-fileuploader__previewer {
4466
- display: block;
4467
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
4468
- background-color: var(--amplify-components-fileuploader-previewer-background-color);
4469
- border-width: var(--amplify-components-fileuploader-previewer-border-width);
4470
- border-style: var(--amplify-components-fileuploader-previewer-border-style);
4471
- border-color: var(--amplify-components-fileuploader-previewer-border-color);
4472
- border-radius: var(--amplify-components-fileuploader-previewer-border-radius);
4473
- padding-inline: var(--amplify-components-fileuploader-previewer-padding-inline);
4474
- padding-block: var(--amplify-components-fileuploader-previewer-padding-block);
4475
- }
4476
- .amplify-fileuploader__previewer__text {
4477
- font-weight: var(--amplify-components-fileuploader-previewer-text-font-weight);
4478
- font-size: var(--amplify-components-fileuploader-previewer-text-font-size);
4479
- color: var(--amplify-components-fileuploader-previewer-text-color);
4480
- }
4481
- .amplify-fileuploader__previewer__body {
4482
- display: flex;
4483
- flex-direction: column;
4484
- max-height: var(--amplify-components-fileuploader-previewer-max-height);
4485
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
4486
- overflow: auto;
4487
- gap: var(--amplify-components-fileuploader-previewer-body-gap);
4488
- padding-inline: var(--amplify-components-fileuploader-previewer-body-padding-inline);
4489
- padding-block: var(--amplify-components-fileuploader-previewer-body-padding-block);
4490
- }
4491
- .amplify-fileuploader__previewer__footer {
4492
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
4493
- border-top-width: var(--amplify-components-fileuploader-previewer-footer-border-width);
4494
- border-top-style: var(--amplify-components-fileuploader-previewer-footer-border-style);
4495
- border-top-color: var(--amplify-components-fileuploader-previewer-footer-border-color);
4496
- padding-inline: var(--amplify-components-fileuploader-previewer-footer-padding-inline);
4497
- padding-block: var(--amplify-components-fileuploader-previewer-footer-padding-block);
4498
- position: relative;
4499
- display: flex;
4500
- flex-direction: row;
4501
- justify-content: var(--amplify-components-fileuploader-previewer-footer-justify-content);
4502
- }
4503
- .amplify-fileuploader__previewer__footer__actions {
4504
- display: flex;
4505
- flex-direction: row;
4506
- gap: var(--amplify-space-small);
4507
- }
4508
-
4509
4307
  .amplify-menu-content-wrapper {
4510
4308
  z-index: 999999;
4511
4309
  }
@@ -5040,6 +4838,8 @@ html[dir=rtl] .amplify-field-group__inner-start {
5040
4838
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
5041
4839
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
5042
4840
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
4841
+ background-color: var(--amplify-components-select-background-color);
4842
+ color: var(--amplify-components-select-color);
5043
4843
  min-width: var(--amplify-components-select-min-width);
5044
4844
  padding-inline-end: var(--amplify-components-select-padding-inline-end);
5045
4845
  white-space: var(--amplify-components-select-white-space);
@@ -5069,12 +4869,6 @@ html[dir=rtl] .amplify-field-group__inner-start {
5069
4869
  border-color: var(--amplify-components-fieldcontrol-error-border-color);
5070
4870
  box-shadow: var(--amplify-components-fieldcontrol-error-focus-box-shadow);
5071
4871
  }
5072
- .amplify-select[disabled] {
5073
- color: var(--amplify-components-fieldcontrol-disabled-color);
5074
- cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
5075
- border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
5076
- background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
5077
- }
5078
4872
  .amplify-select--quiet {
5079
4873
  border-block-start: var(--amplify-components-fieldcontrol-quiet-border-block-start);
5080
4874
  border-inline-start: var(--amplify-components-fieldcontrol-quiet-border-inline-start);
@@ -5091,17 +4885,28 @@ html[dir=rtl] .amplify-field-group__inner-start {
5091
4885
  .amplify-select--quiet[aria-invalid=true]:focus {
5092
4886
  box-shadow: var(--amplify-components-fieldcontrol-quiet-error-focus-box-shadow);
5093
4887
  }
4888
+ .amplify-select[disabled] {
4889
+ color: var(--amplify-components-fieldcontrol-disabled-color);
4890
+ cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
4891
+ border-color: var(--amplify-components-fieldcontrol-disabled-border-color);
4892
+ background-color: var(--amplify-components-fieldcontrol-disabled-background-color);
4893
+ }
5094
4894
  .amplify-select option {
5095
- color: initial;
4895
+ background-color: var(--amplify-components-select-option-background-color);
4896
+ color: var(--amplify-components-select-option-color);
5096
4897
  }
5097
4898
  .amplify-select option[disabled=""] {
4899
+ background-color: var(--amplify-components-select-option-disabled-background-color);
5098
4900
  color: var(--amplify-components-select-option-disabled-color);
4901
+ cursor: var(--amplify-components-fieldcontrol-disabled-cursor);
5099
4902
  }
5100
- @-moz-document url-prefix() {
5101
- .amplify-select option {
5102
- background-color: var(--amplify-components-select-option-background-color);
5103
- color: var(--amplify-components-select-option-color);
5104
- }
4903
+ .amplify-select[disabled] {
4904
+ background-color: var(--amplify-components-select-disabled-background-color);
4905
+ color: var(--amplify-components-select-disabled-color);
4906
+ }
4907
+ .amplify-select[disabled] option {
4908
+ color: inherit;
4909
+ background-color: inherit;
5105
4910
  }
5106
4911
  .amplify-select--small {
5107
4912
  min-width: var(--amplify-components-select-small-min-width);
@@ -5111,6 +4916,13 @@ html[dir=rtl] .amplify-field-group__inner-start {
5111
4916
  min-width: var(--amplify-components-select-large-min-width);
5112
4917
  padding-inline-end: var(--amplify-components-select-large-padding-inline-end);
5113
4918
  }
4919
+ .amplify-select--expanded {
4920
+ overflow: auto;
4921
+ padding: var(--amplify-components-select-expanded-padding-block) var(--amplify-components-select-expanded-padding-inline);
4922
+ }
4923
+ .amplify-select--expanded option {
4924
+ padding: var(--amplify-components-select-expanded-option-padding-block) var(--amplify-components-select-expanded-option-padding-inline);
4925
+ }
5114
4926
 
5115
4927
  .amplify-selectfield {
5116
4928
  flex-direction: var(--amplify-components-selectfield-flex-direction);
@@ -6160,153 +5972,6 @@ html[dir=rtl] .amplify-field-group__inner-start {
6160
5972
  margin: var(--amplify-space-small);
6161
5973
  }
6162
5974
 
6163
- .amplify-fileuploader__dropzone {
6164
- background-color: var(--amplify-components-fileuploader-dropzone-background-color);
6165
- border-color: var(--amplify-components-fileuploader-dropzone-border-color);
6166
- border-radius: var(--amplify-components-fileuploader-dropzone-border-radius);
6167
- border-style: var(--amplify-components-fileuploader-dropzone-border-style);
6168
- border-width: var(--amplify-components-fileuploader-dropzone-border-width);
6169
- text-align: var(--amplify-components-fileuploader-dropzone-text-align);
6170
- padding-block: var(--amplify-components-fileuploader-dropzone-padding-block);
6171
- padding-inline: var(--amplify-components-fileuploader-dropzone-padding-inline);
6172
- display: flex;
6173
- flex-direction: column;
6174
- align-items: center;
6175
- gap: var(--amplify-components-fileuploader-dropzone-gap);
6176
- }
6177
- .amplify-fileuploader__dropzone--small {
6178
- flex-direction: row;
6179
- justify-content: center;
6180
- }
6181
- .amplify-fileuploader__dropzone--active {
6182
- border-color: var(--amplify-components-fileuploader-dropzone-active-border-color);
6183
- border-width: var(--amplify-components-fileuploader-dropzone-active-border-width);
6184
- background-color: var(--amplify-components-fileuploader-dropzone-active-background-color);
6185
- }
6186
- .amplify-fileuploader__dropzone__icon {
6187
- font-size: var(--amplify-components-fileuploader-dropzone-icon-font-size);
6188
- color: var(--amplify-components-fileuploader-dropzone-icon-color);
6189
- }
6190
- .amplify-fileuploader__dropzone__text {
6191
- color: var(--amplify-components-fileuploader-dropzone-text-color);
6192
- font-size: var(--amplify-components-fileuploader-dropzone-text-font-size);
6193
- font-weight: var(--amplify-components-fileuploader-dropzone-text-font-weight);
6194
- }
6195
- .amplify-fileuploader__file {
6196
- position: relative;
6197
- border-width: var(--amplify-components-fileuploader-file-border-width);
6198
- border-style: var(--amplify-components-fileuploader-file-border-style);
6199
- border-color: var(--amplify-components-fileuploader-file-border-color);
6200
- border-radius: var(--amplify-components-fileuploader-file-border-radius);
6201
- display: flex;
6202
- flex-direction: column;
6203
- padding-inline: var(--amplify-components-fileuploader-file-padding-inline);
6204
- padding-block: var(--amplify-components-fileuploader-file-padding-block);
6205
- align-items: var(--amplify-components-fileuploader-file-align-items);
6206
- }
6207
- .amplify-fileuploader__file__wrapper {
6208
- width: 100%;
6209
- display: flex;
6210
- flex-direction: row;
6211
- align-items: center;
6212
- gap: var(--amplify-components-fileuploader-file-gap);
6213
- }
6214
- .amplify-fileuploader__file__name {
6215
- text-overflow: ellipsis;
6216
- overflow: hidden;
6217
- font-weight: var(--amplify-components-fileuploader-file-name-font-weight);
6218
- font-size: var(--amplify-components-fileuploader-file-name-font-size);
6219
- color: var(--amplify-components-fileuploader-file-name-color);
6220
- }
6221
- .amplify-fileuploader__file__size {
6222
- font-weight: var(--amplify-components-fileuploader-file-size-font-weight);
6223
- font-size: var(--amplify-components-fileuploader-file-size-font-size);
6224
- color: var(--amplify-components-fileuploader-file-size-color);
6225
- }
6226
- .amplify-fileuploader__file__main {
6227
- flex: 1;
6228
- white-space: nowrap;
6229
- overflow: hidden;
6230
- }
6231
- .amplify-fileuploader__file__image {
6232
- position: relative;
6233
- display: flex;
6234
- align-items: center;
6235
- justify-content: center;
6236
- width: var(--amplify-components-fileuploader-file-image-width);
6237
- height: var(--amplify-components-fileuploader-file-image-height);
6238
- background-color: var(--amplify-components-fileuploader-file-image-background-color);
6239
- border-radius: var(--amplify-components-fileuploader-file-image-border-radius);
6240
- color: var(--amplify-components-fileuploader-file-image-color);
6241
- }
6242
- .amplify-fileuploader__file__image img {
6243
- max-height: 100%;
6244
- }
6245
- .amplify-fileuploader__file__status--error {
6246
- color: var(--amplify-colors-font-error);
6247
- font-size: var(--amplify-components-fileuploader-file-size-font-size);
6248
- }
6249
- .amplify-fileuploader__file__status--success {
6250
- color: var(--amplify-colors-font-success);
6251
- }
6252
- .amplify-fileuploader__loader {
6253
- stroke-linecap: var(--amplify-components-fileuploader-loader-stroke-linecap);
6254
- stroke: var(--amplify-components-fileuploader-loader-stroke-empty);
6255
- stroke-width: var(--amplify-components-fileuploader-loader-stroke-width);
6256
- height: var(--amplify-components-fileuploader-loader-stroke-width);
6257
- --amplify-components-loader-linear-stroke-filled: var(
6258
- --amplify-components-fileuploader-loader-stroke-filled
6259
- );
6260
- overflow: hidden;
6261
- position: absolute;
6262
- bottom: 0;
6263
- left: 0;
6264
- width: 100%;
6265
- }
6266
- .amplify-fileuploader__previewer {
6267
- display: block;
6268
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
6269
- background-color: var(--amplify-components-fileuploader-previewer-background-color);
6270
- border-width: var(--amplify-components-fileuploader-previewer-border-width);
6271
- border-style: var(--amplify-components-fileuploader-previewer-border-style);
6272
- border-color: var(--amplify-components-fileuploader-previewer-border-color);
6273
- border-radius: var(--amplify-components-fileuploader-previewer-border-radius);
6274
- padding-inline: var(--amplify-components-fileuploader-previewer-padding-inline);
6275
- padding-block: var(--amplify-components-fileuploader-previewer-padding-block);
6276
- }
6277
- .amplify-fileuploader__previewer__text {
6278
- font-weight: var(--amplify-components-fileuploader-previewer-text-font-weight);
6279
- font-size: var(--amplify-components-fileuploader-previewer-text-font-size);
6280
- color: var(--amplify-components-fileuploader-previewer-text-color);
6281
- }
6282
- .amplify-fileuploader__previewer__body {
6283
- display: flex;
6284
- flex-direction: column;
6285
- max-height: var(--amplify-components-fileuploader-previewer-max-height);
6286
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
6287
- overflow: auto;
6288
- gap: var(--amplify-components-fileuploader-previewer-body-gap);
6289
- padding-inline: var(--amplify-components-fileuploader-previewer-body-padding-inline);
6290
- padding-block: var(--amplify-components-fileuploader-previewer-body-padding-block);
6291
- }
6292
- .amplify-fileuploader__previewer__footer {
6293
- max-width: var(--amplify-components-fileuploader-previewer-max-width);
6294
- border-top-width: var(--amplify-components-fileuploader-previewer-footer-border-width);
6295
- border-top-style: var(--amplify-components-fileuploader-previewer-footer-border-style);
6296
- border-top-color: var(--amplify-components-fileuploader-previewer-footer-border-color);
6297
- padding-inline: var(--amplify-components-fileuploader-previewer-footer-padding-inline);
6298
- padding-block: var(--amplify-components-fileuploader-previewer-footer-padding-block);
6299
- position: relative;
6300
- display: flex;
6301
- flex-direction: row;
6302
- justify-content: var(--amplify-components-fileuploader-previewer-footer-justify-content);
6303
- }
6304
- .amplify-fileuploader__previewer__footer__actions {
6305
- display: flex;
6306
- flex-direction: row;
6307
- gap: var(--amplify-space-small);
6308
- }
6309
-
6310
5975
  .amplify-storagemanager__dropzone {
6311
5976
  background-color: var(--amplify-components-storagemanager-dropzone-background-color);
6312
5977
  border-color: var(--amplify-components-storagemanager-dropzone-border-color);
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react-storage",
3
- "version": "0.0.0-studio-e5b8195-20230912200241",
3
+ "version": "0.0.0-studio-console-80bb2e2-20230921222703",
4
4
  "main": "dist/index.js",
5
- "module": "dist/esm/index.js",
5
+ "module": "dist/esm/index.mjs",
6
6
  "exports": {
7
7
  ".": {
8
8
  "types": "./dist/types/index.d.ts",
9
- "import": "./dist/esm/index.js",
9
+ "import": "./dist/esm/index.mjs",
10
10
  "require": "./dist/index.js"
11
11
  },
12
12
  "./styles.css": "./dist/styles.css"
@@ -28,20 +28,21 @@
28
28
  "scripts": {
29
29
  "build": "yarn build:rollup",
30
30
  "build:rollup": "rollup --config",
31
+ "check:esm": "node --input-type=module --eval 'import \"@aws-amplify/ui-react-storage\"'",
31
32
  "clean": "rimraf dist node_modules",
32
33
  "dev": "yarn build:rollup --watch",
33
34
  "lint": "yarn typecheck && eslint src --ext .js,.ts,.tsx",
34
35
  "prebuild": "rimraf dist",
35
36
  "size": "yarn size-limit",
36
37
  "test": "jest",
37
- "test:ci": "yarn test",
38
+ "test:ci": "yarn test && yarn check:esm",
38
39
  "test:watch": "yarn test --watch",
39
40
  "typecheck": "tsc --noEmit"
40
41
  },
41
42
  "dependencies": {
42
- "@aws-amplify/ui": "0.0.0-studio-e5b8195-20230912200241",
43
- "@aws-amplify/ui-react": "0.0.0-studio-e5b8195-20230912200241",
44
- "@aws-amplify/ui-react-core": "0.0.0-studio-e5b8195-20230912200241",
43
+ "@aws-amplify/ui": "0.0.0-studio-console-80bb2e2-20230921222703",
44
+ "@aws-amplify/ui-react": "0.0.0-studio-console-80bb2e2-20230921222703",
45
+ "@aws-amplify/ui-react-core": "0.0.0-studio-console-80bb2e2-20230921222703",
45
46
  "classnames": "2.3.1",
46
47
  "lodash": "4.17.21",
47
48
  "tslib": "2.4.1"
@@ -58,7 +59,6 @@
58
59
  },
59
60
  "devDependencies": {
60
61
  "@aws-amplify/eslint-config-amplify-ui": "0.0.0",
61
- "@rollup/plugin-commonjs": "^22.0.1",
62
62
  "@rollup/plugin-typescript": "^8.3.1",
63
63
  "@size-limit/preset-big-lib": "^8.2.6",
64
64
  "@testing-library/jest-dom": "^5.14.1",
@@ -87,7 +87,7 @@
87
87
  "size-limit": [
88
88
  {
89
89
  "name": "StorageManager",
90
- "path": "dist/esm/index.js",
90
+ "path": "dist/esm/index.mjs",
91
91
  "import": "{ StorageManager }",
92
92
  "limit": "120 kB"
93
93
  }
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import*as r from"react";import a from"classnames";import{Image as t,ComponentClassNames as o}from"@aws-amplify/ui-react";import{useStorageURL as s}from"@aws-amplify/ui-react/internal";const c=c=>{var{accessLevel:i,className:m,fallbackSrc:l,identityId:n,imgKey:f,onStorageGetError:p}=c,g=e(c,["accessLevel","className","fallbackSrc","identityId","imgKey","onStorageGetError"]);const y=r.useMemo((()=>({level:i,identityId:n})),[i,n]),d=s({key:f,options:y,fallbackURL:l,onStorageGetError:p});return r.createElement(t,Object.assign({},g,{className:a(o.StorageImage,m),src:d}))};export{c as StorageImage};
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import*as i from"react";import{Logger as t}from"aws-amplify";import{ComponentClassNames as l,VisuallyHidden as o}from"@aws-amplify/ui-react";import{useDropZone as s}from"@aws-amplify/ui-react/internal";import{useStorageManager as r}from"./hooks/useStorageManager/useStorageManager.js";import{useUploadFiles as a}from"./hooks/useUploadFiles/useUploadFiles.js";import{FileStatus as n}from"./types.js";import{Container as p}from"./ui/Container/Container.js";import{DropZone as c}from"./ui/DropZone/DropZone.js";import{FileList as u}from"./ui/FileList/FileList.js";import{FileListHeader as m}from"./ui/FileListHeader/FileListHeader.js";import{FileListFooter as d}from"./ui/FileListFooter/FileListFooter.js";import{FilePicker as F}from"./ui/FilePicker/FilePicker.js";import{checkMaxFileSize as f}from"./utils/checkMaxFileSize.js";import{defaultStorageManagerDisplayText as g}from"./utils/displayText.js";import{filterAllowedFiles as U}from"./utils/filterAllowedFiles.js";const E=new t("Storage.StorageManager");const j=Object.assign(i.forwardRef((function({acceptedFileTypes:t=[],accessLevel:j,autoUpload:D=!0,defaultFiles:L,displayText:S,isResumable:h=!1,maxFileCount:x,maxFileSize:y,onUploadError:C,onUploadSuccess:T,onFileRemove:k,onUploadStart:v,showThumbnails:b=!0,processFile:w,components:P,provider:M,path:R},A){j&&x||E.warn("FileUploader requires accessLevel and maxFileCount props");const O=Object.assign({Container:p,DropZone:c,FileList:u,FilePicker:F,FileListHeader:m,FileListFooter:d},P),H=void 0===x||"number"==typeof x&&x>1,Z=Object.assign(Object.assign({},g),S),{getFileSizeErrorText:z}=Z,q=e=>f({file:e,maxFileSize:y,getFileSizeErrorText:z}),{addFiles:I,clearFiles:Q,files:$,removeUpload:N,queueFiles:B,setUploadingFile:G,setUploadPaused:J,setUploadProgress:K,setUploadSuccess:V,setUploadResumed:W}=r(L);i.useImperativeHandle(A,(()=>({clearFiles:Q})));const X=s({acceptedFileTypes:t,onDropComplete:({acceptedFiles:e,rejectedFiles:i})=>{i&&i.length>0&&E.warn("Rejected files: ",i);const l=U(e,t);I({files:l,status:D?n.QUEUED:n.ADDED,getFileErrorMessage:q})}}),{dragState:Y}=X,_=e(X,["dragState"]);a({accessLevel:j,files:$,isResumable:h,maxFileCount:x,onUploadError:C,onUploadSuccess:T,onUploadStart:v,setUploadingFile:G,setUploadProgress:K,setUploadSuccess:V,processFile:w,provider:M,path:R});const ee=0!==$.length&&$.every((e=>(null==e?void 0:e.status)===n.UPLOADED)),ie=$.filter((e=>e.progress<100)).length>x,te=$.filter((e=>(null==e?void 0:e.status)===n.UPLOADED)).length,le=$.length-te,oe=D?0:le,se=$.length>0,re=!D&&le>0,ae=i.useRef(null);return i.createElement(O.Container,{className:`${l.StorageManager} ${se?l.StorageManagerPreviewer:""}`},i.createElement(O.DropZone,Object.assign({inDropZone:"inactive"!==Y},_,{displayText:Z}),i.createElement(i.Fragment,null,i.createElement(O.FilePicker,{onClick:function(){ae.current&&(ae.current.click(),ae.current.value="")}},Z.browseFilesText),i.createElement(o,null,i.createElement("input",{type:"file",tabIndex:-1,ref:ae,onChange:e=>{const{files:i}=e.target;i&&0!==i.length&&I({files:Array.from(i),status:D?n.QUEUED:n.ADDED,getFileErrorMessage:q})},multiple:H,accept:t.join(",")})))),se?i.createElement(O.FileListHeader,{allUploadsSuccessful:ee,displayText:Z,fileCount:$.length,remainingFilesCount:le,selectedFilesCount:oe}):null,i.createElement(O.FileList,{displayText:Z,files:$,isResumable:h,onCancelUpload:({id:e,uploadTask:i})=>{i.pause(),N({id:e})},onDeleteUpload:({id:e})=>{if(N({id:e}),"function"==typeof k){const i=$.find((i=>i.id===e));i&&k({key:i.key})}},onResume:({id:e,uploadTask:i})=>{i.resume(),W({id:e})},onPause:({id:e,uploadTask:i})=>{i.pause(),J({id:e})},showThumbnails:b,hasMaxFilesError:ie,maxFileCount:x}),re?i.createElement(O.FileListFooter,{displayText:Z,remainingFilesCount:le,onClearAll:()=>{Q()},onUploadAll:()=>{B()}}):null)})),{Container:p,DropZone:c,FileList:u,FileListHeader:m,FileListFooter:d,FilePicker:F});export{j as StorageManager};
@@ -1 +0,0 @@
1
- import{StorageManagerActionTypes as s}from"./types.js";const e=({files:e,status:t,getFileErrorMessage:p})=>({type:s.ADD_FILES,files:e,status:t,getFileErrorMessage:p}),t=()=>({type:s.CLEAR_FILES}),p=()=>({type:s.QUEUE_FILES}),E=({id:e,uploadTask:t})=>({type:s.SET_STATUS_UPLOADING,id:e,uploadTask:t}),i=({id:e,progress:t})=>({type:s.SET_UPLOAD_PROGRESS,id:e,progress:t}),r=({id:e,status:t})=>({type:s.SET_STATUS,id:e,status:t}),S=({id:e})=>({type:s.REMOVE_UPLOAD,id:e});export{e as addFilesAction,t as clearFilesAction,p as queueFilesAction,S as removeUploadAction,i as setUploadProgressAction,r as setUploadStatusAction,E as setUploadingFileAction};
@@ -1 +0,0 @@
1
- import{FileStatus as s}from"../../types.js";import{StorageManagerActionTypes as e}from"./types.js";function t(t,i){switch(i.type){case e.ADD_FILES:{const{files:e,status:a}=i,c=e.map((e=>{const t=i.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?s.ERROR:a,isImage:e.type.startsWith("image/"),progress:-1}})),n=[...t.files,...c];return Object.assign(Object.assign({},t),{files:n})}case e.CLEAR_FILES:return Object.assign(Object.assign({},t),{files:[]});case e.QUEUE_FILES:{const{files:e}=t,i=e.reduce(((e,t)=>[...e,Object.assign(Object.assign({},t),{status:s.QUEUED})]),[]);return Object.assign(Object.assign({},t),{files:i})}case e.SET_STATUS_UPLOADING:{const{id:e,uploadTask:a}=i,{files:c}=t,n=c.reduce(((t,i)=>i.id===e?[...t,Object.assign(Object.assign({},i),{status:s.UPLOADING,progress:0,uploadTask:a||void 0})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:n})}case e.SET_UPLOAD_PROGRESS:{const{id:s,progress:e}=i,{files:a}=t,c=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{progress:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:c})}case e.SET_STATUS:{const{id:s,status:e}=i,{files:a}=t,c=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{status:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:c})}case e.REMOVE_UPLOAD:{const{id:s}=i,{files:e}=t,a=e.reduce(((e,t)=>t.id===s?[...e]:[...e,t]),[]);return Object.assign(Object.assign({},t),{files:a})}}}export{t as storageManagerStateReducer};
@@ -1 +0,0 @@
1
- import s from"react";import{FileStatus as e}from"../../types.js";import{storageManagerStateReducer as i}from"./reducer.js";import{addFilesAction as r,clearFilesAction as t,queueFilesAction as a,setUploadingFileAction as o,setUploadProgressAction as d,setUploadStatusAction as l,removeUploadAction as p}from"./actions.js";import{isObject as u}from"@aws-amplify/ui";const m=s=>(s=>!(!u(s)||!s.key))(s)?Object.assign(Object.assign({},s),{id:s.key,status:e.UPLOADED}):void 0;function f(u=[]){const[{files:f},c]=s.useReducer(i,{files:Array.isArray(u)?u.map(m).filter((s=>!!s)):[]});return{removeUpload:({id:s})=>{c(p({id:s}))},setUploadPaused:({id:s})=>{c(l({id:s,status:e.PAUSED}))},setUploadProgress:({progress:s,id:e})=>{c(d({id:e,progress:s}))},setUploadResumed:({id:s})=>{c(l({id:s,status:e.UPLOADING}))},setUploadSuccess:({id:s})=>{c(l({id:s,status:e.UPLOADED}))},setUploadingFile:({uploadTask:s,id:e})=>{c(o({id:e,uploadTask:s}))},queueFiles:()=>{c(a())},addFiles:({files:s,status:e,getFileErrorMessage:i})=>{c(r({files:s,status:e,getFileErrorMessage:i}))},clearFiles:()=>{c(t())},files:f}}export{f as useStorageManager};
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import*as o from"react";import{uploadFile as s}from"../../utils/uploadFile.js";import{FileStatus as l}from"../../types.js";import{resolveFile as t}from"./resolveFile.js";function r({files:r,accessLevel:a,isResumable:i,setUploadProgress:p,setUploadingFile:c,setUploadSuccess:n,onUploadError:d,onUploadSuccess:f,onUploadStart:m,maxFileCount:u,processFile:k,provider:b,path:y=""}){o.useEffect((()=>{const o=r.filter((e=>e.status===l.QUEUED));if(!(o.length>u))for(const{file:l,key:r,id:u}of o){const o=e=>{null==f||f(e),n({id:u})},U=e=>{const o=0===e.total?100:Math.floor(e.loaded/e.total*100);p({id:u,progress:o})},g=e=>{null==d||d(e,{key:r})};l&&t({processFile:k,file:l,key:r}).then((l=>{var{key:t}=l,r=e(l,["key"]);null==m||m({key:t});const p=s(Object.assign(Object.assign({},r),{isResumable:i,provider:b,key:y+t,level:a,completeCallback:o,progressCallback:U,errorCallback:g}));c({id:u,uploadTask:i?p:void 0})}))}}),[r,a,i,p,c,d,f,m,u,n,k,b,y])}export{r as useUploadFiles};
@@ -1 +0,0 @@
1
- import a from"react";import e from"classnames";import{View as r,ComponentClassNames as o,Text as n}from"@aws-amplify/ui-react";import{classNameModifier as t}from"@aws-amplify/ui";import{useIcons as i,IconUpload as l}from"@aws-amplify/ui-react/internal";function m({children:m,displayText:p,inDropZone:s,onDragEnter:g,onDragLeave:c,onDragOver:D,onDragStart:d,onDrop:f,testId:u}){var v;const{dropFilesText:E}=p,S=i("storageManager");return a.createElement(r,{className:e(s&&t(o.StorageManagerDropZone,"active"),o.StorageManagerDropZone),"data-testid":u,onDragStart:d,onDragEnter:g,onDragLeave:c,onDrop:f,onDragOver:D},a.createElement(r,{as:"span","aria-hidden":!0,className:o.StorageManagerDropZoneIcon},null!==(v=null==S?void 0:S.upload)&&void 0!==v?v:a.createElement(l,null)),a.createElement(n,{className:o.StorageManagerDropZoneText},E),m)}export{m as DropZone};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as t,Loader as r,Button as l}from"@aws-amplify/ui-react";import{FileStatus as s}from"../../types.js";import{FileStatusMessage as i}from"./FileStatusMessage.js";import{FileRemoveButton as m}from"./FileRemoveButton.js";import{UploadDetails as n}from"./FileDetails.js";import{FileThumbnail as o}from"./FileThumbnail.js";function u({onPause:u,onResume:c,displayName:p,errorMessage:g,isImage:f,isResumable:d,loaderIsDeterminate:T,onRemove:x,progress:E,showThumbnails:S=!0,size:N,status:P,displayText:D,thumbnailUrl:U}){const{getPausedText:v,getUploadingText:F,uploadSuccessfulText:M,pauseText:j,resumeText:k}=D;return e.createElement(a,{className:t.StorageManagerFile},e.createElement(a,{className:t.StorageManagerFileWrapper},S?e.createElement(o,{isImage:f,fileName:p,url:U}):null,e.createElement(n,{displayName:p,fileSize:N}),P===s.UPLOADING?e.createElement(r,{className:t.StorageManagerLoader,variation:"linear",percentage:E,isDeterminate:T,isPercentageTextHidden:!0}):null,!d||P!==s.UPLOADING&&P!==s.PAUSED?null:P===s.PAUSED?e.createElement(l,{onClick:c,size:"small",variation:"link"},k):e.createElement(l,{onClick:u,size:"small",variation:"link"},j),e.createElement(m,{altText:`Remove file ${p}`,onClick:x})),e.createElement(i,{uploadSuccessfulText:M,getUploadingText:F,getPausedText:v,status:P,errorMessage:g,percentage:E}))}export{u as FileControl};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as r,Text as t}from"@aws-amplify/ui-react";import{humanFileSize as m}from"@aws-amplify/ui";const l=({displayName:l,fileSize:i})=>e.createElement(e.Fragment,null,e.createElement(a,{className:r.StorageManagerFileMain},e.createElement(t,{className:r.StorageManagerFileName},l)),e.createElement(t,{as:"span",className:r.StorageManagerFileSize},i?m(i,!0):""));export{l as UploadDetails};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as s,Alert as r}from"@aws-amplify/ui-react";import{FileStatus as o}from"../../types.js";import{FileControl as i}from"./FileControl.js";function t({displayText:t,files:l,hasMaxFilesError:n,isResumable:m,onCancelUpload:u,onDeleteUpload:p,onResume:d,onPause:c,showThumbnails:g,maxFileCount:f}){if(l.length<1)return null;const{getMaxFilesErrorText:T}=t,U=T(f);return e.createElement(a,{className:s.StorageManagerFileList},l.map((a=>{const{file:s,status:r,progress:l,error:n,key:f,isImage:T,id:U,uploadTask:h}=a,x=s&&T?URL.createObjectURL(s):"",y=!m||l>0,R=r===o.UPLOADING;return e.createElement(i,{displayName:f,errorMessage:n,displayText:t,isImage:T,isUploading:R,isResumable:m,key:U,loaderIsDeterminate:y,onRemove:()=>{m&&(r===o.UPLOADING||r===o.PAUSED)&&h?u({id:U,uploadTask:h}):p({id:U})},onPause:()=>{h&&c({id:U,uploadTask:h})},onResume:()=>{h&&d({id:U,uploadTask:h})},progress:l,showThumbnails:g,size:null==s?void 0:s.size,status:r,thumbnailUrl:x})})),n&&e.createElement(r,{variation:"error",heading:U}))}export{t as FileList};
@@ -1 +0,0 @@
1
- import e from"react";import{useIcons as t,IconClose as a}from"@aws-amplify/ui-react/internal";import{Button as r,VisuallyHidden as l,View as n}from"@aws-amplify/ui-react";const i=({altText:i,onClick:m})=>{var o;const c=t("storageManager");return e.createElement(r,{size:"small",onClick:m},e.createElement(l,null,i),e.createElement(n,{as:"span","aria-hidden":!0,fontSize:"medium"},null!==(o=null==c?void 0:c.remove)&&void 0!==o?o:e.createElement(a,null)))};export{i as FileRemoveButton};
@@ -1 +0,0 @@
1
- import e from"react";import a from"classnames";import{Text as t,ComponentClassNames as r,View as s}from"@aws-amplify/ui-react";import{useIcons as l,IconError as n,IconCheck as o}from"@aws-amplify/ui-react/internal";import{classNameModifier as c}from"@aws-amplify/ui";import{FileStatus as u}from"../../types.js";const m=({errorMessage:m,getPausedText:i,getUploadingText:g,percentage:p,status:S,uploadSuccessfulText:f})=>{var E,d;const M=l("storageManager");switch(S){case u.UPLOADING:return e.createElement(t,{className:r.StorageManagerFileStatus},g(p));case u.PAUSED:return e.createElement(t,{className:r.StorageManagerFileStatus},i(p));case u.UPLOADED:return e.createElement(t,{className:a(r.StorageManagerFileStatus,c(r.StorageManagerFileStatus,"success"))},e.createElement(s,{as:"span",fontSize:"xl"},null!==(E=null==M?void 0:M.success)&&void 0!==E?E:e.createElement(o,null)),f);case u.ERROR:return e.createElement(t,{className:a(r.StorageManagerFileStatus,c(r.StorageManagerFileStatus,"error"))},e.createElement(s,{as:"span",fontSize:"xl"},null!==(d=null==M?void 0:M.error)&&void 0!==d?d:e.createElement(n,null)),m);default:return null}};export{m as FileStatusMessage};
@@ -1 +0,0 @@
1
- import e from"react";import{Image as a,View as r,ComponentClassNames as t}from"@aws-amplify/ui-react";import{useIcons as l,IconFile as m}from"@aws-amplify/ui-react/internal";const i=({fileName:i,isImage:n,url:o})=>{var c;const s=l("storageManager"),f=n?e.createElement(a,{alt:i,src:o}):null!==(c=null==s?void 0:s.file)&&void 0!==c?c:e.createElement(m,null);return e.createElement(r,{className:t.StorageManagerFileImage},f)};export{i as FileThumbnail};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as t,Button as r}from"@aws-amplify/ui-react";function l({displayText:l,remainingFilesCount:n,onClearAll:o,onUploadAll:i}){const{clearAllButtonText:m,getUploadButtonText:c}=l;return e.createElement(a,{className:t.StorageManagerPreviewerFooter},e.createElement(a,{className:t.StorageManagerPreviewerActions},e.createElement(r,{size:"small",variation:"link",onClick:o},m),e.createElement(r,{size:"small",variation:"primary",onClick:i},c(n))))}export{l as FileListFooter};
@@ -1 +0,0 @@
1
- import e from"react";import{Text as t,ComponentClassNames as i}from"@aws-amplify/ui-react";function l({allUploadsSuccessful:l,displayText:a,fileCount:r,remainingFilesCount:s,selectedFilesCount:n=0}){const{getFilesUploadedText:o,getRemainingFilesText:c,getSelectedFilesText:m}=a;return e.createElement(t,{className:i.StorageManagerPreviewerText},n?m(n):l?o(r):c(s))}export{l as FileListHeader};
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import r from"react";import{ComponentClassNames as a,Button as i}from"@aws-amplify/ui-react";function s(s){var{children:t,className:m=a.StorageManagerFilePicker,size:c="small"}=s,l=e(s,["children","className","size"]);return r.createElement(i,Object.assign({},l,{className:m,size:c}),t)}export{s as FilePicker};
@@ -1 +0,0 @@
1
- import{humanFileSize as e}from"./humanFileSize.js";const i=({file:i,getFileSizeErrorText:o,maxFileSize:r})=>void 0===r?"":i.size>r?o(e(r,!0)):"";export{i as checkMaxFileSize};
@@ -1 +0,0 @@
1
- function B(B,t=!1,i=1){const n=t?1e3:1024;if(Math.abs(B)<n)return`${B} B`;const o=t?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let e=-1;const a=Math.pow(10,i);do{B/=n,++e}while(Math.round(Math.abs(B)*a)/a>=n&&e<o.length-1);return B.toFixed(i)+" "+o[e]}export{B as humanFileSize};
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import{Storage as l}from"aws-amplify";function r(r){var{file:a,key:o,level:t="private",progressCallback:s,errorCallback:p,completeCallback:c,isResumable:b=!1,provider:i}=r,m=e(r,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const k=a.type||"binary/octet-stream";return!0===b?l.put(o,a,Object.assign({level:t,resumable:!0,progressCallback:s,errorCallback:p,completeCallback:c,contentType:k,provider:i},m)):l.put(o,a,Object.assign({level:t,resumable:!1,progressCallback:s,contentType:k,provider:i},m)).then(c,p)}export{r as uploadFile};
package/dist/esm/index.js DELETED
@@ -1 +0,0 @@
1
- export{StorageImage}from"./components/StorageImage/StorageImage.js";export{StorageManager}from"./components/StorageManager/StorageManager.js";