@ozdao/martyrs 0.2.494 → 0.2.496
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.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/builder.cjs +41 -42
- package/dist/builder.js +43 -44
- package/dist/globals.server.cjs +13 -2
- package/dist/globals.server.js +13 -2
- package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +28 -13
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +28 -13
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.js +1 -1
- package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +95 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +95 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +127 -175
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +136 -184
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +5 -5
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +5 -5
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +5 -5
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +97 -144
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +113 -160
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +7 -7
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +7 -7
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +164 -170
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +185 -191
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +2 -2
- package/dist/martyrs/src/modules/music/router/music.js +2 -2
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.css +1 -1
- package/dist/style.css +18 -5
- package/package.json +1 -1
- package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
- package/src/modules/globals/controllers/classes/globals.websocket.js +11 -2
- package/src/modules/globals/globals.client.js +1 -2
- package/src/modules/globals/views/components/layouts/Client.vue +13 -11
- package/src/modules/globals/views/router/scrollBehavior.js +1 -1
- package/src/modules/music/README.md +2 -0
- package/src/modules/music/components/SidebarMusic.vue +7 -7
- package/src/modules/music/components/cards/ArtistCardSmall.vue +92 -0
- package/src/modules/music/components/cards/TrackListCard.vue +1 -1
- package/src/modules/music/components/forms/SearchForm.vue +1 -1
- package/src/modules/music/components/pages/Album.vue +44 -83
- package/src/modules/music/components/pages/Artist.vue +5 -5
- package/src/modules/music/components/pages/MusicLibrary.vue +5 -5
- package/src/modules/music/components/pages/Playlist.vue +35 -53
- package/src/modules/music/components/pages/SearchResults.vue +6 -6
- package/src/modules/music/components/pages/Track.vue +66 -87
- package/src/modules/music/music.client.js +1 -1
- package/src/modules/notifications/notifications.client.js +1 -1
- package/src/styles/base/all.scss +1 -0
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +0 -1
|
@@ -17,22 +17,23 @@
|
|
|
17
17
|
<!-- Left Column - Cover & Stats -->
|
|
18
18
|
<div class="pos-sticky pos-t-0 mobile:pos-relative track-cover-section">
|
|
19
19
|
<!-- Cover with Play Overlay -->
|
|
20
|
-
<div class="cover-container relative mn-b-medium radius-big
|
|
20
|
+
<div class="cover-container pos-relative mn-b-medium radius-big o-hidden">
|
|
21
21
|
<Media
|
|
22
22
|
:url="track.coverUrl || (track.album && track.album.coverUrl) || '/logo/logo-placeholder.jpg'"
|
|
23
23
|
:alt="track.title"
|
|
24
24
|
class="aspect-1x1 w-100 radius-medium o-hidden"
|
|
25
25
|
/>
|
|
26
|
-
|
|
26
|
+
<div class="cover-overlay w-100 h-100 pos-absolute pos-t-0 pos-r-0 bg-black-transp-40 flex flex-center">
|
|
27
27
|
<Button
|
|
28
28
|
@click="playTrack"
|
|
29
29
|
color="white"
|
|
30
30
|
size="big"
|
|
31
|
-
class="w-5r h-5r radius-
|
|
31
|
+
class="w-5r h-5r radius-big bg-main shadow-big hover-scale-110"
|
|
32
32
|
>
|
|
33
|
-
<IconPlay class="
|
|
33
|
+
<IconPlay v-if="!isPlaying" fill="rgb(var(--white))" class="i-medium" />
|
|
34
|
+
<IconPause v-else fill="rgb(var(--white))" class="i-medium" />
|
|
34
35
|
</Button>
|
|
35
|
-
</div>
|
|
36
|
+
</div>
|
|
36
37
|
</div>
|
|
37
38
|
|
|
38
39
|
|
|
@@ -54,8 +55,8 @@
|
|
|
54
55
|
<div class="track-details-section">
|
|
55
56
|
<!-- Track Type Badge -->
|
|
56
57
|
<div class="flex items-center gap-small mn-b-small">
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
<span class="bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase">Single</span>
|
|
59
|
+
<span class="bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase">Explicit</span>
|
|
59
60
|
</div>
|
|
60
61
|
|
|
61
62
|
<!-- Track Title -->
|
|
@@ -66,31 +67,34 @@
|
|
|
66
67
|
@click="playTrack"
|
|
67
68
|
color="primary"
|
|
68
69
|
size="medium"
|
|
69
|
-
class="flex-1 flex-center gap-thin"
|
|
70
|
+
class="flex-1 t-white bg-black radius-thin flex-center gap-thin"
|
|
70
71
|
>
|
|
71
|
-
<IconPlay class="
|
|
72
|
-
|
|
72
|
+
<IconPlay v-if="!isPlaying" fill="rgb(var(--white))" class="i-medium" />
|
|
73
|
+
<IconPause v-else fill="rgb(var(--white))" class="i-medium" />
|
|
74
|
+
{{ !isPlaying ? 'Play' : 'Pause'}}
|
|
73
75
|
</Button>
|
|
74
|
-
|
|
76
|
+
|
|
75
77
|
<Button
|
|
76
|
-
@click="
|
|
77
|
-
|
|
78
|
+
@click="addToQueue"
|
|
79
|
+
color="primary"
|
|
78
80
|
size="medium"
|
|
79
|
-
class="
|
|
81
|
+
class="flex-1 bg-light radius-thin flex-center gap-thin"
|
|
80
82
|
>
|
|
81
|
-
<
|
|
83
|
+
<IconAdd class="i-medium" />
|
|
84
|
+
Add to Queue
|
|
82
85
|
</Button>
|
|
83
|
-
|
|
86
|
+
|
|
84
87
|
<Button
|
|
85
|
-
@click="
|
|
86
|
-
color="
|
|
88
|
+
@click="toggleFavorite"
|
|
89
|
+
color="primary"
|
|
87
90
|
size="medium"
|
|
88
|
-
class="
|
|
91
|
+
class="flex-1 bg-light radius-thin flex-center gap-thin"
|
|
89
92
|
>
|
|
90
|
-
<
|
|
93
|
+
<IconLike class="i-medium" :fill="isFavorite ? 'rgb(var(--main)':'rgb(var(--black)'" />
|
|
94
|
+
{{isFavorite ? 'Liked' : 'Like'}}
|
|
91
95
|
</Button>
|
|
92
|
-
|
|
93
|
-
<Dropdown v-model="showDropdown" class="relative">
|
|
96
|
+
|
|
97
|
+
<Dropdown :label="{component: IconEllipsis, class: 'bg-light radius-thin pd-thin i-big' }" v-model="showDropdown" class="relative">
|
|
94
98
|
<template #trigger>
|
|
95
99
|
<Button color="transp" size="medium" class="w-3r h-3r radius-full">
|
|
96
100
|
<IconEllipsis class="w-1-25r h-1-25r" />
|
|
@@ -119,82 +123,52 @@
|
|
|
119
123
|
</div>
|
|
120
124
|
|
|
121
125
|
<!-- Artist Card -->
|
|
122
|
-
<div class="
|
|
123
|
-
<
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
/>
|
|
134
|
-
<div v-else class="w-4r h-4r radius-full bg-primary flex-center ">
|
|
135
|
-
{{ track.artist.name.charAt(0) }}
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
<div>
|
|
139
|
-
<div class="flex items-center gap-thin">
|
|
140
|
-
<span class="t-large ">{{ track.artist.name }}</span>
|
|
141
|
-
<IconVerified v-if="track.artist.isVerified" class="w-1r h-1r t-primary" />
|
|
142
|
-
</div>
|
|
143
|
-
<span class="t-small t-transp">Artist</span>
|
|
144
|
-
</div>
|
|
145
|
-
</router-link>
|
|
146
|
-
<Button
|
|
147
|
-
v-if="!isOwner"
|
|
148
|
-
@click="toggleFollowArtist"
|
|
149
|
-
:color="isFollowingArtist ? 'primary' : 'transp'"
|
|
150
|
-
size="small"
|
|
151
|
-
>
|
|
152
|
-
{{ isFollowingArtist ? 'Following' : 'Follow' }}
|
|
153
|
-
</Button>
|
|
126
|
+
<div class="artists-section mn-b-medium">
|
|
127
|
+
<h3 class="t-medium mn-b-small" v-if="track.artist">Artist</h3>
|
|
128
|
+
<div class="flex flex-col gap-small">
|
|
129
|
+
<ArtistCardSmall
|
|
130
|
+
:key="track.artist._id"
|
|
131
|
+
:artist="track.artist"
|
|
132
|
+
:is-following="isFollowingArtist"
|
|
133
|
+
:show-follow-button="!isOwner"
|
|
134
|
+
@toggle-follow="toggleFollowArtist"
|
|
135
|
+
/>
|
|
136
|
+
</div>
|
|
154
137
|
</div>
|
|
155
138
|
|
|
156
|
-
|
|
157
|
-
|
|
158
139
|
<!-- Metadata Cards -->
|
|
159
|
-
<
|
|
160
|
-
|
|
140
|
+
<h3 class="t-medium mn-b-small">Metadata</h3>
|
|
141
|
+
<div class="metadata-grid grid cols-2 gap-small mn-b-medium">
|
|
142
|
+
<!-- Release Date -->
|
|
161
143
|
<div class="metadata-card bg-light pd-medium radius-medium flex items-center gap-medium">
|
|
162
|
-
<
|
|
163
|
-
<IconClock class="w-1-5r h-1-5r t-primary" />
|
|
164
|
-
</div>
|
|
144
|
+
<IconCalendar class="i-regular t-primary" />
|
|
165
145
|
<div>
|
|
166
|
-
<div class="t-small t-transp t-uppercase">
|
|
167
|
-
<div class="t-medium ">{{
|
|
146
|
+
<div class="t-small t-transp t-uppercase">Released</div>
|
|
147
|
+
<div class="t-medium ">{{ formatDate(track.releaseDate) }}</div>
|
|
168
148
|
</div>
|
|
169
149
|
</div>
|
|
170
150
|
|
|
171
|
-
<!--
|
|
151
|
+
<!-- Total Duration -->
|
|
172
152
|
<div class="metadata-card bg-light pd-medium radius-medium flex items-center gap-medium">
|
|
173
|
-
<
|
|
174
|
-
<IconCalendar class="w-1-5r h-1-5r t-primary" />
|
|
175
|
-
</div>
|
|
153
|
+
<IconClock class="i-regular t-primary" />
|
|
176
154
|
<div>
|
|
177
|
-
<div class="t-small t-transp t-uppercase">
|
|
178
|
-
<div class="t-medium ">{{
|
|
155
|
+
<div class="t-small t-transp t-uppercase">Duration</div>
|
|
156
|
+
<div class="t-medium ">{{ formatDuration(track.duration) }}</div>
|
|
179
157
|
</div>
|
|
180
158
|
</div>
|
|
181
159
|
|
|
182
|
-
<!--
|
|
160
|
+
<!-- Label -->
|
|
183
161
|
<div class="metadata-card bg-light pd-medium radius-medium flex items-center gap-medium">
|
|
184
|
-
<
|
|
185
|
-
<IconCheck class="w-1-5r h-1-5r t-success" />
|
|
186
|
-
</div>
|
|
162
|
+
<IconCheck class="i-regular t-primary" />
|
|
187
163
|
<div>
|
|
188
164
|
<div class="t-small t-transp t-uppercase">Status</div>
|
|
189
|
-
<div class="t-medium
|
|
165
|
+
<div class="t-medium ">{{ track.status }}</div>
|
|
190
166
|
</div>
|
|
191
167
|
</div>
|
|
192
168
|
|
|
193
169
|
<!-- Visibility -->
|
|
194
170
|
<div class="metadata-card bg-light pd-medium radius-medium flex items-center gap-medium">
|
|
195
|
-
<
|
|
196
|
-
<IconEye class="w-1-5r h-1-5r t-primary" />
|
|
197
|
-
</div>
|
|
171
|
+
<IconEye class="i-regular t-primary" />
|
|
198
172
|
<div>
|
|
199
173
|
<div class="t-small t-transp t-uppercase">Visibility</div>
|
|
200
174
|
<div class="t-medium ">{{ track.isPublic ? 'Public' : 'Private' }}</div>
|
|
@@ -202,18 +176,19 @@
|
|
|
202
176
|
</div>
|
|
203
177
|
</div>
|
|
204
178
|
|
|
179
|
+
|
|
205
180
|
<!-- Album Info -->
|
|
181
|
+
<h3 v-if="track.album" class="t-medium mn-b-small">From Album</h3>
|
|
206
182
|
<div v-if="track.album" class="album-card bg-light pd-medium radius-medium mn-b-medium">
|
|
207
|
-
|
|
183
|
+
|
|
208
184
|
<router-link
|
|
209
185
|
:to="`/album/${track.album.url}`"
|
|
210
|
-
class="flex
|
|
186
|
+
class="flex flex-v-center gap-thin hover-opacity"
|
|
211
187
|
>
|
|
212
188
|
<Media
|
|
213
|
-
|
|
214
|
-
:src="track.album.coverUrl"
|
|
189
|
+
:url="track.album.coverArt || '/logo/logo-placeholder.jpg'"
|
|
215
190
|
:alt="track.album.title"
|
|
216
|
-
class="w-3r h-3r radius-
|
|
191
|
+
class="w-3r h-3r radius-thin o-hidden object-cover"
|
|
217
192
|
/>
|
|
218
193
|
<span class="t-medium ">{{ track.album.title }}</span>
|
|
219
194
|
</router-link>
|
|
@@ -226,16 +201,16 @@
|
|
|
226
201
|
<span
|
|
227
202
|
v-for="genre in track.genre"
|
|
228
203
|
:key="genre"
|
|
229
|
-
class="tag bg-
|
|
204
|
+
class="tag bg-main t-medium pd-thin radius-thin t-small cursor-pointer"
|
|
230
205
|
>
|
|
231
|
-
{{ genre }}
|
|
206
|
+
{{ genre.name || genre }}
|
|
232
207
|
</span>
|
|
233
208
|
<span
|
|
234
209
|
v-for="tag in track.tags"
|
|
235
210
|
:key="tag"
|
|
236
211
|
class="tag bg-light t-transp pd-thin-big radius-small t-small hover-bg-light cursor-pointer"
|
|
237
212
|
>
|
|
238
|
-
#{{ tag }}
|
|
213
|
+
#{{ tag.name || tag }}
|
|
239
214
|
</span>
|
|
240
215
|
</div>
|
|
241
216
|
</div>
|
|
@@ -292,7 +267,7 @@
|
|
|
292
267
|
<Popup
|
|
293
268
|
v-if="showAddToPlaylistModal"
|
|
294
269
|
@close-popup="showAddToPlaylistModal = false"
|
|
295
|
-
class="bg-
|
|
270
|
+
class="bg-white pd-medium w-m-25r radius-medium"
|
|
296
271
|
>
|
|
297
272
|
<h3 class="h3 mn-b-medium">Add to Playlist</h3>
|
|
298
273
|
<!-- <PlaylistSelector
|
|
@@ -316,6 +291,7 @@ import Feed from '@martyrs/src/components/Feed/Feed.vue';
|
|
|
316
291
|
|
|
317
292
|
// Icons
|
|
318
293
|
import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
|
|
294
|
+
import IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';
|
|
319
295
|
import IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';
|
|
320
296
|
import IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';
|
|
321
297
|
import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';
|
|
@@ -327,13 +303,16 @@ import IconVerified from '@martyrs/src/modules/icons/navigation/IconCheckmark.vu
|
|
|
327
303
|
|
|
328
304
|
// Components
|
|
329
305
|
import TrackListCard from '../cards/TrackListCard.vue';
|
|
306
|
+
import ArtistCardSmall from '../cards/ArtistCardSmall.vue';
|
|
330
307
|
// import PlaylistSelector from '../forms/PlaylistSelector.vue';
|
|
331
308
|
|
|
332
309
|
// Store
|
|
333
310
|
import { state as tracksState, actions as tracksActions } from '../../store/tracks.js';
|
|
334
|
-
import { actions as playerActions } from '../../store/player.js';
|
|
311
|
+
import { state as playerState, actions as playerActions } from '../../store/player.js';
|
|
335
312
|
import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
336
313
|
|
|
314
|
+
const isPlaying = computed(() => playerState.isPlaying);
|
|
315
|
+
|
|
337
316
|
const route = useRoute();
|
|
338
317
|
const router = useRouter();
|
|
339
318
|
|
|
@@ -71,7 +71,7 @@ function initializeMusic(app, store, router, config, options = {}) {
|
|
|
71
71
|
// Set up WebSocket subscription for music streaming
|
|
72
72
|
if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {
|
|
73
73
|
globalWebSocket.initialize({
|
|
74
|
-
wsUrl:
|
|
74
|
+
wsUrl: app.config.globalProperties.WSS_URL,
|
|
75
75
|
maxReconnectAttempts: 10,
|
|
76
76
|
reconnectDelay: 2000,
|
|
77
77
|
});
|
|
@@ -288,7 +288,7 @@ function initializeNotifications(app, store, router, options = {}) {
|
|
|
288
288
|
|
|
289
289
|
// Initialize global WebSocket if needed
|
|
290
290
|
if (options.wsUrl) {
|
|
291
|
-
globalWebSocket.initialize({ wsUrl:
|
|
291
|
+
globalWebSocket.initialize({ wsUrl: app.config.globalProperties.WSS_URL });
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
// Create notification manager
|
package/src/styles/base/all.scss
CHANGED
|
@@ -50,6 +50,7 @@ body {
|
|
|
50
50
|
.w-m-50r { width: min(100%, 50rem); }
|
|
51
51
|
.w-m-40r { width: min(100%, 40rem); }
|
|
52
52
|
.w-m-33r { width: min(100%, 33rem); }
|
|
53
|
+
.w-minmax-33r-100 { width: max(33rem, 100%); }
|
|
53
54
|
.w-m-25r { width: min(100%, 25rem); }
|
|
54
55
|
.w-m-20r { width: min(100%, 20rem); }
|
|
55
56
|
.w-m-15r { width: min(100%, 15rem); }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chips.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chips.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.vue.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.vue2.cjs","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n <span>{{ text }}</span>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\nconst props = defineProps({\n text: {\n type: String,\n required: true\n }\n});\n\nconst visible = ref(false);\n\nconst tooltipStyle = reactive({\n position: 'absolute',\n width: 'max-content',\n zIndex: 1000,\n background: '#333',\n color: '#fff',\n padding: '5px',\n borderRadius: '3px',\n fontSize: '14px',\n display: 'none',\n});\n\nfunction showTooltip(event) {\n visible.value = true;\n tooltipStyle.left = `${(event.clientX / 100) + 10 }px`;\n tooltipStyle.top = `${(event.clientY / 100) + 10 }px`;\n tooltipStyle.display = 'block';\n}\n\nfunction hideTooltip() {\n visible.value = false;\n tooltipStyle.display = 'none';\n}\n</script>\n\n<style >\n.tooltip-container {\n position: relative;\n display: inline-block;\n}\n\n.tooltip-content {\n pointer-events: none;\n}\n</style>"],"names":["ref","reactive"],"mappings":";;;;;;;;;;;;;AAmBA,UAAM,UAAUA,IAAAA,IAAI,KAAK;AAEzB,UAAM,eAAeC,IAAAA,SAAS;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAED,aAAS,YAAY,OAAO;AAC1B,cAAQ,QAAQ;AAChB,mBAAa,OAAO,GAAI,MAAM,UAAU,MAAO,EAAE;AACjD,mBAAa,MAAM,GAAI,MAAM,UAAU,MAAO,EAAE;AAChD,mBAAa,UAAU;AAAA,IACzB;AAEA,aAAS,cAAc;AACrB,cAAQ,QAAQ;AAChB,mBAAa,UAAU;AAAA,IACzB;;;;;;;;;;;;;;;;;;;"}
|