mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-28 04:01:10 -04:00 
			
		
		
		
	Compare commits
	
		
			12 Commits
		
	
	
		
			dark-card
			...
			dark-error
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 982125a199 | |||
| c5acf1343e | |||
| 0321ca5515 | |||
| bd345949e5 | |||
| b4b00ebdd6 | |||
| 43316dae28 | |||
| 80e2548b38 | |||
| e8d92cd641 | |||
| 2c8bb38531 | |||
| 04c7ae39a2 | |||
| af2482a69c | |||
| cac35826c2 | 
| @ -437,21 +437,22 @@ export default { | |||||||
|       required: false, |       required: false, | ||||||
|       default: () => ({ |       default: () => ({ | ||||||
|         container: |         container: | ||||||
|           'p-0 relative mx-auto w-full flex items-center justify-end box-border cursor-pointer border border-gray-200 rounded-md bg-white text-sm leading-snug outline-none max-h-10', |           'p-0 relative mx-auto w-full flex items-center justify-end box-border cursor-pointer border border-gray-200 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-sm leading-snug outline-none max-h-10', | ||||||
|         containerDisabled: |         containerDisabled: | ||||||
|           'cursor-default bg-gray-200 bg-opacity-50 !text-gray-400', |           'bg-gray-200 bg-opacity-50 !text-gray-400 dark:!text-gray-800 !dark:text-gray-500 !cursor-default dark:opacity-25', | ||||||
|         containerOpen: '', |         containerOpen: '', | ||||||
|         containerOpenTop: '', |         containerOpenTop: '', | ||||||
|         containerActive: 'ring-1 ring-primary-400 border-primary-400', |         containerActive: 'ring-1 ring-primary-400 border-primary-400', | ||||||
|         containerInvalid: |         containerInvalid: | ||||||
|           'border-red-400 ring-red-400 focus:ring-red-400 focus:border-red-400', |           'border-red-500 ring-red-500 focus:ring-red-500 focus:border-red-500 dark:border-red-500 dark:ring-red-500 dark:focus:ring-red-500 dark:focus:border-red-500', | ||||||
|         containerInvalidActive: 'ring-1 border-red-400 ring-red-400', |         containerInvalidActive: | ||||||
|  |           'ring-1 border-red-500 ring-red-500 dark:ring-1 dark:border-red-500 dark:ring-red-500', | ||||||
|         singleLabel: |         singleLabel: | ||||||
|           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5', |           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 dark:text-white', | ||||||
|         multipleLabel: |         multipleLabel: | ||||||
|           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5', |           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 dark:text-white', | ||||||
|         search: |         search: | ||||||
|           'w-full absolute inset-0 outline-none appearance-none box-border border-0 text-sm font-sans bg-white rounded-md pl-3.5', |           'w-full absolute inset-0 outline-none appearance-none box-border border-0 text-sm font-sans bg-white rounded-md pl-3.5 border-transparent focus:border-transparent focus:ring-0 dark:bg-gray-700 dark:text-white', | ||||||
|         tags: 'grow shrink flex flex-wrap mt-1 pl-2', |         tags: 'grow shrink flex flex-wrap mt-1 pl-2', | ||||||
|         tag: 'bg-primary-500 text-white text-sm font-semibold py-0.5 pl-2 rounded mr-1 mb-1 flex items-center whitespace-nowrap', |         tag: 'bg-primary-500 text-white text-sm font-semibold py-0.5 pl-2 rounded mr-1 mb-1 flex items-center whitespace-nowrap', | ||||||
|         tagDisabled: 'pr-2 !bg-gray-400 text-white', |         tagDisabled: 'pr-2 !bg-gray-400 text-white', | ||||||
| @ -461,12 +462,12 @@ export default { | |||||||
|           'bg-multiselect-remove text-white bg-center bg-no-repeat opacity-30 inline-block w-3 h-3 group-hover:opacity-60', |           'bg-multiselect-remove text-white bg-center bg-no-repeat opacity-30 inline-block w-3 h-3 group-hover:opacity-60', | ||||||
|         tagsSearchWrapper: 'inline-block relative mx-1 mb-1 grow shrink h-full', |         tagsSearchWrapper: 'inline-block relative mx-1 mb-1 grow shrink h-full', | ||||||
|         tagsSearch: |         tagsSearch: | ||||||
|           'absolute inset-0 border-0 focus:outline-none !shadow-none !focus:shadow-none appearance-none p-0 text-sm font-sans box-border w-full', |           'absolute inset-0 border-0 focus:outline-none !shadow-none !focus:shadow-none appearance-none p-0 sm:text-sm font-sans box-border w-full dark:bg-gray-700', | ||||||
|         tagsSearchCopy: 'invisible whitespace-pre-wrap inline-block h-px', |         tagsSearchCopy: 'invisible whitespace-pre-wrap inline-block h-px', | ||||||
|         placeholder: |         placeholder: | ||||||
|           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 text-gray-400 text-sm', |           'flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 text-gray-400 sm:text-sm dark:text-gray-500', | ||||||
|         caret: |         caret: | ||||||
|           'bg-multiselect-caret bg-center bg-no-repeat w-5 h-5 py-px box-content z-5 relative mr-1 opacity-40 shrink-0 grow-0 transition-transform', |           'bg-multiselect-caret-black dark:bg-multiselect-caret-white bg-center bg-no-repeat w-5 h-5 py-px box-content z-5 relative mr-1 opacity-40 shrink-0 grow-0 transition-transform dark:text-white', | ||||||
|         caretOpen: 'rotate-180 pointer-events-auto', |         caretOpen: 'rotate-180 pointer-events-auto', | ||||||
|         clear: |         clear: | ||||||
|           'pr-3.5 relative z-10 opacity-40 transition duration-300 shrink-0 grow-0 flex hover:opacity-80', |           'pr-3.5 relative z-10 opacity-40 transition duration-300 shrink-0 grow-0 flex hover:opacity-80', | ||||||
| @ -475,7 +476,7 @@ export default { | |||||||
|         spinner: |         spinner: | ||||||
|           'bg-multiselect-spinner bg-center bg-no-repeat w-4 h-4 z-10 mr-3.5 animate-spin shrink-0 grow-0', |           'bg-multiselect-spinner bg-center bg-no-repeat w-4 h-4 z-10 mr-3.5 animate-spin shrink-0 grow-0', | ||||||
|         dropdown: |         dropdown: | ||||||
|           'max-h-60 shadow-lg absolute -left-px -right-px -bottom-1 translate-y-full border border-gray-300 mt-1 overflow-y-auto z-50 bg-white flex flex-col rounded-md', |           'max-h-60 shadow-lg absolute -left-px -right-px -bottom-1 translate-y-full border border-gray-300 mt-1 overflow-y-auto z-50 bg-white dark:border-gray-600 flex flex-col rounded-md dark:bg-gray-800 dark:shadow-glass', | ||||||
|         dropdownTop: |         dropdownTop: | ||||||
|           '-translate-y-full -top-2 bottom-auto flex-col-reverse rounded-md', |           '-translate-y-full -top-2 bottom-auto flex-col-reverse rounded-md', | ||||||
|         dropdownHidden: 'hidden', |         dropdownHidden: 'hidden', | ||||||
| @ -483,7 +484,7 @@ export default { | |||||||
|         optionsTop: 'flex-col-reverse', |         optionsTop: 'flex-col-reverse', | ||||||
|         group: 'p-0 m-0', |         group: 'p-0 m-0', | ||||||
|         groupLabel: |         groupLabel: | ||||||
|           'flex text-sm box-border items-center justify-start text-left py-1 px-3 font-semibold bg-gray-200 cursor-default leading-normal', |           'flex text-sm box-border items-center justify-start text-left py-1 px-3 font-semibold bg-gray-200 dark:bg-gray-700 dark:text-gray-400 cursor-default leading-normal', | ||||||
|         groupLabelPointable: 'cursor-pointer', |         groupLabelPointable: 'cursor-pointer', | ||||||
|         groupLabelPointed: 'bg-gray-300 text-gray-700', |         groupLabelPointed: 'bg-gray-300 text-gray-700', | ||||||
|         groupLabelSelected: 'bg-primary-600 text-white', |         groupLabelSelected: 'bg-primary-600 text-white', | ||||||
| @ -493,15 +494,18 @@ export default { | |||||||
|           'text-primary-100 bg-primary-600 bg-opacity-50 cursor-not-allowed', |           'text-primary-100 bg-primary-600 bg-opacity-50 cursor-not-allowed', | ||||||
|         groupOptions: 'p-0 m-0', |         groupOptions: 'p-0 m-0', | ||||||
|         option: |         option: | ||||||
|           'flex items-center justify-start box-border text-left cursor-pointer text-sm leading-snug py-2 px-3', |           'flex items-center justify-start box-border text-left cursor-pointer text-sm leading-snug py-2 px-3 dark:text-gray-200', | ||||||
|         optionPointed: 'text-gray-800 bg-gray-100', |         optionPointed: | ||||||
|  |           'text-gray-800 bg-gray-100 dark:text-white dark:bg-gray-700/30', | ||||||
|         optionSelected: 'text-white bg-primary-500', |         optionSelected: 'text-white bg-primary-500', | ||||||
|         optionDisabled: 'text-gray-300 cursor-not-allowed', |         optionDisabled: 'text-gray-300 cursor-not-allowed dark:text-gray-400', | ||||||
|         optionSelectedPointed: 'text-white bg-primary-500 opacity-90', |         optionSelectedPointed: 'text-white bg-primary-500 opacity-90', | ||||||
|         optionSelectedDisabled: |         optionSelectedDisabled: | ||||||
|           'text-primary-100 bg-primary-500 bg-opacity-50 cursor-not-allowed', |           'text-primary-100 bg-primary-500 bg-opacity-50 cursor-not-allowed', | ||||||
|         noOptions: 'py-2 px-3 text-gray-600 bg-white', |         noOptions: | ||||||
|         noResults: 'py-2 px-3 text-gray-600 bg-white', |           'py-2 px-3 text-gray-600 bg-white dark:bg-gray-700 dark:text-gray-200', | ||||||
|  |         noResults: | ||||||
|  |           'py-2 px-3 text-gray-600 bg-white dark:bg-gray-700 dark:text-gray-200', | ||||||
|         fakeInput: |         fakeInput: | ||||||
|           'bg-transparent absolute left-0 right-0 -bottom-px w-full h-px border-0 p-0 appearance-none outline-none text-transparent', |           'bg-transparent absolute left-0 right-0 -bottom-px w-full h-px border-0 p-0 appearance-none outline-none text-transparent', | ||||||
|         spacer: 'h-9 py-px box-content', |         spacer: 'h-9 py-px box-content', | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| <template> | <template> | ||||||
|   <nav> |   <nav> | ||||||
|     <ol class="flex flex-wrap py-4 text-gray-900 rounded list-reset"> |     <ol class="flex flex-wrap py-4 text-gray-900 rounded list-reset dark:text-gray-400"> | ||||||
|       <slot /> |       <slot /> | ||||||
|     </ol> |     </ol> | ||||||
|   </nav> |   </nav> | ||||||
|  | |||||||
| @ -8,7 +8,9 @@ | |||||||
|         font-medium |         font-medium | ||||||
|         leading-5 |         leading-5 | ||||||
|         text-gray-900 |         text-gray-900 | ||||||
|  |         dark:text-gray-400 | ||||||
|         outline-none |         outline-none | ||||||
|  |         dark:focus:ring-offset-gray-900 | ||||||
|         focus:ring-2 focus:ring-offset-2 focus:ring-primary-400 |         focus:ring-2 focus:ring-offset-2 focus:ring-primary-400 | ||||||
|       " |       " | ||||||
|       :to="to" |       :to="to" | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| <script setup> | <script setup> | ||||||
| import { computed, ref } from 'vue' | import { computed, ref } from 'vue' | ||||||
| import SpinnerIcon from '@/scripts/components/icons/SpinnerIcon.vue' | import SpinnerIcon from '@/scripts/components/icons/SpinnerIcon.vue' | ||||||
|  |  | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|   contentLoading: { |   contentLoading: { | ||||||
|     type: Boolean, |     type: Boolean, | ||||||
| @ -9,7 +10,7 @@ const props = defineProps({ | |||||||
|   defaultClass: { |   defaultClass: { | ||||||
|     type: String, |     type: String, | ||||||
|     default: |     default: | ||||||
|       'inline-flex whitespace-nowrap items-center border font-medium focus:outline-none focus:ring-2 focus:ring-offset-2', |       'inline-flex whitespace-nowrap items-center border font-medium focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-800', | ||||||
|   }, |   }, | ||||||
|   tag: { |   tag: { | ||||||
|     type: String, |     type: String, | ||||||
| @ -27,6 +28,10 @@ const props = defineProps({ | |||||||
|     type: Boolean, |     type: Boolean, | ||||||
|     default: false, |     default: false, | ||||||
|   }, |   }, | ||||||
|  |   loadingRight: { | ||||||
|  |     type: Boolean, | ||||||
|  |     default: false, | ||||||
|  |   }, | ||||||
|   size: { |   size: { | ||||||
|     type: String, |     type: String, | ||||||
|     default: 'md', |     default: 'md', | ||||||
| @ -81,17 +86,17 @@ const placeHolderSize = computed(() => { | |||||||
|  |  | ||||||
| const variantClass = computed(() => { | const variantClass = computed(() => { | ||||||
|   return { |   return { | ||||||
|     'border-transparent shadow-sm text-white bg-primary-600 hover:bg-primary-700 focus:ring-primary-500': |     'border-transparent shadow-sm text-white bg-primary-600 hover:bg-primary-700 focus:ring-primary-500 dark:bg-primary-500 dark:hover:bg-primary-600': | ||||||
|       props.variant === 'primary', |       props.variant === 'primary', | ||||||
|     'border-transparent text-primary-700 bg-primary-100 hover:bg-primary-200 focus:ring-primary-500': |     'border-transparent text-primary-700 bg-primary-100 hover:bg-primary-200 focus:ring-primary-500': | ||||||
|       props.variant === 'secondary', |       props.variant === 'secondary', | ||||||
|     'border-transparent  border-solid border-primary-500 font-normal transition ease-in-out duration-150 text-primary-500 hover:bg-primary-200 shadow-inner focus:ring-primary-500': |     'border-transparent border-solid border-primary-500 font-normal transition ease-in-out duration-150 text-primary-500 hover:bg-primary-100 shadow-inner focus:ring-primary-500 dark:text-primary-400 dark:border-primary-400 dark:hover:bg-transparent dark:hover:text-primary-500 dark:hover:border-primary-500': | ||||||
|       props.variant == 'primary-outline', |       props.variant == 'primary-outline', | ||||||
|     'border-gray-200 text-gray-700 bg-white hover:bg-gray-50 focus:ring-primary-500 focus:ring-offset-0': |     'border-gray-200 text-gray-700 bg-white hover:bg-gray-50 focus:ring-primary-500 focus:ring-offset-0 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-900': | ||||||
|       props.variant == 'white', |       props.variant == 'white', | ||||||
|     'border-transparent shadow-sm text-white bg-red-600 hover:bg-red-700 focus:ring-red-500': |     'border-transparent shadow-sm text-white bg-red-600 hover:bg-red-700 focus:ring-red-500': | ||||||
|       props.variant === 'danger', |       props.variant === 'danger', | ||||||
|     'border-transparent bg-gray-200 border hover:bg-opacity-60 focus:ring-gray-500 focus:ring-offset-0': |     'border-transparent bg-gray-200 border hover:bg-opacity-60 focus:ring-gray-500 focus:ring-offset-0 dark:bg-gray-600 dark:text-white dark:hover:bg-opacity-60': | ||||||
|       props.variant === 'gray', |       props.variant === 'gray', | ||||||
|   } |   } | ||||||
| }) | }) | ||||||
| @ -124,6 +129,13 @@ const iconRightClass = computed(() => { | |||||||
|     'ml-3 -mr-1 h-5 w-5': props.size === 'lg' || props.size === 'xl', |     'ml-3 -mr-1 h-5 w-5': props.size === 'lg' || props.size === 'xl', | ||||||
|   } |   } | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | const buttonDisabledClass = computed(() => { | ||||||
|  |   if (props.disabled || props.loading) | ||||||
|  |     return 'cursor-not-allowed bg-opacity-70 dark:!bg-opacity-40 hover:!bg-opacity-70 pointer-event-none' | ||||||
|  |  | ||||||
|  |   return '' | ||||||
|  | }) | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <template> | <template> | ||||||
| @ -141,15 +153,17 @@ const iconRightClass = computed(() => { | |||||||
|   <BaseCustomTag |   <BaseCustomTag | ||||||
|     v-else |     v-else | ||||||
|     :tag="tag" |     :tag="tag" | ||||||
|     :disabled="disabled" |     :disabled="disabled || loading" | ||||||
|     :class="[defaultClass, sizeClass, variantClass, roundedClass]" |     :class="[defaultClass, sizeClass, variantClass, roundedClass, buttonDisabledClass]" | ||||||
|   > |   > | ||||||
|     <SpinnerIcon v-if="loading" :class="[iconLeftClass, iconVariantClass]" /> |     <SpinnerIcon v-if="loading && !loadingRight" :class="[iconLeftClass, iconVariantClass]" /> | ||||||
|  |  | ||||||
|     <slot v-else name="left" :class="iconLeftClass"></slot> |     <slot v-else name="left" :class="iconLeftClass" /> | ||||||
|  |  | ||||||
|     <slot /> |     <slot /> | ||||||
|  |  | ||||||
|     <slot name="right" :class="[iconRightClass, iconVariantClass]"></slot> |     <SpinnerIcon v-if="loading && loadingRight" :class="[iconRightClass, iconVariantClass]" /> | ||||||
|  |  | ||||||
|  |     <slot v-else name="right" :class="[iconRightClass, iconVariantClass]" /> | ||||||
|   </BaseCustomTag> |   </BaseCustomTag> | ||||||
| </template> | </template> | ||||||
|  | |||||||
| @ -39,6 +39,8 @@ $base-content-placeholders-border-radius: 6px !default; | |||||||
| $base-content-placeholders-line-height: 15px !default; | $base-content-placeholders-line-height: 15px !default; | ||||||
| $base-content-placeholders-spacing: 10px !default; | $base-content-placeholders-spacing: 10px !default; | ||||||
|  |  | ||||||
|  | $base-content-placeholders-primary-color-dark: rgb(71, 85, 105) !default; | ||||||
|  | $base-content-placeholders-secondary-color-dark: rgb(71, 85, 105) !default; | ||||||
| // Animations | // Animations | ||||||
| @keyframes vueContentPlaceholdersAnimation { | @keyframes vueContentPlaceholdersAnimation { | ||||||
|   0% { |   0% { | ||||||
| @ -57,6 +59,10 @@ $base-content-placeholders-spacing: 10px !default; | |||||||
|   min-height: $base-content-placeholders-line-height; |   min-height: $base-content-placeholders-line-height; | ||||||
|   background: $base-content-placeholders-secondary-color; |   background: $base-content-placeholders-secondary-color; | ||||||
|  |  | ||||||
|  |   .dark & { | ||||||
|  |     background: $base-content-placeholders-secondary-color-dark; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   .base-content-placeholders-is-rounded & { |   .base-content-placeholders-is-rounded & { | ||||||
|     border-radius: $base-content-placeholders-border-radius; |     border-radius: $base-content-placeholders-border-radius; | ||||||
|   } |   } | ||||||
| @ -86,6 +92,15 @@ $base-content-placeholders-spacing: 10px !default; | |||||||
|     animation-name: vueContentPlaceholdersAnimation; |     animation-name: vueContentPlaceholdersAnimation; | ||||||
|     animation-timing-function: linear; |     animation-timing-function: linear; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   .dark .base-content-placeholders-is-animated &::before { | ||||||
|  |     background: linear-gradient( | ||||||
|  |       to right, | ||||||
|  |       transparent 0%, | ||||||
|  |       darken($base-content-placeholders-secondary-color-dark, 5%) 15%, | ||||||
|  |       transparent 30% | ||||||
|  |     ); | ||||||
|  |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| @mixin base-content-placeholders-spacing { | @mixin base-content-placeholders-spacing { | ||||||
| @ -156,6 +171,10 @@ $base-content-placeholders-spacing: 10px !default; | |||||||
|   min-height: $base-content-placeholders-line-height; |   min-height: $base-content-placeholders-line-height; | ||||||
|   background: $base-content-placeholders-secondary-color; |   background: $base-content-placeholders-secondary-color; | ||||||
|  |  | ||||||
|  |   .dark & { | ||||||
|  |     background: $base-content-placeholders-secondary-color-dark; | ||||||
|  |   } | ||||||
|  |    | ||||||
|   .base-content-placeholders-is-animated &::before { |   .base-content-placeholders-is-animated &::before { | ||||||
|     content: ''; |     content: ''; | ||||||
|     position: absolute; |     position: absolute; | ||||||
| @ -177,6 +196,14 @@ $base-content-placeholders-spacing: 10px !default; | |||||||
|     animation-timing-function: linear; |     animation-timing-function: linear; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |     .dark .base-content-placeholders-is-animated &::before { | ||||||
|  |       background: linear-gradient( | ||||||
|  |       to right, | ||||||
|  |       transparent 0%, | ||||||
|  |       darken($base-content-placeholders-secondary-color-dark, 5%) 15%, | ||||||
|  |       transparent 30% | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|   // @include base-content-placeholders-spacing; |   // @include base-content-placeholders-spacing; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -30,8 +30,13 @@ | |||||||
|           leave-to="opacity-0" |           leave-to="opacity-0" | ||||||
|         > |         > | ||||||
|           <DialogOverlay |           <DialogOverlay | ||||||
|             class="fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75" |             class="fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75 dark:backdrop-blur-xl dark:bg-gray-900/80" | ||||||
|  |           > | ||||||
|  |            <BaseDarkHighlight | ||||||
|  |             class="!bg-highlight/[.17] !top-1/2 h-60 -translate-y-1/2 mt-5" | ||||||
|  |             :class="dialogSizeClasses" | ||||||
|           /> |           /> | ||||||
|  |           </DialogOverlay> | ||||||
|         </TransitionChild> |         </TransitionChild> | ||||||
|  |  | ||||||
|         <!-- This element is to trick the browser into centering the modal contents. --> |         <!-- This element is to trick the browser into centering the modal contents. --> | ||||||
| @ -64,6 +69,11 @@ | |||||||
|               shadow-xl |               shadow-xl | ||||||
|               sm:my-8 sm:align-middle sm:w-full sm:p-6 |               sm:my-8 sm:align-middle sm:w-full sm:p-6 | ||||||
|               relative |               relative | ||||||
|  |               dark:backdrop-blur-xl | ||||||
|  |               dark:shadow-glass | ||||||
|  |               dark:border | ||||||
|  |               dark:border-white/10 | ||||||
|  |               dark:bg-gray-800 | ||||||
|             " |             " | ||||||
|             :class="dialogSizeClasses" |             :class="dialogSizeClasses" | ||||||
|           > |           > | ||||||
| @ -80,31 +90,31 @@ | |||||||
|                   rounded-full |                   rounded-full | ||||||
|                 " |                 " | ||||||
|                 :class="{ |                 :class="{ | ||||||
|                   'bg-green-100': dialogStore.variant === 'primary', |                   'bg-green-100 dark:bg-primary-500': dialogStore.variant === 'primary', | ||||||
|                   'bg-red-100': dialogStore.variant === 'danger', |                   'bg-red-100 dark:bg-red-500': dialogStore.variant === 'danger', | ||||||
|                 }" |                 }" | ||||||
|               > |               > | ||||||
|                 <BaseIcon |                 <BaseIcon | ||||||
|                   v-if="dialogStore.variant === 'primary'" |                   v-if="dialogStore.variant === 'primary'" | ||||||
|                   name="CheckIcon" |                   name="CheckIcon" | ||||||
|                   class="w-6 h-6 text-green-600" |                   class="w-6 h-6 text-green-600 dark:text-white" | ||||||
|                 /> |                 /> | ||||||
|                 <BaseIcon |                 <BaseIcon | ||||||
|                   v-else |                   v-else | ||||||
|                   name="ExclamationIcon" |                   name="ExclamationIcon" | ||||||
|                   class="w-6 h-6 text-red-600" |                   class="w-6 h-6 text-red-600 dark:text-white" | ||||||
|                   aria-hidden="true" |                   aria-hidden="true" | ||||||
|                 /> |                 /> | ||||||
|               </div> |               </div> | ||||||
|               <div class="mt-3 text-center sm:mt-5"> |               <div class="mt-3 text-center sm:mt-5"> | ||||||
|                 <DialogTitle |                 <DialogTitle | ||||||
|                   as="h3" |                   as="h3" | ||||||
|                   class="text-lg font-medium leading-6 text-gray-900" |                   class="text-lg font-medium leading-6 text-gray-900 dark:text-white" | ||||||
|                 > |                 > | ||||||
|                   {{ dialogStore.title }} |                   {{ dialogStore.title }} | ||||||
|                 </DialogTitle> |                 </DialogTitle> | ||||||
|                 <div class="mt-2"> |                 <div class="mt-2"> | ||||||
|                   <p class="text-sm text-gray-500"> |                   <p class="text-sm text-gray-500 dark:text-gray-400"> | ||||||
|                     {{ dialogStore.message }} |                     {{ dialogStore.message }} | ||||||
|                   </p> |                   </p> | ||||||
|                 </div> |                 </div> | ||||||
|  | |||||||
| @ -1,11 +1,18 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="rounded-md bg-red-50 p-4"> |   <div | ||||||
|  |     class=" | ||||||
|  |       rounded-md | ||||||
|  |       bg-red-50 | ||||||
|  |       p-4 | ||||||
|  |       dark:border dark:border-red-400 dark:bg-transparent | ||||||
|  |     " | ||||||
|  |   > | ||||||
|     <div class="flex"> |     <div class="flex"> | ||||||
|       <div class="shrink-0"> |       <div class="shrink-0"> | ||||||
|         <XCircleIcon class="h-5 w-5 text-red-400" aria-hidden="true" /> |         <XCircleIcon class="h-5 w-5 text-red-400 dark:text-red-500" aria-hidden="true" /> | ||||||
|       </div> |       </div> | ||||||
|       <div class="ml-3"> |       <div class="ml-3"> | ||||||
|         <h3 class="text-sm font-medium text-red-800"> |         <h3 class="text-sm font-medium text-red-800 dark:text-red-500"> | ||||||
|           {{ errorTitle }} |           {{ errorTitle }} | ||||||
|         </h3> |         </h3> | ||||||
|         <div class="mt-2 text-sm text-red-700"> |         <div class="mt-2 text-sm text-red-700"> | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ | |||||||
|     leave-from-class="opacity-100" |     leave-from-class="opacity-100" | ||||||
|     leave-to-class="opacity-0" |     leave-to-class="opacity-0" | ||||||
|   > |   > | ||||||
|     <div v-show="show" class="relative z-10 p-4 md:p-8 bg-gray-200 rounded"> |     <div v-show="show" class="relative z-10 p-4 md:p-8 bg-gray-200 rounded dark:bg-gray-800"> | ||||||
|       <slot name="filter-header" /> |       <slot name="filter-header" /> | ||||||
|  |  | ||||||
|       <label |       <label | ||||||
| @ -20,6 +20,7 @@ | |||||||
|           hover:text-gray-700 |           hover:text-gray-700 | ||||||
|           top-2.5 |           top-2.5 | ||||||
|           right-3.5 |           right-3.5 | ||||||
|  |           dark:text-gray-300 | ||||||
|         " |         " | ||||||
|         @click="$emit('clear')" |         @click="$emit('clear')" | ||||||
|       > |       > | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="flex flex-wrap justify-between"> |   <div class="flex flex-wrap justify-between"> | ||||||
|     <div> |     <div> | ||||||
|       <h3 class="text-2xl font-bold text-left text-black"> |       <h3 class="text-2xl font-bold text-left text-black dark:text-white"> | ||||||
|         {{ title }} |         {{ title }} | ||||||
|       </h3> |       </h3> | ||||||
|       <slot /> |       <slot /> | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ | |||||||
|  |  | ||||||
|       <Switch |       <Switch | ||||||
|         v-model="enabled" |         v-model="enabled" | ||||||
|         :class="enabled ? 'bg-primary-500' : 'bg-gray-300'" |         :class="enabled ? 'bg-primary-500' : 'bg-gray-300 dark:bg-gray-900'" | ||||||
|         class=" |         class=" | ||||||
|           relative |           relative | ||||||
|           inline-flex |           inline-flex | ||||||
| @ -21,7 +21,11 @@ | |||||||
|         v-bind="$attrs" |         v-bind="$attrs" | ||||||
|       > |       > | ||||||
|         <span |         <span | ||||||
|           :class="enabled ? 'translate-x-6' : 'translate-x-1'" |           :class=" | ||||||
|  |             enabled | ||||||
|  |               ? 'translate-x-6 dark:bg-white' | ||||||
|  |               : 'translate-x-1 dark:bg-gray-500' | ||||||
|  |           " | ||||||
|           class=" |           class=" | ||||||
|             inline-block |             inline-block | ||||||
|             w-4 |             w-4 | ||||||
|  | |||||||
| @ -5,12 +5,12 @@ | |||||||
|     <div class="flex flex-col"> |     <div class="flex flex-col"> | ||||||
|       <SwitchLabel |       <SwitchLabel | ||||||
|         as="p" |         as="p" | ||||||
|         class="p-0 mb-1 text-sm leading-snug text-black font-medium" |         class="p-0 mb-1 text-sm leading-snug text-black font-medium dark:text-white" | ||||||
|         passive |         passive | ||||||
|       > |       > | ||||||
|         {{ title }} |         {{ title }} | ||||||
|       </SwitchLabel> |       </SwitchLabel> | ||||||
|       <SwitchDescription class="text-sm text-gray-500"> |       <SwitchDescription class="text-sm text-gray-500 dark:text-gray-400"> | ||||||
|         {{ description }} |         {{ description }} | ||||||
|       </SwitchDescription> |       </SwitchDescription> | ||||||
|     </div> |     </div> | ||||||
| @ -18,7 +18,7 @@ | |||||||
|       :disabled="disabled" |       :disabled="disabled" | ||||||
|       :model-value="modelValue" |       :model-value="modelValue" | ||||||
|       :class="[ |       :class="[ | ||||||
|         modelValue ? 'bg-primary-500' : 'bg-gray-200', |         modelValue ? 'bg-primary-500' : 'bg-gray-200 dark:bg-gray-900', | ||||||
|         'ml-4 relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500', |         'ml-4 relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500', | ||||||
|       ]" |       ]" | ||||||
|       @update:modelValue="onUpdate" |       @update:modelValue="onUpdate" | ||||||
| @ -26,7 +26,7 @@ | |||||||
|       <span |       <span | ||||||
|         aria-hidden="true" |         aria-hidden="true" | ||||||
|         :class="[ |         :class="[ | ||||||
|           modelValue ? 'translate-x-5' : 'translate-x-0', |           modelValue ? 'translate-x-5 dark:bg-white' : 'translate-x-0 dark:bg-gray-500', | ||||||
|           'inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition ease-in-out duration-200', |           'inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition ease-in-out duration-200', | ||||||
|         ]" |         ]" | ||||||
|       /> |       /> | ||||||
|  | |||||||
| @ -45,10 +45,15 @@ module.exports = { | |||||||
|         88: '22rem', |         88: '22rem', | ||||||
|       }, |       }, | ||||||
|       backgroundImage: (theme) => ({ |       backgroundImage: (theme) => ({ | ||||||
|         'multiselect-caret': `url("${svgToDataUri( |         'multiselect-caret-black': `url("${svgToDataUri( | ||||||
|           `<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor"> |           `<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="black"> | ||||||
|   <path fill-rule="evenodd" d="M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z" clip-rule="evenodd" /> |             <path fill-rule="evenodd" d="M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z" clip-rule="evenodd" /> | ||||||
| </svg>` |           </svg>`, | ||||||
|  |         )}")`, | ||||||
|  |         'multiselect-caret-white': `url("${svgToDataUri( | ||||||
|  |           `<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="white"> | ||||||
|  |             <path fill-rule="evenodd" d="M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z" clip-rule="evenodd" /> | ||||||
|  |           </svg>`, | ||||||
|         )}")`, |         )}")`, | ||||||
|         'multiselect-spinner': `url("${svgToDataUri( |         'multiselect-spinner': `url("${svgToDataUri( | ||||||
|           `<svg viewBox="0 0 512 512" fill="${theme( |           `<svg viewBox="0 0 512 512" fill="${theme( | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	