<ContentPanel @title={{t "order.fields.documents-panel-title"}} @open={{true}} @wrapperClass="bordered-top">
    <div class="space-y-2">
        {{#if this.queueFile.isRunning}}
            <div
                class="dropzone w-full rounded-lg px-4 py-8 bg-gray-50 dark:bg-gray-900 bg-opacity-25 text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500"
            >
                <div class="flex items-center justify-center py-5">
                    <Spinner class="text-sm dar:text-gray-100" @loadingMessage={{concat (t "common.uploading") "..."}} />
                </div>
            </div>
        {{else}}
            {{#let (file-queue name="files" onFileAdded=(perform this.queueFile) accept=(join "," this.acceptedFileTypes)) as |queue|}}
                <FileDropzone @queue={{queue}} class="dropzone file-dropzone" @disabled={{cannot-write @resource}} as |dropzone|>
                    {{#if dropzone.active}}
                        {{#if dropzone.valid}}
                            {{t "dropzone.drop-to-upload"}}
                        {{else}}
                            {{t "dropzone.invalid"}}
                        {{/if}}
                    {{else if queue.files.length}}
                        <div class="my-2">
                            <FaIcon @icon="folder-open" class="text-indigo-500 mr-2" />
                            {{t "dropzone.files-ready-for-upload" numOfFiles=(pluralize queue.files.length (t "dropzone.file"))}}
                        </div>
                        <div class="my-2">({{queue.progress}}%)</div>
                    {{else}}
                        <h4 class="font-semibold">
                            <FaIcon @icon="folder-open" @size="lg" class="text-indigo-500 mr-2" />
                            {{t "dropzone.upload-documents-files"}}
                        </h4>
                        <div>
                            {{#if dropzone.supported}}
                                <p class="text-sm my-5">{{t "dropzone.dropzone-supported-files"}}</p>
                            {{/if}}
                            <FileUpload
                                @name="files"
                                @for="files"
                                @accept={{join "," this.acceptedFileTypes}}
                                @multiple={{true}}
                                @onFileAdded={{perform this.queueFile}}
                                @disabled={{cannot-write @resource}}
                            >
                                <a tabindex={{0}} class="btn btn-magic cursor-pointer ml-1">{{t "dropzone.or-select-button-text"}}</a>
                            </FileUpload>
                        </div>
                    {{/if}}
                </FileDropzone>
            {{/let}}
            {{#if this.uploadQueue}}
                <div class="mx-0.5">
                    <div class="flex items-center justify-between">
                        <span class="leading-6 text-sm font-semibold dark:text-gray-100">{{t "dropzone.upload-queue"}}</span>
                    </div>
                    <div class="space-y-2 mb-2">
                        {{#each this.uploadQueue as |file|}}
                            <div class="flex items-center justify-between bg-blue-100 border border-blue-800 dark:border-blue-800 py-1.5 shadow-sm rounded-lg px-4">
                                <div class="text-xs text-blue-900 truncate">{{truncate-filename file.name 50}}</div>
                                <div class="flex items-center text-sm">
                                    <Spinner class="text-blue-900 mr-2" />
                                    <span class="font-bold text-blue-900">{{round file.progress}}%</span>
                                </div>
                            </div>
                        {{/each}}
                    </div>
                </div>
            {{/if}}
            <div>
                <div class="grid grid-cols-2 md:grid-cols-4 gap-2 md:gap-4">
                    {{#each @resource.files as |file|}}
                        <File @file={{file}} @onDelete={{perform this.removeFile}} />
                    {{/each}}
                </div>
            </div>
        {{/if}}
    </div>
</ContentPanel>