mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Update:Edit modal for mobile screen sizes and update tailwind
This commit is contained in:
		
							parent
							
								
									ab6da3914b
								
							
						
					
					
						commit
						793f82e445
					
				@ -1,16 +1,16 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div ref="wrapper" class="hidden absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 rounded-lg items-center justify-center" style="z-index: 51" @click="clickClose">
 | 
					  <div ref="wrapper" class="hidden absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 rounded-lg items-center justify-center" style="z-index: 51" @click="clickClose">
 | 
				
			||||||
    <div class="absolute top-5 right-5 h-12 w-12 flex items-center justify-center cursor-pointer text-white hover:text-gray-300">
 | 
					    <div class="absolute top-3 right-3 md:top-5 md:right-5 h-8 w-8 md:h-12 md:w-12 flex items-center justify-center cursor-pointer text-white hover:text-gray-300">
 | 
				
			||||||
      <span class="material-icons text-4xl">close</span>
 | 
					      <span class="material-icons text-2xl md:text-4xl">close</span>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div ref="content" class="text-white">
 | 
					    <div ref="content" class="text-white">
 | 
				
			||||||
      <form v-if="selectedSeries" @submit.prevent="submitSeriesForm">
 | 
					      <form v-if="selectedSeries" @submit.prevent="submitSeriesForm">
 | 
				
			||||||
        <div class="bg-bg rounded-lg p-8" @click.stop>
 | 
					        <div class="bg-bg rounded-lg px-2 py-6 sm:p-6 md:p-8" @click.stop>
 | 
				
			||||||
          <div class="flex">
 | 
					          <div class="flex">
 | 
				
			||||||
            <div class="flex-grow p-1 min-w-80">
 | 
					            <div class="flex-grow p-1 min-w-48 sm:min-w-64 md:min-w-80">
 | 
				
			||||||
              <ui-input-dropdown ref="newSeriesSelect" v-model="selectedSeries.name" :items="existingSeriesNames" :disabled="!selectedSeries.id.startsWith('new')" label="Series Name" />
 | 
					              <ui-input-dropdown ref="newSeriesSelect" v-model="selectedSeries.name" :items="existingSeriesNames" :disabled="!selectedSeries.id.startsWith('new')" label="Series Name" />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="w-40 p-1">
 | 
					            <div class="w-24 sm:w-28 md:w-40 p-1">
 | 
				
			||||||
              <ui-text-input-with-label v-model="selectedSeries.sequence" label="Sequence" />
 | 
					              <ui-text-input-with-label v-model="selectedSeries.sequence" label="Sequence" />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,11 +2,11 @@
 | 
				
			|||||||
  <div ref="wrapper" class="modal modal-bg w-full h-full fixed top-0 left-0 bg-primary items-center justify-center opacity-0 hidden" :class="`z-${zIndex} bg-opacity-${bgOpacity}`">
 | 
					  <div ref="wrapper" class="modal modal-bg w-full h-full fixed top-0 left-0 bg-primary items-center justify-center opacity-0 hidden" :class="`z-${zIndex} bg-opacity-${bgOpacity}`">
 | 
				
			||||||
    <div class="absolute top-0 left-0 right-0 w-full h-36 bg-gradient-to-t from-transparent via-black-500 to-black-700 opacity-90 pointer-events-none" />
 | 
					    <div class="absolute top-0 left-0 right-0 w-full h-36 bg-gradient-to-t from-transparent via-black-500 to-black-700 opacity-90 pointer-events-none" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="absolute top-5 right-5 h-12 w-12 flex items-center justify-center cursor-pointer text-white hover:text-gray-300" @click="clickClose">
 | 
					    <div class="absolute top-3 right-3 md:top-5 md:right-5 h-8 w-8 md:h-12 md:w-12 flex items-center justify-center cursor-pointer text-white hover:text-gray-300" @click="clickClose">
 | 
				
			||||||
      <span class="material-icons text-4xl">close</span>
 | 
					      <span class="material-icons text-2xl md:text-4xl">close</span>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <slot name="outer" />
 | 
					    <slot name="outer" />
 | 
				
			||||||
    <div ref="content" style="min-width: 400px; min-height: 200px" class="relative text-white" :style="{ height: modalHeight, width: modalWidth, marginTop: contentMarginTop + 'px' }" @mousedown="mousedownModal" @mouseup="mouseupModal" v-click-outside="clickBg">
 | 
					    <div ref="content" style="min-width: 380px; min-height: 200px; max-width: 100vw" class="relative text-white" :style="{ height: modalHeight, width: modalWidth, marginTop: contentMarginTop + 'px' }" @mousedown="mousedownModal" @mouseup="mouseupModal" v-click-outside="clickBg">
 | 
				
			||||||
      <slot />
 | 
					      <slot />
 | 
				
			||||||
      <div v-if="processing" class="absolute top-0 left-0 right-0 bottom-0 w-full h-full bg-black bg-opacity-60 rounded-lg flex items-center justify-center">
 | 
					      <div v-if="processing" class="absolute top-0 left-0 right-0 bottom-0 w-full h-full bg-black bg-opacity-60 rounded-lg flex items-center justify-center">
 | 
				
			||||||
        <ui-loading-indicator />
 | 
					        <ui-loading-indicator />
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,13 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <modals-modal v-model="show" name="edit-book" :width="800" :height="height" :processing="processing" :content-margin-top="75">
 | 
					  <modals-modal v-model="show" name="edit-book" :width="800" :height="height" :processing="processing" :content-margin-top="75">
 | 
				
			||||||
    <template #outer>
 | 
					    <template #outer>
 | 
				
			||||||
      <div class="absolute top-0 left-0 p-5 w-2/3 overflow-hidden pointer-events-none">
 | 
					      <div class="absolute top-0 left-0 p-4 md:p-5 w-2/3 overflow-hidden pointer-events-none">
 | 
				
			||||||
        <p class="font-book text-3xl text-white truncate pointer-events-none">{{ title }}</p>
 | 
					        <p class="font-book text-xl md:text-3xl text-white truncate pointer-events-none">{{ title }}</p>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </template>
 | 
					    </template>
 | 
				
			||||||
    <div class="absolute -top-10 left-0 z-10 w-full flex">
 | 
					    <div class="absolute -top-10 left-0 z-10 w-full flex">
 | 
				
			||||||
      <template v-for="tab in availableTabs">
 | 
					      <template v-for="tab in availableTabs">
 | 
				
			||||||
        <div :key="tab.id" class="w-28 rounded-t-lg flex items-center justify-center mr-1 cursor-pointer hover:bg-bg font-book border-t border-l border-r border-black-300 tab text-xs sm:text-base" :class="selectedTab === tab.id ? 'tab-selected bg-bg pb-px' : 'bg-primary text-gray-400'" @click="selectTab(tab.id)">{{ tab.title }}</div>
 | 
					        <div :key="tab.id" class="w-28 rounded-t-lg flex items-center justify-center mr-0.5 sm:mr-1 cursor-pointer hover:bg-bg font-book border-t border-l border-r border-black-300 tab text-xs sm:text-base" :class="selectedTab === tab.id ? 'tab-selected bg-bg pb-px' : 'bg-primary text-gray-400'" @click="selectTab(tab.id)">{{ tab.title }}</div>
 | 
				
			||||||
      </template>
 | 
					      </template>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="w-full h-full overflow-hidden overflow-y-auto px-4 py-6 relative">
 | 
					  <div class="w-full h-full overflow-hidden overflow-y-auto px-2 sm:px-4 py-6 relative">
 | 
				
			||||||
    <div class="flex">
 | 
					    <div class="flex flex-wrap">
 | 
				
			||||||
      <div class="relative">
 | 
					      <div class="relative">
 | 
				
			||||||
        <covers-book-cover :library-item="libraryItem" :book-cover-aspect-ratio="bookCoverAspectRatio" />
 | 
					        <covers-book-cover :library-item="libraryItem" :book-cover-aspect-ratio="bookCoverAspectRatio" />
 | 
				
			||||||
        <!-- book cover overlay -->
 | 
					        <!-- book cover overlay -->
 | 
				
			||||||
