@ozdao/martyrs 0.2.470 → 0.2.472

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.
Files changed (284) hide show
  1. package/dist/{Media-CR0V1zvB.js → Media-DW8RLbfM.js} +1 -1
  2. package/dist/{Media-C4Ges_Sd.mjs → Media-y_TX6us_.mjs} +1 -1
  3. package/dist/_virtual/index.cjs +1 -1
  4. package/dist/_virtual/index.js +1 -1
  5. package/dist/auth.server.js +1 -1
  6. package/dist/auth.server.mjs +1 -1
  7. package/dist/chats.server.js +1 -1
  8. package/dist/chats.server.mjs +1 -1
  9. package/dist/community.server.js +1 -1
  10. package/dist/community.server.mjs +1 -1
  11. package/dist/events.server.js +1 -1
  12. package/dist/events.server.mjs +1 -1
  13. package/dist/files.server.js +1 -1
  14. package/dist/files.server.mjs +1 -1
  15. package/dist/gallery.server.js +1 -1
  16. package/dist/gallery.server.mjs +1 -1
  17. package/dist/{index-DQqZReAr.js → index-CVXl1rB5.js} +0 -1
  18. package/dist/{index-DICZTQ-1.mjs → index-Df8vtZx7.mjs} +0 -1
  19. package/dist/{main-CsZAG5Wz.js → main-CCfQH-Dd.js} +2 -2
  20. package/dist/{main-CTcal9qN.mjs → main-CgmHzhq5.mjs} +74 -74
  21. package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs +1 -1
  22. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +1 -0
  23. package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
  24. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  25. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -0
  26. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  27. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs +5 -0
  28. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs.map +1 -0
  29. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  30. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  31. package/dist/{node_modules/.pnpm/uuid@11.1.0 → martyrs}/node_modules/uuid/dist/esm-browser/rng.cjs +4 -4
  32. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.cjs.map +1 -0
  33. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  34. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  35. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs +17 -0
  36. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs.map +1 -0
  37. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
  38. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  39. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs +13 -0
  40. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs.map +1 -0
  41. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
  42. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  43. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs +8 -0
  44. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs.map +1 -0
  45. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  46. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  47. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  48. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  52. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  53. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  54. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  55. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs +5 -5
  56. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +5 -5
  58. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  60. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  61. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  62. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  63. package/dist/martyrs/src/components/Tree/Tree.vue.cjs +3 -1
  64. package/dist/martyrs/src/components/Tree/Tree.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/components/Tree/Tree.vue.js +3 -1
  66. package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  85. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +1 -0
  86. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -0
  88. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  89. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  91. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  93. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +107 -21
  94. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +107 -21
  96. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +10 -14
  98. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +12 -16
  100. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  103. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +7 -13
  104. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +7 -13
  106. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +6 -7
  108. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +7 -8
  110. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  113. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  115. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  118. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
  119. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  121. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  125. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  129. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +11 -5
  130. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +12 -6
  132. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +34 -13
  134. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +35 -14
  136. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +20 -9
  138. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +21 -10
  140. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  143. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  145. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -1
  146. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  147. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -1
  148. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  151. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  153. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
  155. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  157. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  159. package/dist/martyrs.cjs.js +1 -1
  160. package/dist/martyrs.css +1 -1
  161. package/dist/martyrs.es.js +1 -1
  162. package/dist/notifications.server.js +35 -2
  163. package/dist/notifications.server.mjs +35 -2
  164. package/dist/orders.server.js +3 -3
  165. package/dist/orders.server.mjs +3 -3
  166. package/dist/organizations.server.js +1 -1
  167. package/dist/organizations.server.mjs +1 -1
  168. package/dist/products.server.js +78 -53
  169. package/dist/products.server.mjs +78 -53
  170. package/dist/rents.server.js +1 -1
  171. package/dist/rents.server.mjs +1 -1
  172. package/dist/style.css +37 -38
  173. package/dist/wallet.server.js +1 -1
  174. package/dist/wallet.server.mjs +1 -1
  175. package/package.json +2 -1
  176. package/src/components/Feed/Feed.vue +2 -7
  177. package/src/components/Skeleton/Skeleton.vue +4 -5
  178. package/src/components/Tree/Tree.vue +5 -2
  179. package/src/modules/auth/controllers/middlewares/authJwt.js +1 -1
  180. package/src/modules/auth/views/store/auth.js +2 -1
  181. package/src/modules/globals/controllers/classes/globals.crud.js +2 -2
  182. package/src/modules/globals/views/classes/globals.store.js +119 -31
  183. package/src/modules/globals/views/components/partials/Navigation.vue +11 -10
  184. package/src/modules/globals/views/utils/vue-app-renderer.js +7 -16
  185. package/src/modules/icons/entities/IconMusic.vue +14 -0
  186. package/src/modules/icons/navigation/IconCheck.vue +31 -0
  187. package/src/modules/icons/navigation/IconHeart.vue +26 -0
  188. package/src/modules/icons/navigation/IconPause.vue +31 -0
  189. package/src/modules/icons/navigation/IconPlay.vue +17 -0
  190. package/src/modules/icons/navigation/IconRefresh.vue +31 -0
  191. package/src/modules/icons/navigation/IconShuffle.vue +31 -0
  192. package/src/modules/icons/navigation/IconVolume.vue +31 -0
  193. package/src/modules/music/components/SidebarMusic.vue +156 -0
  194. package/src/modules/music/components/cards/AlbumCard.vue +107 -0
  195. package/src/modules/music/components/cards/ArtistCard.vue +37 -0
  196. package/src/modules/music/components/cards/PlaylistCard.vue +100 -0
  197. package/src/modules/music/components/cards/TrackCard.vue +86 -0
  198. package/src/modules/music/components/forms/PlaylistForm.vue +156 -0
  199. package/src/modules/music/components/forms/SearchForm.vue +82 -0
  200. package/src/modules/music/components/forms/UploadForm.vue +313 -0
  201. package/src/modules/music/components/layouts/MusicLayout.vue +137 -0
  202. package/src/modules/music/components/lists/AlbumList.vue +25 -0
  203. package/src/modules/music/components/lists/ArtistList.vue +25 -0
  204. package/src/modules/music/components/lists/PlaylistList.vue +25 -0
  205. package/src/modules/music/components/lists/TrackList.vue +175 -0
  206. package/src/modules/music/components/pages/AlbumDetail.vue +265 -0
  207. package/src/modules/music/components/pages/ArtistDetail.vue +247 -0
  208. package/src/modules/music/components/pages/MusicHome.vue +177 -0
  209. package/src/modules/music/components/pages/MusicLibrary.vue +192 -0
  210. package/src/modules/music/components/pages/MusicUpload.vue +44 -0
  211. package/src/modules/music/components/pages/PlaylistDetail.vue +504 -0
  212. package/src/modules/music/components/pages/SearchResults.vue +397 -0
  213. package/src/modules/music/components/pages/TrackDetail.vue +143 -0
  214. package/src/modules/music/components/player/MusicPlayer.vue +202 -0
  215. package/src/modules/music/components/player/TrackProgress.vue +110 -0
  216. package/src/modules/music/components/player/VolumeControl.vue +98 -0
  217. package/src/modules/music/controllers/album.controller.js +98 -0
  218. package/src/modules/music/controllers/artist.controller.js +111 -0
  219. package/src/modules/music/controllers/genre.controller.js +71 -0
  220. package/src/modules/music/controllers/music.controller.js +174 -0
  221. package/src/modules/music/controllers/playlist.controller.js +182 -0
  222. package/src/modules/music/controllers/search.controller.js +103 -0
  223. package/src/modules/music/controllers/stream.controller.js +106 -0
  224. package/src/modules/music/models/album.model.js +61 -0
  225. package/src/modules/music/models/artist.model.js +67 -0
  226. package/src/modules/music/models/genre.model.js +42 -0
  227. package/src/modules/music/models/play-history.model.js +51 -0
  228. package/src/modules/music/models/playlist.model.js +69 -0
  229. package/src/modules/music/models/track.model.js +94 -0
  230. package/src/modules/music/music.client.js +186 -0
  231. package/src/modules/music/music.server.js +114 -0
  232. package/src/modules/music/policies/music.policies.js +84 -0
  233. package/src/modules/music/router/music.js +77 -0
  234. package/src/modules/music/routes/album.routes.js +62 -0
  235. package/src/modules/music/routes/artist.routes.js +67 -0
  236. package/src/modules/music/routes/genre.routes.js +60 -0
  237. package/src/modules/music/routes/music.routes.js +145 -0
  238. package/src/modules/music/routes/playlist.routes.js +99 -0
  239. package/src/modules/music/routes/search.routes.js +10 -0
  240. package/src/modules/music/routes/stream.routes.js +38 -0
  241. package/src/modules/music/store/albums.js +200 -0
  242. package/src/modules/music/store/artists.js +180 -0
  243. package/src/modules/music/store/player.js +397 -0
  244. package/src/modules/music/store/playlists.js +211 -0
  245. package/src/modules/music/store/search.js +126 -0
  246. package/src/modules/music/store/tracks.js +230 -0
  247. package/src/modules/music/websocket/streaming.handler.js +151 -0
  248. package/src/modules/notifications/controllers/notifications.controller.js +44 -1
  249. package/src/modules/notifications/notifications.server.js +0 -1
  250. package/src/modules/notifications/routes/notifications.routes.js +3 -0
  251. package/src/modules/orders/components/pages/OrderCreate.vue +0 -2
  252. package/src/modules/products/components/blocks/CardCategory.vue +5 -4
  253. package/src/modules/products/components/pages/Categories.vue +38 -20
  254. package/src/modules/products/components/pages/CategoryEdit.vue +16 -7
  255. package/src/modules/products/components/pages/ProductEdit.vue +1 -0
  256. package/src/modules/products/controllers/categories.controller.js +155 -103
  257. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  258. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  259. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
  260. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +0 -1
  261. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
  262. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +0 -1
  263. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  264. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs +0 -6
  265. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs.map +0 -1
  266. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
  267. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  268. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.cjs.map +0 -1
  269. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  270. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  271. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs +0 -11
  272. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs.map +0 -1
  273. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
  274. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  275. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs +0 -21
  276. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs.map +0 -1
  277. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -21
  278. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  279. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +0 -0
  280. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
  281. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs +0 -0
  282. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs.map +0 -0
  283. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js +0 -0
  284. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js.map +0 -0
