Skip to content

Commit ac1e69d

Browse files
authored
Merge pull request #152 from mostafaznv/dev
Support Nova 5
2 parents 0c83672 + 14e76d4 commit ac1e69d

16 files changed

+70
-51
lines changed

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
"php": "^8.1",
2020
"intervention/image": "^3.1.0",
2121
"laravel/framework": "^10.0|^11.0",
22-
"laravel/nova": "^4.13",
22+
"laravel/nova": "^4.13|^5.0",
2323
"mostafaznv/nova-video": "^6.1.0",
24-
"nova-kit/nova-packages-tool": "^1.2",
24+
"nova-kit/nova-packages-tool": "^1.2|^v2.0.0",
2525
"spatie/laravel-image-optimizer": "^1.6"
2626
},
2727
"autoload": {

dist/js/field.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
* [Items](advanced-usage/configuration/toolbars/toolbar-1/items.md)
5555
* [Options](advanced-usage/configuration/toolbars/toolbar-1/options.md)
5656
* [Content Lang](advanced-usage/configuration/toolbars/toolbar-1/content-lang.md)
57-
* [Force Paste as Plain Text](advanced-usage/configuration/toolbars/toolbar-1/force-page-as-plain-text.md)
57+
* [Force Paste as Plain Text](advanced-usage/configuration/toolbars/toolbar-1/force-paste-as-plain-text.md)
5858
* [Alert Before Unsaved Changes](advanced-usage/configuration/toolbars/toolbar-1/alert-before-unsaved-changes.md)
5959
* [UI Language](advanced-usage/configuration/toolbars/toolbar-1/ui-language/README.md)
6060
* [UI Language Name](advanced-usage/configuration/toolbars/toolbar-1/ui-language/ui-language-name.md)

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"@phudak/ckeditor5-emoji": "^1.1.1",
5555
"@vueuse/components": "^10.7.0",
5656
"@vueuse/core": "^10.7.0",
57+
"laravel-nova-ui": "^0.4.12",
5758
"lodash": "^4.17.21",
5859
"postcss-scss": "^4.0.9",
5960
"regex-parser": "^2.2.11",

resources/js/components/FileInput.vue

+4-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
<label @click.stop.prevent="handleClick" class="block cursor-pointer p-4 bg-gray-50 dark:bg-gray-900 dark:hover:bg-gray-900 border-4 border-dashed hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600 rounded-lg">
1515
<div class="flex items-center space-x-4 pointer-events-none">
1616
<p class="text-center pointer-events-none">
17-
<default-button type="button">
17+
<Button type="button">
1818
{{ multiple ? __('Choose Files') : __('Choose File') }}
19-
</default-button>
19+
</Button>
2020
</p>
2121

2222
<p class="pointer-events-none text-center text-sm text-gray-500 dark:text-gray-400 font-semibold">
@@ -29,6 +29,8 @@
2929
</template>
3030

3131
<script setup>
32+
import {Button} from 'laravel-nova-ui'
33+
3234
import {ref} from 'vue'
3335
3436

resources/js/components/media-browser/MediaBrowserDelete.vue

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<template>
22
<button @click.stop="open" type="button" class="media-browser-btn" :disabled="disabled">
3-
<Icon type="trash" />
3+
<Icon name="trash" />
44
<span>{{ __('Delete') }}</span>
55
</button>
66

77
<modal v-model="modalStatus" class="delete-modal" :content-no-overflow="true">
88
<template #header>
99
<div class="flex items-center gap-1">
10-
<Icon type="trash" :solid="true" />
10+
<Icon name="trash" type="mini" />
1111
<span>{{ __('Remove assets') }}</span>
1212
</div>
1313
</template>
@@ -24,13 +24,13 @@
2424
</div>
2525

2626
<template #footer>
27-
<default-button @click.stop="submit" type="button" class="bg-red-500" size="sm">
27+
<Button @click.stop="submit" type="button" state="danger" size="small">
2828
{{ __('Delete') }}
29-
</default-button>
29+
</Button>
3030

31-
<basic-button @click.stop="close" type="button" size="sm">
31+
<Button @click.stop="close" type="button" class="mx-2" size="small">
3232
{{ __('Cancel') }}
33-
</basic-button>
33+
</Button>
3434
</template>
3535
</modal>
3636
</template>
@@ -39,6 +39,7 @@
3939
import {ref, computed} from "vue"
4040
import modal from "../modal"
4141
import {useLocalization} from 'laravel-nova'
42+
import {Button, Icon} from 'laravel-nova-ui'
4243
import {selectedItemsProp, typeProp} from "../../utils/picker-props"
4344
import {guessResourceKey} from "../../utils/helpers"
4445

resources/js/components/media-browser/MediaBrowserDisplayOptions.vue

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<div v-on-click-outside="close" class="options relative">
33
<div>
44
<button @click.stop="toggle" type="button" class="media-browser-btn" :title="__('Display Options')">
5-
<Icon type="adjustments" />
5+
<Icon name="adjustments-horizontal" />
66
</button>
77
</div>
88

@@ -61,6 +61,7 @@
6161
<script setup>
6262
import {ref, computed} from "vue"
6363
import {useLocalization} from 'laravel-nova'
64+
import { Icon } from 'laravel-nova-ui'
6465
import SwitchInput from "../SwitchInput.vue"
6566
import RadioInput from "../RadioInput.vue"
6667
import {orderByProp, keepAspectRatioProp, columnsProp, typeProp} from "../../utils/picker-props"
@@ -146,6 +147,10 @@ function close() {
146147
}
147148
148149
function onOrderByChange(value) {
150+
if (value?.target?.value) {
151+
value = value.target.value
152+
}
153+
149154
emits('update:orderBy', value)
150155
}
151156

resources/js/components/media-browser/MediaBrowserItem.vue

+5-4
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212

1313
<picture v-else-if="cover || (type === 'image' && src)">
1414
<template v-if="item.file?.meta?.format === 'gif'">
15-
<source :srcset="src">
15+
<source :src="src" :srcset="src">
1616
<img alt="onion" :src="src">
1717
</template>
1818

1919
<template v-else>
20-
<source :srcset="cover || src">
20+
<source :src="src" :srcset="cover || src">
2121
<img alt="onion" :src="cover || src">
2222
</template>
2323
</picture>
@@ -36,15 +36,15 @@
3636
</div>
3737

3838
<figcaption @click.stop="play" class="item__preview--play nova-ckeditor-mobile-none" :title="__('Preview')">
39-
<Icon type="eye" />
39+
<Icon name="eye" />
4040
</figcaption>
4141
</figure>
4242

4343
<div class="item__details border-t border-gray-200 dark:border-gray-700">
4444
<span class="item__details--name" :title="item.name">{{ item.name }}</span>
4545

4646
<button @click.stop.prevent="select(false)" type="button" class="item__details--select">
47-
<Icon type="check" />
47+
<Icon name="check" />
4848
</button>
4949
</div>
5050
</div>
@@ -54,6 +54,7 @@
5454
import {computed} from "vue"
5555
import AudioIcon from "../icons/AudioIcon.vue"
5656
import FileIcon from "../icons/FileIcon.vue"
57+
import {Icon} from 'laravel-nova-ui'
5758
import {typeProp, selectedItemsProp, keepAspectRatioProp, gallerySizeProp} from "../../utils/picker-props"
5859
5960

resources/js/components/media-browser/MediaBrowserNavbar.vue

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
class="media-browser-btn"
88
:disabled="!itemSelected"
99
>
10-
<Icon type="download" />
10+
<Icon name="arrow-down-tray"/>
1111
<span>{{ __('Download') }}</span>
1212
</button>
1313

@@ -25,7 +25,7 @@
2525
/>
2626

2727
<button @click.stop="copyUrl" type="button" class="media-browser-btn" :disabled="!itemSelected">
28-
<Icon type="clipboard" />
28+
<Icon name="clipboard"/>
2929
<span>{{ __('Copy URL') }}</span>
3030
</button>
3131
</div>
@@ -38,7 +38,7 @@
3838
:title="__('Properties')"
3939
:disabled="!itemSelected"
4040
>
41-
<Icon type="information-circle" />
41+
<Icon name="information-circle"/>
4242
</button>
4343

4444
<media-browser-search-modal
@@ -70,6 +70,7 @@
7070
import {ref, computed, watch} from "vue"
7171
import MediaBrowserUpload from "./MediaBrowserUpload.vue"
7272
import {useClipboard} from "../../composables/useClipboard"
73+
import {Icon} from 'laravel-nova-ui'
7374
import MediaBrowserDisplayOptions from "./MediaBrowserDisplayOptions.vue"
7475
import MediaBrowserSearchModal from "./MediaBrowserSearchModal.vue"
7576
import MediaBrowserDelete from "./MediaBrowserDelete.vue"
@@ -166,7 +167,6 @@ watch(
166167
)
167168
168169
169-
170170
// methods
171171
function download() {
172172
if (itemSelected.value) {

resources/js/components/media-browser/MediaBrowserPagination.vue

+5-4
Original file line numberDiff line numberDiff line change
@@ -64,23 +64,24 @@
6464
</button>
6565

6666

67-
<default-button
67+
<Button
6868
@click.stop="pick"
6969
type="button"
7070
class="select-btn flex align-middle gap-2"
71-
size="sm"
71+
size="small"
72+
icon="check"
7273
:class="{'opacity-50': selectedItems.length === 0}"
7374
:disabled="selectedItems.length === 0"
7475
>
75-
<Icon type="check" width="20" height="20" />
7676
<span>{{ __('Choose') }}</span>
77-
</default-button>
77+
</Button>
7878
</div>
7979
</template>
8080

8181
<script setup>
8282
import {ref, watch} from 'vue'
8383
import {selectedItemsProp} from "../../utils/picker-props"
84+
import {Button, Icon} from 'laravel-nova-ui'
8485
8586
const emit = defineEmits([
8687
'update:modelValue',

resources/js/components/media-browser/MediaBrowserRenameModal.vue

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<template>
22
<button @click.stop="open" type="button" class="media-browser-btn" :disabled="disabled">
3-
<Icon type="pencil" />
3+
<Icon name="pencil" />
44
<span>{{ __('Rename') }}</span>
55
</button>
66

77
<modal v-model="modalStatus" class="rename-modal" :content-no-overflow="true">
88
<template #header>
9-
<div class="flex items-center gap-1">
10-
<Icon type="pencil" :solid="true" />
9+
<div class="flex items-center gap-2">
10+
<Icon name="pencil" type="mini" />
1111

1212
<input
1313
@keydown.enter.stop.prevent="submit"
@@ -21,13 +21,13 @@
2121

2222
<template #header-right>
2323
<div class="flex items-center gap-2">
24-
<basic-button @click.stop="close" type="button" size="sm">
24+
<Button @click.stop="close" type="button" variant="ghost" size="small">
2525
{{ __('Cancel') }}
26-
</basic-button>
26+
</Button>
2727

28-
<default-button @click.stop="submit" type="button" size="sm">
28+
<Button @click.stop="submit" type="button" size="small">
2929
{{ __('Submit') }}
30-
</default-button>
30+
</Button>
3131
</div>
3232
</template>
3333
</modal>
@@ -36,6 +36,7 @@
3636
<script setup>
3737
import {ref, computed, watch, nextTick} from "vue"
3838
import modal from "../modal"
39+
import {Button, Icon} from 'laravel-nova-ui'
3940
import {useLocalization} from 'laravel-nova'
4041
import {selectedItemsProp, typeProp} from "../../utils/picker-props"
4142

resources/js/components/media-browser/MediaBrowserSearchModal.vue

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<template>
22
<button @click.stop="modalStatus = true" v-bind="$attrs" type="button" class="media-browser-btn" :title="__('Search')">
3-
<Icon type="search" />
3+
<Icon name="magnifying-glass" />
44
</button>
55

66
<modal v-model="modalStatus" class="search-modal" :content-no-overflow="true">
77
<template #header>
88
<div class="flex items-center gap-1">
9-
<Icon type="search" :solid="true" />
9+
<Icon name="magnifying-glass" type="mini" :solid="true" />
1010

1111
<input
1212
@keydown.enter.stop.prevent="submit"
@@ -37,7 +37,7 @@
3737
type="button"
3838
:title="__('Delete')"
3939
>
40-
<Icon type="x" />
40+
<Icon name="x-mark" />
4141
</button>
4242
</div>
4343
</div>
@@ -46,6 +46,7 @@
4646

4747
<script setup>
4848
import {ref, computed, watch} from "vue"
49+
import {Icon} from 'laravel-nova-ui'
4950
import modal from "../modal"
5051
5152

resources/js/components/media-browser/MediaBrowserTypeList.vue

+5-4
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,16 @@
5757
</div>
5858

5959
<div class="browser-list__pick">
60-
<default-button
60+
<Button
6161
@click.stop="pick"
6262
type="button"
6363
class="flex align-middle gap-2"
64-
size="sm"
64+
size="small"
6565
:class="{'opacity-50': selectedItems.length === 0}"
6666
:disabled="selectedItems.length === 0"
6767
>
68-
<Icon type="check" width="20" height="20" />
69-
</default-button>
68+
<Icon name="check" type="mini" />
69+
</Button>
7070
</div>
7171
</div>
7272
</template>
@@ -76,6 +76,7 @@ import {ref} from 'vue'
7676
import AudioIcon from "../icons/AudioIcon.vue"
7777
import FileIcon from "../icons/FileIcon.vue"
7878
import VideoIcon from "../icons/VideoIcon.vue"
79+
import {Button, Icon} from 'laravel-nova-ui'
7980
import {selectedItemsProp} from "../../utils/picker-props"
8081
8182

resources/js/components/media-browser/MediaBrowserUpload.vue

+11-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<template>
22
<div v-on-click-outside="close" class="upload relative">
33
<div>
4-
<default-button @click.stop="pick" type="button" class="upload__button flex align-middle gap-2" size="sm" :class="{'with-menu': hasLaruploadTrait}">
5-
<Icon type="upload" width="20" height="20" />
4+
<Button @click.stop="pick" type="button" class="upload__button flex align-middle gap-2" size="small" :class="{'with-menu': hasLaruploadTrait}">
5+
<Icon name="arrow-up-tray" type="mini" class="mr-1" />
66
<span>{{ __('Upload') }}</span>
77

88
<div v-if="hasLaruploadTrait" @click.stop="toggle" class="upload__button--menu">
9-
<Icon type="chevron-down" class="-mr-1" width="18" height="18" />
9+
<Icon name="chevron-down" type="mini" class="-mr-1" />
1010
</div>
11-
</default-button>
11+
</Button>
1212

1313

1414
<input
@@ -61,16 +61,15 @@
6161
</div>
6262

6363
<template v-if="hasLaruploadTrait" #footer>
64-
<default-button
64+
<Button
6565
@click.stop="handleUploadWithCover"
6666
type="button"
6767
class="upload__button flex align-middle gap-2"
68-
size="sm"
6968
:class="{'opacity-50 disabled:cursor-not-allowed': uploadWithCoverIsDisabled}"
7069
:disabled="uploadWithCoverIsDisabled"
7170
>
7271
<span>{{ __('Upload') }}</span>
73-
</default-button>
72+
</Button>
7473
</template>
7574
</modal>
7675
</template>
@@ -79,6 +78,7 @@
7978
import {ref, computed, watch} from "vue"
8079
import Modal from "../modal.vue"
8180
import {useLocalization} from 'laravel-nova'
81+
import {Button, Icon} from 'laravel-nova-ui'
8282
import MediaBrowserUploadProgress from "./MediaBrowserUploadProgress.vue"
8383
import MediaBrowserUploadWithCover from "./MediaBrowserUploadWithCover.vue"
8484
import {hasLaruploadTraitProp, typeProp} from "../../utils/picker-props"
@@ -381,9 +381,12 @@ function calculateItemUploadedPercent(progressEvent, index) {
381381
max-width: 600px;
382382
height: 400px !important;
383383
top: calc(50% - 200px) !important;
384-
left: calc(50% - 300px) !important;
385384
overflow: hidden;
386385
386+
@media (min-width: 801px) {
387+
left: calc(50% - 300px) !important;
388+
}
389+
387390
&.large {
388391
height: 500px !important;
389392
top: calc(50% - 250px) !important;

0 commit comments

Comments
 (0)