@ -11,14 +11,14 @@
 | 
				
			|||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="flex-grow pl-6 pr-2">
 | 
					      <div class="flex-grow sm:pl-2 md:pl-6 sm:pr-2 mt-2 md:mt-0">
 | 
				
			||||||
        <div class="flex items-center">
 | 
					        <div class="flex items-center">
 | 
				
			||||||
          <div v-if="userCanUpload" class="w-40 pr-2 pt-4" style="min-width: 160px">
 | 
					          <div v-if="userCanUpload" class="w-10 md:w-40 pr-2 pt-4 md:min-w-32">
 | 
				
			||||||
            <ui-file-input ref="fileInput" @change="fileUploadSelected">Upload Cover</ui-file-input>
 | 
					            <ui-file-input ref="fileInput" @change="fileUploadSelected"><span class="hidden md:inline-block">Upload Cover</span><span class="material-icons inline-block md:!hidden">upload</span></ui-file-input>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <form @submit.prevent="submitForm" class="flex flex-grow">
 | 
					          <form @submit.prevent="submitForm" class="flex flex-grow">
 | 
				
			||||||
            <ui-text-input-with-label v-model="imageUrl" label="Cover Image URL" />
 | 
					            <ui-text-input-with-label v-model="imageUrl" label="Cover Image URL" />
 | 
				
			||||||
            <ui-btn color="success" type="submit" :padding-x="4" class="mt-5 ml-3 w-24">Update</ui-btn>
 | 
					            <ui-btn color="success" type="submit" :padding-x="4" class="mt-5 ml-2 sm:ml-3 w-24">Update</ui-btn>
 | 
				
			||||||
          </form>
 | 
					          </form>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -5,23 +5,24 @@
 | 
				
			|||||||
      <widgets-podcast-details-edit v-else ref="itemDetailsEdit" :library-item="libraryItem" @submit="saveAndClose" />
 | 
					      <widgets-podcast-details-edit v-else ref="itemDetailsEdit" :library-item="libraryItem" @submit="saveAndClose" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="absolute bottom-0 left-0 w-full py-4 bg-bg" :class="isScrollable ? 'box-shadow-md-up' : 'border-t border-white border-opacity-5'">
 | 
					    <div class="absolute bottom-0 left-0 w-full py-2 md:py-4 bg-bg" :class="isScrollable ? 'box-shadow-md-up' : 'border-t border-white border-opacity-5'">
 | 
				
			||||||
      <div class="flex items-center px-4">
 | 
					      <div class="flex items-center px-4">
 | 
				
			||||||
        <ui-btn v-if="userCanDelete" color="error" type="button" class="h-8" :padding-x="3" small @click.stop.prevent="removeItem">Remove</ui-btn>
 | 
					        <ui-btn v-if="userCanDelete" color="error" type="button" class="h-8 hidden md:block" :padding-x="3" small @click.stop.prevent="removeItem">Remove</ui-btn>
 | 
				
			||||||
 | 
					        <ui-icon-btn bg-color="error" icon="delete" class="md:hidden" :size="7" icon-font-size="1rem" @click.stop.prevent="removeItem" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div class="flex-grow" />
 | 
					        <div class="flex-grow" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ui-tooltip v-if="mediaType == 'book'" :disabled="!!quickMatching" :text="`(Root User Only) Populate empty book details & cover with first book result from '${libraryProvider}'. Does not overwrite details.`" direction="bottom" class="mr-4">
 | 
					        <ui-tooltip v-if="mediaType == 'book'" :disabled="!!quickMatching" :text="`(Root User Only) Populate empty book details & cover with first book result from '${libraryProvider}'. Does not overwrite details.`" direction="bottom" class="mr-2 md:mr-4">
 | 
				
			||||||
          <ui-btn v-if="userIsAdminOrUp" :loading="quickMatching" color="bg" type="button" class="h-full" small @click.stop.prevent="quickMatch">Quick Match</ui-btn>
 | 
					          <ui-btn v-if="userIsAdminOrUp" :loading="quickMatching" color="bg" type="button" class="h-full" small @click.stop.prevent="quickMatch">Quick Match</ui-btn>
 | 
				
			||||||
        </ui-tooltip>
 | 
					        </ui-tooltip>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ui-tooltip :disabled="!!libraryScan" text="(Root User Only) Rescan audiobook including metadata" direction="bottom" class="mr-4">
 | 
					        <ui-tooltip :disabled="!!libraryScan" text="(Root User Only) Rescan audiobook including metadata" direction="bottom" class="mr-2 md:mr-4">
 | 
				
			||||||
          <ui-btn v-if="userIsAdminOrUp && !isFile" :loading="rescanning" :disabled="!!libraryScan" color="bg" type="button" class="h-full" small @click.stop.prevent="rescan">Re-Scan</ui-btn>
 | 
					          <ui-btn v-if="userIsAdminOrUp && !isFile" :loading="rescanning" :disabled="!!libraryScan" color="bg" type="button" class="h-full" small @click.stop.prevent="rescan">Re-Scan</ui-btn>
 | 
				
			||||||
        </ui-tooltip>
 | 
					        </ui-tooltip>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ui-btn @click="save" class="mx-2">Save</ui-btn>
 | 
					        <ui-btn @click="save" class="mx-2 hidden md:block">Save</ui-btn>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ui-btn @click="saveAndClose">Save & Close</ui-btn>
 | 
					        <ui-btn @click="saveAndClose">Save<span class="hidden md:inline-block"> & Close</span></ui-btn>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,13 +2,13 @@
 | 
				
			|||||||
  <div class="w-full h-full overflow-hidden overflow-y-auto px-4 py-6">
 | 
					  <div class="w-full h-full overflow-hidden overflow-y-auto px-4 py-6">
 | 
				
			||||||
    <!-- Merge to m4b -->
 | 
					    <!-- Merge to m4b -->
 | 
				
			||||||
    <div v-if="showM4bDownload" class="w-full border border-black-200 p-4 my-8">
 | 
					    <div v-if="showM4bDownload" class="w-full border border-black-200 p-4 my-8">
 | 
				
			||||||
      <div class="flex items-center">
 | 
					      <div class="flex flex-wrap items-center">
 | 
				
			||||||
        <div>
 | 
					        <div>
 | 
				
			||||||
          <p class="text-lg">Make M4B Audiobook File <span class="text-error">*</span></p>
 | 
					          <p class="text-lg">Make M4B Audiobook File <span class="text-error">*</span></p>
 | 
				
			||||||
          <p class="max-w-sm text-sm pt-2 text-gray-300">Generate a .M4B audiobook file with embedded metadata, cover image, and chapters. <br /><span class="text-warning">*</span> Does not delete existing audio files.</p>
 | 
					          <p class="max-w-sm text-sm pt-2 text-gray-300">Generate a .M4B audiobook file with embedded metadata, cover image, and chapters. <br /><span class="text-warning">*</span> Does not delete existing audio files.</p>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="flex-grow" />
 | 
					        <div class="flex-grow" />
 | 
				
			||||||
        <div>
 | 
					        <div class="mt-2 md:mt-0">
 | 
				
			||||||
          <p v-if="abmergeStatus === $constants.DownloadStatus.FAILED" class="text-error mb-2">Download Failed</p>
 | 
					          <p v-if="abmergeStatus === $constants.DownloadStatus.FAILED" class="text-error mb-2">Download Failed</p>
 | 
				
			||||||
          <p v-if="abmergeStatus === $constants.DownloadStatus.READY" class="text-success mb-2">Download Ready!</p>
 | 
					          <p v-if="abmergeStatus === $constants.DownloadStatus.READY" class="text-success mb-2">Download Ready!</p>
 | 
				
			||||||
          <p v-if="abmergeStatus === $constants.DownloadStatus.EXPIRED" class="text-error mb-2">Download Expired</p>
 | 
					          <p v-if="abmergeStatus === $constants.DownloadStatus.EXPIRED" class="text-error mb-2">Download Expired</p>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,8 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div>
 | 
					  <div>
 | 
				
			||||||
    <input ref="fileInput" type="file" :accept="accept" class="hidden" @change="inputChanged" />
 | 
					    <input ref="fileInput" type="file" :accept="accept" class="hidden" @change="inputChanged" />
 | 
				
			||||||
    <ui-btn @click="clickUpload" color="primary" type="text"><slot /></ui-btn>
 | 
					    <ui-btn @click="clickUpload" color="primary" class="hidden md:block" type="text"><slot /></ui-btn>
 | 
				
			||||||
 | 
					    <ui-icon-btn @click="clickUpload" icon="upload" class="block md:hidden" />
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,21 +1,21 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="w-full h-full relative">
 | 
					  <div class="w-full h-full relative">
 | 
				
			||||||
    <form class="w-full h-full px-4 py-6" @submit.prevent="submitForm">
 | 
					    <form class="w-full h-full px-2 md:px-4 py-6" @submit.prevent="submitForm">
 | 
				
			||||||
      <div class="flex -mx-1">
 | 
					      <div class="flex flex-wrap -mx-1">
 | 
				
			||||||
        <div class="w-1/2 px-1">
 | 
					        <div class="w-full md:w-1/2 px-1">
 | 
				
			||||||
          <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" />
 | 
					          <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="flex-grow px-1">
 | 
					        <div class="flex-grow px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-text-input-with-label ref="subtitleInput" v-model="details.subtitle" label="Subtitle" />
 | 
					          <ui-text-input-with-label ref="subtitleInput" v-model="details.subtitle" label="Subtitle" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="flex mt-2 -mx-1">
 | 
					      <div class="flex flex-wrap mt-2 -mx-1">
 | 
				
			||||||
        <div class="w-3/4 px-1">
 | 
					        <div class="w-full sm:w-3/4 px-1">
 | 
				
			||||||
          <!-- Authors filter only contains authors in this library, use query input to query all authors -->
 | 
					          <!-- Authors filter only contains authors in this library, use query input to query all authors -->
 | 
				
			||||||
          <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" label="Authors" endpoint="authors/search" />
 | 
					          <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" label="Authors" endpoint="authors/search" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="flex-grow px-1">
 | 
					        <div class="flex-grow px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-text-input-with-label ref="publishYearInput" v-model="details.publishedYear" type="number" label="Publish Year" />
 | 
					          <ui-text-input-with-label ref="publishYearInput" v-model="details.publishedYear" type="number" label="Publish Year" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -28,35 +28,35 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" />
 | 
					      <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="flex mt-2 -mx-1">
 | 
					      <div class="flex flex-wrap mt-2 -mx-1">
 | 
				
			||||||
        <div class="w-1/2 px-1">
 | 
					        <div class="w-full md:w-1/2 px-1">
 | 
				
			||||||
          <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" />
 | 
					          <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="flex-grow px-1">
 | 
					        <div class="flex-grow px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" />
 | 
					          <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="flex mt-2 -mx-1">
 | 
					      <div class="flex flex-wrap mt-2 -mx-1">
 | 
				
			||||||
        <div class="w-1/2 px-1">
 | 
					        <div class="w-full md:w-1/2 px-1">
 | 
				
			||||||
          <ui-multi-select ref="narratorsSelect" v-model="details.narrators" label="Narrators" :items="narrators" />
 | 
					          <ui-multi-select ref="narratorsSelect" v-model="details.narrators" label="Narrators" :items="narrators" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="w-1/4 px-1">
 | 
					        <div class="w-1/2 md:w-1/4 px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-text-input-with-label ref="isbnInput" v-model="details.isbn" label="ISBN" />
 | 
					          <ui-text-input-with-label ref="isbnInput" v-model="details.isbn" label="ISBN" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="w-1/4 px-1">
 | 
					        <div class="w-1/2 md:w-1/4 px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-text-input-with-label ref="asinInput" v-model="details.asin" label="ASIN" />
 | 
					          <ui-text-input-with-label ref="asinInput" v-model="details.asin" label="ASIN" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="flex mt-2 -mx-1">
 | 
					      <div class="flex flex-wrap mt-2 -mx-1">
 | 
				
			||||||
        <div class="w-1/2 px-1">
 | 
					        <div class="w-full md:w-1/2 px-1">
 | 
				
			||||||
          <ui-text-input-with-label ref="publisherInput" v-model="details.publisher" label="Publisher" />
 | 
					          <ui-text-input-with-label ref="publisherInput" v-model="details.publisher" label="Publisher" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="w-1/4 px-1">
 | 
					        <div class="w-1/2 md:w-1/4 px-1 mt-2 md:mt-0">
 | 
				
			||||||
          <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" />
 | 
					          <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="flex-grow px-1 pt-6">
 | 
					        <div class="flex-grow px-1 pt-6 mt-2 md:mt-0">
 | 
				
			||||||
          <div class="flex justify-center">
 | 
					          <div class="flex justify-center">
 | 
				
			||||||
            <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" />
 | 
					            <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" />
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -58,7 +58,8 @@ module.exports = {
 | 
				
			|||||||
  buildModules: [
 | 
					  buildModules: [
 | 
				
			||||||
    // https://go.nuxtjs.dev/tailwindcss
 | 
					    // https://go.nuxtjs.dev/tailwindcss
 | 
				
			||||||
    '@nuxtjs/tailwindcss',
 | 
					    '@nuxtjs/tailwindcss',
 | 
				
			||||||
    '@nuxtjs/pwa'
 | 
					    '@nuxtjs/pwa',
 | 
				
			||||||
 | 
					    '@nuxt/postcss8'
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Modules: https://go.nuxtjs.dev/config-modules
 | 
					  // Modules: https://go.nuxtjs.dev/config-modules
 | 
				
			||||||
@ -123,7 +124,14 @@ module.exports = {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Build Configuration: https://go.nuxtjs.dev/config-build
 | 
					  // Build Configuration: https://go.nuxtjs.dev/config-build
 | 
				
			||||||
  build: {},
 | 
					  build: {
 | 
				
			||||||
 | 
					    postcss: {
 | 
				
			||||||
 | 
					      plugins: {
 | 
				
			||||||
 | 
					        tailwindcss: {},
 | 
				
			||||||
 | 
					        autoprefixer: {},
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  watchers: {
 | 
					  watchers: {
 | 
				
			||||||
    webpack: {
 | 
					    webpack: {
 | 
				
			||||||
      aggregateTimeout: 300,
 | 
					      aggregateTimeout: 300,
 | 
				
			||||||
@ -133,5 +141,13 @@ module.exports = {
 | 
				
			|||||||
  server: {
 | 
					  server: {
 | 
				
			||||||
    port: process.env.NODE_ENV === 'production' ? 80 : 3000,
 | 
					    port: process.env.NODE_ENV === 'production' ? 80 : 3000,
 | 
				
			||||||
    host: '0.0.0.0'
 | 
					    host: '0.0.0.0'
 | 
				
			||||||
  }
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					 * Temporary workaround for @nuxt-community/tailwindcss-module.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Reported: 2022-05-23
 | 
				
			||||||
 | 
					 * See: [Issue tracker](https://github.com/nuxt-community/tailwindcss-module/issues/480)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					  devServerHandlers: [],
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										964
									
								
								client/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										964
									
								
								client/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -29,8 +29,10 @@
 | 
				
			|||||||
    "vuedraggable": "^2.24.3"
 | 
					    "vuedraggable": "^2.24.3"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@nuxt/postcss8": "^1.1.3",
 | 
				
			||||||
    "@nuxtjs/pwa": "^3.3.5",
 | 
					    "@nuxtjs/pwa": "^3.3.5",
 | 
				
			||||||
    "@nuxtjs/tailwindcss": "^4.2.1",
 | 
					    "@nuxtjs/tailwindcss": "^4.2.1",
 | 
				
			||||||
 | 
					    "autoprefixer": "^10.4.7",
 | 
				
			||||||
    "postcss": "^8.3.6"
 | 
					    "postcss": "^8.3.6"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2,7 +2,14 @@ const defaultTheme = require('tailwindcss/defaultTheme')
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  purge: {
 | 
					  purge: {
 | 
				
			||||||
    options: {
 | 
					    content: [
 | 
				
			||||||
 | 
					      'components/**/*.vue',
 | 
				
			||||||
 | 
					      'layouts/**/*.vue',
 | 
				
			||||||
 | 
					      'pages/**/*.vue',
 | 
				
			||||||
 | 
					      'templates/**/*.vue',
 | 
				
			||||||
 | 
					      'plugins/**/*.js',
 | 
				
			||||||
 | 
					      'nuxt.config.js'
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
    safelist: [
 | 
					    safelist: [
 | 
				
			||||||
      'bg-success',
 | 
					      'bg-success',
 | 
				
			||||||
      'bg-red-600',
 | 
					      'bg-red-600',
 | 
				
			||||||
@ -10,10 +17,8 @@ module.exports = {
 | 
				
			|||||||
      'py-1.5',
 | 
					      'py-1.5',
 | 
				
			||||||
      'bg-info',
 | 
					      'bg-info',
 | 
				
			||||||
      'px-1.5'
 | 
					      'px-1.5'
 | 
				
			||||||
      ]
 | 
					    ],
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  darkMode: false,
 | 
					 | 
				
			||||||
  theme: {
 | 
					  theme: {
 | 
				
			||||||
    extend: {
 | 
					    extend: {
 | 
				
			||||||
      height: {
 | 
					      height: {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user