@@ -0,0 +1,100 @@
1
+ <!-- components/cards/PlaylistCard.vue -->
2
+ <template>
3
+ <router-link
4
+ :to="{ name: 'playlist-detail', params: { url: playlist.url } }"
5
+ class="playlist-card d-block radius-small o-hidden"
6
+ >
7
+ <div class="playlist-cover pos-relative">
8
+ <Media
9
+ :url="playlist.coverUrl || '/assets/placeholder-playlist.jpg'"
10
+ class="w-100 aspect-1x1 object-fit-cover"
11
+ />
12
+ <div class="playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
13
+ <Button
14
+ @click.stop="playPlaylist(playlist)"
15
+ class="play-button bg-main radius-round flex-center flex aspect-1x1"
16
+ :showLoader="false"
17
+ :showSucces="false"
18
+ >
19
+ <IconPlay class="i-small" fill="rgb(var(--black))" />
20
+ </Button>
21
+ </div>
22
+ </div>
23
+ <div class="playlist-info pd-small bg-dark-transp-20">
24
+ <h3 class="t-white t-medium t-truncate">{{ playlist.title }}</h3>
25
+ <p class="t-grey t-small t-truncate">{{ playlistInfo }}</p>
26
+ </div>
27
+ </router-link>
28
+ </template>
29
+
30
+ <script setup>
31
+ import { computed } from 'vue';
32
+ import Media from '@martyrs/src/components/Media/Media.vue';
33
+ import Button from '@martyrs/src/components/Button/Button.vue';
34
+ import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
35
+
36
+ // Import player store
37
+ import { actions as playerActions } from '../../store/player.js';
38
+
39
+ const props = defineProps({
40
+ playlist: {
41
+ type: Object,
42
+ required: true
43
+ }
44
+ });
45
+
46
+ // Computed properties
47
+ const playlistInfo = computed(() => {
48
+ const trackCount = props.playlist.tracks?.length || 0;
49
+ let creatorName = 'Unknown';
50
+
51
+ if (props.playlist.creator?.target?.profile?.name) {
52
+ creatorName = props.playlist.creator.target.profile.name;
53
+ } else if (props.playlist.creator?.target?.name) {
54
+ creatorName = props.playlist.creator.target.name;
55
+ }
56
+
57
+ return `${creatorName} • ${trackCount} ${trackCount === 1 ? 'track' : 'tracks'}`;
58
+ });
59
+
60
+ // Methods
61
+ const playPlaylist = (playlist) => {
62
+ // Extract tracks from playlist
63
+ const tracks = playlist.tracks?.map(item => item.track).filter(track => track) || [];
64
+
65
+ if (tracks.length > 0) {
66
+ playerActions.setQueue(tracks);
67
+ }
68
+ };
69
+ </script>
70
+
71
+ <style scoped>
72
+ .playlist-card {
73
+ transition: transform 0.3s ease;
74
+ }
75
+
76
+ .playlist-card:hover {
77
+ transform: translateY(-5px);
78
+ }
79
+
80
+ .playlist-overlay {
81
+ background: rgba(0, 0, 0, 0.5);
82
+ opacity: 0;
83
+ transition: opacity 0.3s ease;
84
+ }
85
+
86
+ .playlist-card:hover .playlist-overlay {
87
+ opacity: 1;
88
+ }
89
+
90
+ .play-button {
91
+ width: 48px;
92
+ height: 48px;
93
+ transform: scale(0.8);
94
+ transition: transform 0.3s ease;
95
+ }
96
+
97
+ .playlist-card:hover .play-button {
98
+ transform: scale(1);
99
+ }
100
+ </style>
@@ -0,0 +1,86 @@
1
+ <!-- components/cards/TrackCard.vue -->
2
+ <template>
3
+ <div
4
+ class="track-card radius-small o-hidden pos-relative cursor-pointer transition-cubic-in-out bg-dark-transp-20"
5
+ @click="playTrack"
6
+ >
7
+ <div class="track-card-content pd-small flex-v-center flex">
8
+ <div class="track-cover mn-r-small">
9
+ <Media
10
+ :url="track.coverUrl || (track.album && track.album.coverUrl) || '/assets/placeholder-track.jpg'"
11
+ class="w-3r h-3r object-fit-cover radius-small"
12
+ />
13
+ </div>
14
+
15
+ <div class="track-info flex-1">
16
+ <div class="track-name t-white t-truncate">{{ track.title }}</div>
17
+ <div class="track-artist t-grey t-small t-truncate">{{ getArtistName(track) }}</div>
18
+ </div>
19
+
20
+ <div class="track-play pos-absolute pos-r-0 pos-t-0 h-100 pd-small flex-center flex">
21
+ <div class="play-button bg-main radius-round flex-center flex aspect-1x1 i-medium">
22
+ <IconPlay class="i-small" fill="rgb(var(--black))"/>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <script setup>
30
+ import { computed } from 'vue';
31
+ import Media from '@martyrs/src/components/Media/Media.vue';
32
+ import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
33
+
34
+ // Import player store
35
+ import { actions as playerActions } from '../../store/player.js';
36
+
37
+ const props = defineProps({
38
+ track: {
39
+ type: Object,
40
+ required: true
41
+ }
42
+ });
43
+
44
+ // Methods
45
+ const getArtistName = (track) => {
46
+ if (track.artist) {
47
+ if (typeof track.artist === 'object') {
48
+ return track.artist.name || 'Unknown Artist';
49
+ }
50
+ return track.artist;
51
+ }
52
+ return 'Unknown Artist';
53
+ };
54
+
55
+ const playTrack = () => {
56
+ playerActions.playTrack(props.track);
57
+ };
58
+ </script>
59
+
60
+ <style scoped>
61
+ .track-card {
62
+ transition: background-color 0.3s ease;
63
+ }
64
+
65
+ .track-card:hover {
66
+ background-color: rgba(var(--dark), 0.4);
67
+ }
68
+
69
+ .track-play {
70
+ opacity: 0;
71
+ transition: opacity 0.3s ease;
72
+ }
73
+
74
+ .track-card:hover .track-play {
75
+ opacity: 1;
76
+ }
77
+
78
+ .play-button {
79
+ transform: scale(0.8);
80
+ transition: transform 0.3s ease;
81
+ }
82
+
83
+ .track-card:hover .play-button {
84
+ transform: scale(1);
85
+ }
86
+ </style>
@@ -0,0 +1,156 @@
1
+ <!-- components/forms/PlaylistForm.vue -->
2
+ <template>
3
+ <div class="playlist-form">
4
+ <form @submit.prevent="submitForm">
5
+ <div class="form-group mn-b-medium">
6
+ <label for="title" class="t-white t-medium mn-b-thin d-block">Playlist Name</label>
7
+ <Field
8
+ v-model:field="form.title"
9
+ id="title"
10
+ type="text"
11
+ placeholder="New Playlist"
12
+ :validation="validationErrors.title"
13
+ class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
14
+ />
15
+ </div>
16
+
17
+ <div class="form-group mn-b-medium">
18
+ <label for="description" class="t-white t-medium mn-b-thin d-block">Description</label>
19
+ <Field
20
+ v-model:field="form.description"
21
+ id="description"
22
+ type="textarea"
23
+ placeholder="Add an optional description"
24
+ :validation="validationErrors.description"
25
+ class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
26
+ />
27
+ </div>
28
+
29
+ <div class="form-group mn-b-medium">
30
+ <label class="t-white t-medium mn-b-thin d-block">Privacy</label>
31
+ <div class="flex gap-small">
32
+ <Radio
33
+ v-model:radio="form.isPublic"
34
+ :value="true"
35
+ name="privacy"
36
+ label="Public"
37
+ class="t-white"
38
+ />
39
+ <Radio
40
+ v-model:radio="form.isPublic"
41
+ :value="false"
42
+ name="privacy"
43
+ label="Private"
44
+ class="t-white"
45
+ />
46
+ </div>
47
+ </div>
48
+
49
+ <div class="form-group mn-b-medium">
50
+ <label class="t-white t-medium mn-b-thin d-block">Cover Image</label>
51
+ <div class="playlist-cover-upload flex gap-medium">
52
+ <div class="playlist-cover-preview bg-dark-transp-25 radius-small o-hidden">
53
+ <Media
54
+ v-if="form.coverUrl"
55
+ :url="form.coverUrl"
56
+ class="w-10r h-10r object-fit-cover"
57
+ />
58
+ <div v-else class="w-10r h-10r flex-center flex">
59
+ <IconMusic class="i-big" fill="rgb(var(--grey))"/>
60
+ </div>
61
+ </div>
62
+
63
+ <UploadImage
64
+ v-model:photo="form.coverUrl"
65
+ uploadPath="playlists"
66
+ class="flex-1 h-10r bg-dark-transp-25 radius-small"
67
+ />
68
+ </div>
69
+ </div>
70
+
71
+ <div class="form-actions t-right">
72
+ <Button
73
+ @click="$emit('cancel')"
74
+ type="button"
75
+ class="bg-dark-transp-25 t-white pd-small radius-small mn-r-small hover-bg-dark"
76
+ :showLoader="false"
77
+ :showSucces="false"
78
+ >
79
+ Cancel
80
+ </Button>
81
+
82
+ <Button
83
+ type="submit"
84
+ class="bg-main t-white pd-small radius-small hover-scale-1"
85
+ :submit="submitForm"
86
+ :showLoader="true"
87
+ :showSucces="true"
88
+ :validation="!!Object.keys(validationErrors).length"
89
+ >
90
+ Create Playlist
91
+ </Button>
92
+ </div>
93
+ </form>
94
+ </div>
95
+ </template>
96
+
97
+ <script setup>
98
+ import { ref, reactive } from 'vue';
99
+ import Field from '@martyrs/src/components/Field/Field.vue';
100
+ import Radio from '@martyrs/src/components/Radio/Radio.vue';
101
+ import Button from '@martyrs/src/components/Button/Button.vue';
102
+ import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';
103
+ import Media from '@martyrs/src/components/Media/Media.vue';
104
+ import IconMusic from '@martyrs/src/modules/icons/entities/IconMusic.vue';
105
+
106
+ // Import auth store and playlists store
107
+ import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
108
+ import { actions as playlistsActions } from '../../store/playlists.js';
109
+
110
+ const emit = defineEmits(['created', 'cancel']);
111
+
112
+ // Form data
113
+ const form = reactive({
114
+ title: '',
115
+ description: '',
116
+ isPublic: true,
117
+ coverUrl: '',
118
+ isCollaborative: false,
119
+ tracks: []
120
+ });
121
+
122
+ // Validation
123
+ const validationErrors = reactive({});
124
+
125
+ // Form submission
126
+ const submitForm = async () => {
127
+ // Validate form
128
+ validationErrors.title = !form.title ? { message: 'Playlist name is required' } : null;
129
+
130
+ // If there are validation errors, don't submit
131
+ if (Object.values(validationErrors).some(error => error !== null)) {
132
+ return;
133
+ }
134
+
135
+ // Prepare playlist data
136
+ const playlistData = {
137
+ ...form,
138
+ creator: {
139
+ type: 'User',
140
+ target: authState.user._id
141
+ },
142
+ owner: {
143
+ type: 'User',
144
+ target: authState.user._id
145
+ }
146
+ };
147
+
148
+ try {
149
+ const playlist = await playlistsActions.createPlaylist(playlistData);
150
+ emit('created', playlist);
151
+ } catch (error) {
152
+ console.error('Error creating playlist:', error);
153
+ // Handle error (could add form-level error message)
154
+ }
155
+ };
156
+ </script>
@@ -0,0 +1,82 @@
1
+ <!-- components/forms/SearchForm.vue -->
2
+ <template>
3
+ <div class="search-form flex-v-center flex bg-dark-transp-50 pd-thin radius-extra">
4
+ <IconSearch class="i-small mn-r-small" fill="rgb(var(--grey))"/>
5
+ <input
6
+ ref="searchInput"
7
+ v-model="searchQuery"
8
+ type="text"
9
+ :placeholder="placeholder"
10
+ class="bg-transparent border-none t-white flex-1"
11
+ @keydown.enter="handleSearch"
12
+ />
13
+ <Button
14
+ v-if="searchQuery.length > 0"
15
+ @click="clearSearch"
16
+ class="bg-transparent border-none pd-zero"
17
+ :showLoader="false"
18
+ :showSucces="false"
19
+ >
20
+ <IconCross class="i-small" fill="rgb(var(--grey))"/>
21
+ </Button>
22
+ </div>
23
+ </template>
24
+
25
+ <script setup>
26
+ import { ref, watchEffect, defineEmits } from 'vue';
27
+ import Button from '@martyrs/src/components/Button/Button.vue';
28
+ import IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';
29
+ import IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';
30
+
31
+ const props = defineProps({
32
+ placeholder: {
33
+ type: String,
34
+ default: 'Search...'
35
+ },
36
+ initialQuery: {
37
+ type: String,
38
+ default: ''
39
+ }
40
+ });
41
+
42
+ const emit = defineEmits(['search']);
43
+
44
+ const searchInput = ref(null);
45
+ const searchQuery = ref(props.initialQuery);
46
+
47
+ const handleSearch = () => {
48
+ if (searchQuery.value.trim()) {
49
+ emit('search', searchQuery.value.trim());
50
+ }
51
+ };
52
+
53
+ const clearSearch = () => {
54
+ searchQuery.value = '';
55
+ searchInput.value.focus();
56
+ };
57
+
58
+ watchEffect(() => {
59
+ // Update search query when initialQuery prop changes
60
+ if (props.initialQuery !== searchQuery.value) {
61
+ searchQuery.value = props.initialQuery;
62
+ }
63
+ });
64
+ </script>
65
+
66
+ <style scoped>
67
+ .search-form {
68
+ transition: background-color 0.2s ease;
69
+ }
70
+
71
+ .search-form:focus-within {
72
+ background-color: rgba(var(--dark), 0.8);
73
+ }
74
+
75
+ input::placeholder {
76
+ color: rgba(var(--grey), 0.8);
77
+ }
78
+
79
+ input:focus {
80
+ outline: none;
81
+ }
82
+ </style>