@ozdao/martyrs 0.2.564 → 0.2.566

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 (366) hide show
  1. package/dist/abac-BPl9Bmf9.js +1527 -0
  2. package/dist/builder.js +51 -39
  3. package/dist/{common.schema-GFSlNJo7.js → common.schema-DswiUXKB.js} +1 -1
  4. package/dist/community.server.js +48 -9
  5. package/dist/core.server.js +6 -4
  6. package/dist/{crud-C7FSTUes.js → crud-q1ye5IhV.js} +7 -7
  7. package/dist/events.server.js +3 -3
  8. package/dist/gallery.server.js +2 -2
  9. package/dist/inventory.server.js +4 -6
  10. package/dist/{main-CmjWiDVF.js → main-B9o1iBAZ.js} +1279 -1287
  11. package/dist/marketplace.server.js +1 -1
  12. package/dist/martyrs/dist/main-B9o1iBAZ.js +943 -0
  13. package/dist/martyrs/dist/main-B9o1iBAZ.js.map +1 -0
  14. package/dist/martyrs/dist/web-BF3ijvEr.js +55 -0
  15. package/dist/martyrs/dist/web-BF3ijvEr.js.map +1 -0
  16. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +96 -0
  17. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -0
  18. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +36 -45
  19. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  20. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  22. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
  23. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  24. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  25. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  26. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  27. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +3 -4
  28. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  29. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  30. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  31. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  32. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  33. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  34. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  35. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.js → SelectMulti.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
  37. package/dist/martyrs/src/components/Tree/Tree.vue.js +6 -3
  38. package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
  39. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  40. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/auth.client.js +10 -7
  42. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +13 -13
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  54. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +2 -2
  55. package/dist/martyrs/src/modules/auth/views/router/auth.router.js +116 -0
  56. package/dist/martyrs/src/modules/auth/views/router/auth.router.js.map +1 -0
  57. package/dist/martyrs/src/modules/auth/views/router/users.router.js +180 -0
  58. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -0
  59. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +4 -4
  60. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  61. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  62. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  63. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  64. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  65. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  66. package/dist/martyrs/src/modules/core/locales/en.js +45 -0
  67. package/dist/martyrs/src/modules/core/locales/en.js.map +1 -1
  68. package/dist/martyrs/src/modules/core/locales/ru.js +45 -0
  69. package/dist/martyrs/src/modules/core/locales/ru.js.map +1 -1
  70. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +9 -0
  71. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  72. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSearch.vue.js +1 -1
  73. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  74. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  75. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  76. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
  77. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +3 -2
  78. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  80. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  81. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  82. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +1 -1
  83. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +1 -2
  84. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  85. package/dist/martyrs/src/modules/core/views/router/addRoutes.js +6 -1
  86. package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
  87. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +2 -2
  88. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  89. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
  90. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  91. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  92. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +2 -2
  93. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  94. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  95. package/dist/martyrs/src/modules/events/events.client.js +15 -12
  96. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  97. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
  98. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  99. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  100. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  101. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
  102. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +5 -5
  103. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  104. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  105. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  106. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +95 -0
  107. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -0
  108. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +6 -3
  109. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  110. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +25 -25
  111. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  112. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  114. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
  115. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +4 -4
  116. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +2 -2
  117. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  118. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
  119. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +31 -6
  120. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -1
  121. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +121 -206
  122. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  124. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +9 -13
  125. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  126. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  127. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +167 -246
  128. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  130. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +136 -221
  131. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  132. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  133. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +171 -0
  134. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -0
  135. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +32 -154
  136. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +96 -0
  138. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js.map +1 -0
  139. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +55 -27
  140. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/music/components/player/tonar.png.js +5 -0
  142. package/dist/martyrs/src/modules/music/components/player/tonar.png.js.map +1 -0
  143. package/dist/martyrs/src/modules/music/store/albums.js +8 -2
  144. package/dist/martyrs/src/modules/music/store/albums.js.map +1 -1
  145. package/dist/martyrs/src/modules/music/store/player.js +83 -65
  146. package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
  147. package/dist/martyrs/src/modules/music/store/tracks.js +4 -13
  148. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
  149. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +4 -4
  150. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
  152. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +3 -0
  153. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  154. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +3 -3
  155. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +3 -3
  156. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  157. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  158. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  159. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  160. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  161. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  162. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  163. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  164. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  165. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  166. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  167. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  168. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  169. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  170. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  171. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  172. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +5 -5
  173. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  174. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +3 -3
  175. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
  176. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  177. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  178. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
  179. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  180. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  181. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  182. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +15 -2
  183. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  184. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  185. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +10 -7
  186. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  187. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +7 -6
  188. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +11 -2
  190. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  191. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +4 -4
  192. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  193. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  194. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
  195. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
  196. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +3 -3
  197. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  198. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  199. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +11 -8
  200. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  202. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +211 -61
  203. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  204. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  205. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
  206. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  207. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +4 -4
  208. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  210. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +3 -3
  211. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  212. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
  213. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  214. package/dist/martyrs.css +1 -1
  215. package/dist/martyrs.es.js +1 -1
  216. package/dist/music.server.js +44 -18
  217. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js +1 -0
  218. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js.map +1 -0
  219. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js +1 -1
  220. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js.map +1 -1
  221. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js +16 -1
  222. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js.map +1 -0
  223. package/dist/node_modules/.pnpm/{@capacitor_core@7.0.1 → @capacitor_core@7.4.4}/node_modules/@capacitor/core/dist/index.js +2 -1
  224. package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
  225. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/index.js +1 -1
  226. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/index.js.map +1 -1
  227. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/web.js +1 -1
  228. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/web.js.map +1 -1
  229. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/definitions.js.map +1 -1
  230. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/index.js +1 -1
  231. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/index.js.map +1 -1
  232. package/dist/node_modules/.pnpm/{@capacitor_push-notifications@7.0.0_@capacitor_core@7.0.1 → @capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4}/node_modules/@capacitor/push-notifications/dist/esm/index.js +1 -1
  233. package/dist/node_modules/.pnpm/{@capacitor_push-notifications@7.0.0_@capacitor_core@7.0.1 → @capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4}/node_modules/@capacitor/push-notifications/dist/esm/index.js.map +1 -1
  234. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js +1 -1
  235. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js.map +1 -1
  236. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js +1 -1
  237. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js.map +1 -1
  238. package/dist/notifications.server.js +0 -3
  239. package/dist/orders.server.js +5 -6
  240. package/dist/organizations.server.js +9 -10
  241. package/dist/products.server.js +27 -26
  242. package/dist/{queryProcessor-CBQgZycY.js → queryProcessor-C_5Iipam.js} +4 -1
  243. package/dist/rents.server.js +2 -3
  244. package/dist/spots.server.js +1 -1
  245. package/dist/style.css +252 -161
  246. package/dist/{web-cNKIl_cL.js → web-BF3ijvEr.js} +1 -1
  247. package/package.json +1 -1
  248. package/src/builder/modes/ssr.rspack.dev.js +4 -3
  249. package/src/builder/rspack/rspack.config.api.js +15 -4
  250. package/src/builder/rspack/rspack.config.base.js +3 -3
  251. package/src/builder/rspack/rspack.config.ssr.client.js +28 -28
  252. package/src/builder/templates/page.js +2 -2
  253. package/src/components/BottomSheet/BottomSheet.vue +4 -4
  254. package/src/components/Button/Button.vue +50 -37
  255. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  256. package/src/components/Loader/Loader.vue +1 -1
  257. package/src/components/Tree/Tree.vue +6 -3
  258. package/src/modules/LAYOUT.MD +767 -0
  259. package/src/modules/PROCESS.md +0 -0
  260. package/src/modules/TASKS.MD +17 -0
  261. package/src/modules/auth/auth.client.js +11 -7
  262. package/src/modules/auth/views/components/pages/SignIn.vue +1 -1
  263. package/src/modules/auth/views/router/auth.router.js +94 -0
  264. package/src/modules/auth/views/router/users.router.js +153 -0
  265. package/src/modules/backoffice/components/partials/Sidebar.vue +7 -7
  266. package/src/modules/community/community.server.js +8 -0
  267. package/src/modules/community/policies/blog.policies.js +55 -0
  268. package/src/modules/community/routes/blog.routes.js +1 -1
  269. package/src/modules/community/routes/comments.routes.js +1 -1
  270. package/src/modules/community/routes/reactions.routes.js +1 -4
  271. package/src/modules/core/controllers/classes/abac/abac.adapter.express.js +206 -124
  272. package/src/modules/core/controllers/classes/abac/abac.adapter.ws.js +203 -50
  273. package/src/modules/core/controllers/classes/abac/abac.core.js +127 -36
  274. package/src/modules/core/controllers/classes/abac/abac.fields.js +144 -179
  275. package/src/modules/core/controllers/classes/abac/abac.js +201 -10
  276. package/src/modules/core/controllers/classes/abac/abac.policies.js +147 -57
  277. package/src/modules/core/controllers/classes/crud/crud.policies.js +5 -5
  278. package/src/modules/core/controllers/policies/core.policies.js +5 -2
  279. package/src/modules/core/controllers/utils/queryProcessor.js +4 -1
  280. package/src/modules/core/core.server.js +1 -0
  281. package/src/modules/core/locales/en.js +45 -0
  282. package/src/modules/core/locales/ru.js +45 -0
  283. package/src/modules/core/models/schemas/common.schema.js +1 -1
  284. package/src/modules/core/views/classes/i18n.manager.js +13 -0
  285. package/src/modules/core/views/components/layouts/Client.vue +1 -1
  286. package/src/modules/core/views/components/sections/filters/FilterPrice.vue +81 -0
  287. package/src/modules/core/views/mixins/mixins.js +1 -2
  288. package/src/modules/core/views/router/addRoutes.js +6 -1
  289. package/src/modules/events/events.client.js +3 -0
  290. package/src/modules/events/routes/events.routes.js +1 -1
  291. package/src/modules/inventory/components/pages/InventoryEdit.vue +3 -3
  292. package/src/modules/inventory/policies/inventory.policies.js +1 -1
  293. package/src/modules/inventory/routes/inventory.routes.js +1 -1
  294. package/src/modules/marketplace/marketplace.router.js +66 -0
  295. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +363 -0
  296. package/src/modules/marketplace/views/components/pages/Catalog.vue +73 -0
  297. package/src/modules/music/components/blocks/ActionButtons.vue +74 -0
  298. package/src/modules/music/components/cards/AlbumCard.vue +1 -1
  299. package/src/modules/music/components/cards/ArtistCardSmall.vue +8 -6
  300. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +94 -4
  301. package/src/modules/music/components/pages/Album.vue +55 -67
  302. package/src/modules/music/components/pages/MusicHome.vue +4 -6
  303. package/src/modules/music/components/pages/Playlist.vue +61 -70
  304. package/src/modules/music/components/pages/Track.vue +54 -71
  305. package/src/modules/music/components/player/FullscreenPlayer.vue +248 -0
  306. package/src/modules/music/components/player/MusicPlayer.vue +21 -216
  307. package/src/modules/music/components/player/PlayerControls.vue +112 -0
  308. package/src/modules/music/components/player/Visualizer.vue +151 -0
  309. package/src/modules/music/components/player/VolumeControl.vue +75 -23
  310. package/src/modules/music/components/player/tonar.png +0 -0
  311. package/src/modules/music/controllers/stream.controller.js +1 -1
  312. package/src/modules/music/music.server.js +1 -1
  313. package/src/modules/music/policies/music.policies.js +3 -2
  314. package/src/modules/music/router/library.router.js +26 -0
  315. package/src/modules/music/router/music.router.js +176 -0
  316. package/src/modules/music/routes/albums.routes.js +13 -12
  317. package/src/modules/music/routes/tracks.routes.js +39 -0
  318. package/src/modules/music/store/albums.js +10 -2
  319. package/src/modules/music/store/player.js +101 -89
  320. package/src/modules/music/store/tracks.js +5 -21
  321. package/src/modules/notifications/components/elements/NotificationBadge.vue +5 -6
  322. package/src/modules/notifications/notifications.server.js +1 -3
  323. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +5 -0
  324. package/src/modules/orders/orders.server.js +0 -1
  325. package/src/modules/organizations/components/blocks/CardOrganization.vue +2 -2
  326. package/src/modules/organizations/components/pages/DepartmentEdit.vue +2 -2
  327. package/src/modules/organizations/components/pages/OrganizationEdit.vue +2 -2
  328. package/src/modules/organizations/policies/organizations.policies.js +12 -6
  329. package/src/modules/organizations/routes/organizations.routes.js +1 -3
  330. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  331. package/src/modules/products/components/blocks/CardProduct.vue +16 -2
  332. package/src/modules/products/components/pages/Categories.vue +9 -6
  333. package/src/modules/products/components/pages/CategoryEdit.vue +8 -4
  334. package/src/modules/products/components/pages/Product.vue +11 -5
  335. package/src/modules/products/components/sections/SectionProduct.vue +11 -7
  336. package/src/modules/products/controllers/categories.controller.js +32 -27
  337. package/src/modules/products/routes/categories.routes.js +1 -1
  338. package/src/modules/rents/controllers/routes/rents.routes.js +1 -1
  339. package/src/modules/rents/views/components/pages/RentsEdit.vue +208 -49
  340. package/src/modules/spots/components/pages/Map.vue +2 -2
  341. package/src/styles/config.scss +6 -6
  342. package/dist/abac-DYoheWuc.js +0 -1031
  343. package/dist/core.abac-DUPBnlk6.js +0 -298
  344. package/dist/core.logger-C3q8A9dl.js +0 -51
  345. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  346. package/dist/martyrs/src/components/Field/Field.vue2.js.map +0 -1
  347. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
  348. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  349. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  350. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
  351. package/dist/martyrs/src/modules/auth/auth.router.js +0 -342
  352. package/dist/martyrs/src/modules/auth/auth.router.js.map +0 -1
  353. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js.map +0 -1
  354. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js.map +0 -1
  355. package/dist/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
  356. package/src/modules/auth/auth.router.js +0 -262
  357. package/src/modules/core/controllers/classes/abac/v2/abac-core-fixed.js +0 -313
  358. package/src/modules/core/controllers/classes/abac/v2/abac-express-fixed.js +0 -276
  359. package/src/modules/core/controllers/classes/abac/v2/abac-fields-fixed.js +0 -425
  360. package/src/modules/core/controllers/classes/abac/v2/abac-main-fixed.js +0 -295
  361. package/src/modules/core/controllers/classes/abac/v2/abac-policies-fixed.js +0 -316
  362. package/src/modules/core/controllers/classes/abac/v2/abac-ws-fixed.js +0 -237
  363. package/src/modules/core/controllers/classes/core.abac.js +0 -310
  364. package/src/modules/core/controllers/classes/core.crud.js +0 -89
  365. package/src/modules/governance/reactcode/eslint.config.js +0 -28
  366. /package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/definitions.js +0 -0
@@ -0,0 +1,248 @@
1
+ <template>
2
+ <section
3
+ class="o-y-scroll o-x-hidden bg-light pd-small pos-relative z-index-2 t-center t-black w-100 h-100"
4
+ >
5
+
6
+ <div
7
+ class="pos-relative gap-small flex-nowrap flex-column flex-center flex z-index-1"
8
+ >
9
+ <!-- COVER -->
10
+ <div class="mn-b-thin h-max-30r br-2px br-solid br-black-transp-10 radius-extra w-100 pos-relative aspect-1x1 flex-center flex "
11
+ style="
12
+ background: linear-gradient(180deg, #BDBDBD 0%, #D9D9D9 79.69%, #A5A5A5 100%);
13
+ box-shadow: 0 2px 0px 2px #aaaaaa;
14
+ "
15
+ >
16
+
17
+ <div class="pos-relative">
18
+ <div class="radioTonarWrapper" :class="{'activeTonar': playerState.isPlaying}">
19
+ <img
20
+ class="radioTonar z-index-2"
21
+ src="./tonar.png"
22
+ :class="{'playingTonar': playerState.isPlaying}"
23
+ >
24
+ </div>
25
+ <div
26
+ ref="disk"
27
+ :class="['radius-100 rotate-gradient flex-center flex']"
28
+ :style="{
29
+ transform: `rotate(${playerState.rotationAngle}deg)`,
30
+ width: '24rem',
31
+ height: '24rem',
32
+ border: '3px solid var(--black)',
33
+ 'box-shadow': 'rgba(0,0,0,0.5) 0 0 64px 0px'
34
+ }"
35
+ class="pos-relative z-index-1"
36
+ >
37
+ <div
38
+ v-for="i in 11"
39
+ :key="i"
40
+ :style="{
41
+ border: '1px solid rgba(0,0,0,0.25)',
42
+ position: 'absolute',
43
+ width: 23 - i * 1 + 'rem',
44
+ height: 23 - i * 1 + 'rem',
45
+ 'border-radius': '100%',
46
+ 'box-shadow': 'rgb(47 47 47 / 18%) 0px 0px 5px 10px'
47
+ }"
48
+ >
49
+ </div>
50
+
51
+ <div
52
+ :style="{
53
+ width: '10rem',
54
+ height: '10rem',
55
+ backgroundImage: `url('${playerState.currentTrack?.coverUrl || playerState.currentTrack?.album?.coverArt}')`,
56
+ backgroundPosition: 'center center',
57
+ backgroundSize: '106%',
58
+ }"
59
+ class="radius-extra br-solid br-black-transp-10 br-1px"
60
+ >
61
+ </div>
62
+ </div>
63
+
64
+ </div>
65
+
66
+ </div>
67
+
68
+ <!-- NOW PLAYING -->
69
+ <div
70
+ class="pd-thin bg-white radius-medium o-hidden w-100 pos-relative"
71
+ >
72
+ <p class="mn-l-auto mn-b-thin mn-r-auto radius-big pd-thin bg-second w-min">NOW&nbsp;PLAYING</p>
73
+ <!-- SONG -->
74
+ <Marquee
75
+ v-if="playerState.currentTrack"
76
+ class="h2 uppercase mn-b-thin"
77
+ :gradient="true"
78
+ :gradientColor="'rgb(var(--white))'"
79
+ :clone="true"
80
+ gradient-length="10%"
81
+ >
82
+ {{ playerState.currentTrack.title + '\xa0\xa0'}}
83
+ </Marquee>
84
+
85
+ <!-- AUTHOR -->
86
+ <p
87
+ v-if="playerState.currentTrack"
88
+ class="h3 uppercase t-transp"
89
+ >
90
+ {{ playerState.currentTrack.artist?.name || 'Unknown Artist' }}
91
+ </p>
92
+ </div>
93
+
94
+ <!-- LIKES -->
95
+ <div
96
+ class="pd-thin bg-white radius-medium w-100 pos-relative flex flex-v-center gap-thin"
97
+ >
98
+ <div v-if="authState.user" class="flex-nowrap flex gap-thin flex-v-center">
99
+ <IconLike
100
+ @click="toggleLike()"
101
+ :isLiked="isLiked"
102
+ fill="rgb(var(--black))"
103
+ class="i-medium cursor-pointer"
104
+ :class="{'no-events': isLoading}"
105
+ />
106
+ <p class="t-semi h4">{{ isLiked ? 'Liked' : 'Like' }}</p>
107
+ </div>
108
+
109
+ <p class="t-semi h4" :class="{'mn-l-auto': authState.user}">{{ likesCount }} {{ likesCount === 1 ? 'person' : 'people' }} liked</p>
110
+ </div>
111
+
112
+ <!-- CONTROLS -->
113
+ <div
114
+ class="gap-thin flex-center flex-nowrap flex pd-small bg-white radius-medium o-hidden w-100 pos-relative"
115
+ >
116
+ <PlayerControls />
117
+ </div>
118
+
119
+ <!-- VOLUME -->
120
+ <div class="pd-thin bg-white radius-medium w-100 pos-relative">
121
+ <VolumeControl />
122
+ </div>
123
+
124
+
125
+ <!-- QUEUE LIST -->
126
+ <div
127
+ v-if="playerState.queue.length > 0"
128
+ class="mn-b-small bg-white radius-medium o-hidden w-100 pos-relative"
129
+ >
130
+
131
+ <div class="pd-regular w-100 gap-thin flex-nowrap flex flex-v-center">
132
+ <IconEvents :fill="'rgb(var(--black))'" class="t-transp i-medium"/>
133
+ <p class="w-100 t-transp t-left">QUEUE</p>
134
+ </div>
135
+
136
+ <TrackListCard
137
+ v-for="(track, index) in playerState.queue.slice(0, 10)"
138
+ :key="track._id || index"
139
+ :track="track"
140
+ :index="index"
141
+ :showCover="true"
142
+ :showAlbum="false"
143
+ />
144
+
145
+ </div>
146
+
147
+ </div>
148
+
149
+ </section>
150
+ </template>
151
+
152
+ <script setup>
153
+ import { ref, computed, onMounted } from 'vue';
154
+
155
+ import { Text, Tooltip, Marquee } from '@ozdao/martyrs';
156
+ import IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';
157
+ import IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';
158
+
159
+ import TrackListCard from '../cards/TrackListCard.vue';
160
+ import VolumeControl from './VolumeControl.vue';
161
+ import PlayerControls from './PlayerControls.vue';
162
+ import { state as playerState, actions as playerActions } from '../../store/player.js';
163
+ import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
164
+
165
+ const isLiked = ref(false);
166
+ const isLoading = ref(false);
167
+ const likesCount = ref(0);
168
+
169
+ async function toggleLike() {
170
+ // TODO: Implement likes integration with community module
171
+ isLiked.value = !isLiked.value;
172
+ likesCount.value += isLiked.value ? 1 : -1;
173
+ }
174
+
175
+ onMounted(() => {
176
+ if ('mediaSession' in navigator) {
177
+ navigator.mediaSession.setActionHandler('pause', () => playerActions.togglePlay());
178
+ navigator.mediaSession.setActionHandler('play', () => playerActions.togglePlay());
179
+ navigator.mediaSession.setActionHandler('stop', () => playerActions.togglePlay());
180
+ navigator.mediaSession.setActionHandler('previoustrack', () => playerActions.playPrevious());
181
+ navigator.mediaSession.setActionHandler('nexttrack', () => playerActions.playNext());
182
+ }
183
+ });
184
+
185
+ </script>
186
+
187
+
188
+ <style lang="scss" scoped>
189
+ .radioTonarWrapper {
190
+ width: 15rem;
191
+ position: absolute;
192
+ z-index: 30;
193
+ transform: rotate(253deg);
194
+ transform-origin: 75% center;
195
+ top: 0;
196
+ right: -2.5rem;
197
+ transition: transform 1s ease-in-out;
198
+ }
199
+
200
+ .radioTonar {
201
+ width: 15rem;
202
+ transform-origin: 75% center;
203
+ }
204
+
205
+ .activeTonar {
206
+ transform: rotate(285deg);
207
+ }
208
+
209
+ .playingTonar {
210
+ animation: playingTonar 2s ease-in-out infinite;
211
+ }
212
+
213
+ @keyframes playingTonar {
214
+ 0%, 100% {
215
+ transform: rotate(0deg);
216
+ }
217
+ 25% {
218
+ transform: rotate(2deg);
219
+ }
220
+ 50% {
221
+ transform: rotate(-2deg);
222
+ }
223
+ }
224
+
225
+ @property --a {
226
+ syntax: '<angle>';
227
+ inherits: false;
228
+ initial-value: 0deg;
229
+ }
230
+
231
+ @property --b {
232
+ syntax: '<angle>';
233
+ inherits: false;
234
+ initial-value: 0deg;
235
+ }
236
+
237
+ .rotate-gradient {
238
+ --a: 0deg;
239
+ --b: 0deg;
240
+ transition: --a 0.5s, --b 0.5s;
241
+
242
+ background:
243
+ conic-gradient(from var(--a), rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.33), rgba(255, 255, 255, 0.1)),
244
+ linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(0, 0, 0, 1) 100%),
245
+ linear-gradient(180deg, #000 0%, rgba(10, 10, 10, 0.00) 100%),
246
+ #000;
247
+ }
248
+ </style>
@@ -3,10 +3,10 @@
3
3
  <div class="player-container">
4
4
  <div class="player">
5
5
  <!-- Track Info Section -->
6
- <div class="track-info">
6
+ <div class="track-info" @click="openFullPlayer">
7
7
  <div class="track-image">
8
- <Media
9
- :url="currentTrack?.coverUrl || (currentTrack?.album && currentTrack.album.coverUrl) || '/assets/placeholder-track.jpg'"
8
+ <Media
9
+ :url="currentTrack?.coverUrl || (currentTrack?.album && currentTrack.album.coverUrl) || '/assets/placeholder-track.jpg'"
10
10
  class="track-image-media"
11
11
  />
12
12
  </div>
@@ -14,11 +14,12 @@
14
14
  <h3 class="track-title">{{ currentTrack?.title || 'No track playing' }}</h3>
15
15
  <p class="track-artist">{{ getArtistName(currentTrack) }}</p>
16
16
  </div>
17
- <Button
18
- @click="toggleFavorite"
17
+ <Button
18
+ v-if="authState.user"
19
+ @click.stop="toggleFavorite"
19
20
  class="like-btn"
20
21
  :class="{ liked: isFavorite }"
21
- :showLoader="false"
22
+ :showLoader="false"
22
23
  :showSucces="false"
23
24
  >
24
25
  <IconLike class="like-icon"/>
@@ -28,53 +29,7 @@
28
29
  <!-- Control Section -->
29
30
  <div class="controls">
30
31
  <div class="control-buttons">
31
- <Button
32
- @click="toggleShuffle"
33
- class="control-btn secondary"
34
- :class="{ active: shuffle }"
35
- :showLoader="false"
36
- :showSucces="false"
37
- >
38
- <IconShuffle fill="rgb(var(--black))" class="control-icon"/>
39
- </Button>
40
-
41
- <Button
42
- @click="playPrevious"
43
- class="control-btn secondary"
44
- :showLoader="false"
45
- :showSucces="false"
46
- >
47
- <IconPrevious fill="rgb(var(--black))" class="control-icon"/>
48
- </Button>
49
-
50
- <Button
51
- @click="togglePlay"
52
- class="control-btn primary"
53
- :showLoader="false"
54
- :showSucces="false"
55
- >
56
- <IconPause v-if="isPlaying" fill="white" class="play-icon"/>
57
- <IconPlay fill="white" v-else class="play-icon"/>
58
- </Button>
59
-
60
- <Button
61
- @click="playNext"
62
- class="control-btn secondary"
63
- :showLoader="false"
64
- :showSucces="false"
65
- >
66
- <IconNext fill="rgb(var(--black))" class="control-icon"/>
67
- </Button>
68
-
69
- <Button
70
- @click="toggleRepeat"
71
- class="control-btn secondary"
72
- :class="{ active: repeat !== 'off' }"
73
- :showLoader="false"
74
- :showSucces="false"
75
- >
76
- <IconRepeat fill="rgb(var(--black))" class="control-icon"/>
77
- </Button>
32
+ <PlayerControls />
78
33
  </div>
79
34
 
80
35
  <!-- Progress Bar -->
@@ -84,22 +39,7 @@
84
39
  </div>
85
40
 
86
41
  <!-- Volume Section -->
87
- <div class="volume-section">
88
- <Button
89
- @click="toggleMute"
90
- class="volume-btn"
91
- :showLoader="false"
92
- :showSucces="false"
93
- >
94
- <IconVolumeMute fill="rgb(var(--black))" v-if="muted || volume < 0.005" class="volume-icon"/>
95
- <!-- <IconVolumeHalf fill="rgb(var(--black))" v-else-if="!muted && volume > 0" class="volume-icon"/> -->
96
- <IconUnMute fill="rgb(var(--black))" v-else class="volume-icon"/>
97
- </Button>
98
-
99
- <div class="volume-slider">
100
- <VolumeControl />
101
- </div>
102
- </div>
42
+ <VolumeControl />
103
43
  </div>
104
44
  </div>
105
45
  </template>
@@ -110,64 +50,31 @@ import Media from '@martyrs/src/components/Media/Media.vue';
110
50
  import Button from '@martyrs/src/components/Button/Button.vue';
111
51
  import TrackProgress from './TrackProgress.vue';
112
52
  import VolumeControl from './VolumeControl.vue';
53
+ import PlayerControls from './PlayerControls.vue';
113
54
 
114
55
  // Import icons
115
- import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
116
- import IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';
117
- import IconNext from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';
118
- import IconPrevious from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';
119
- import IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';
120
- import IconRepeat from '@martyrs/src/modules/icons/navigation/IconRefresh.vue';
121
56
  import IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';
122
- import IconVolume from '@martyrs/src/modules/icons/navigation/IconVolume.vue';
123
- import IconUnMute from '@martyrs/src/modules/icons/navigation/IconUnMute.vue';
124
- import IconVolumeHalf from '@martyrs/src/modules/icons/navigation/IconVolume.vue';
125
- import IconVolumeMute from '@martyrs/src/modules/icons/navigation/IconMute.vue';
126
57
 
127
58
  // Import player store
128
59
  import { state as playerState, actions as playerActions } from '../../store/player.js';
60
+ import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
129
61
 
130
62
  // State
131
63
  const isFavorite = ref(false);
132
64
 
133
65
  // Computed properties
134
66
  const currentTrack = computed(() => playerState.currentTrack);
135
- const isPlaying = computed(() => playerState.isPlaying);
136
- const volume = computed(() => playerState.volume);
137
- const muted = computed(() => playerState.muted);
138
- const shuffle = computed(() => playerState.shuffle);
139
- const repeat = computed(() => playerState.repeat);
140
67
 
141
68
  // Methods
142
- const togglePlay = () => {
143
- playerActions.togglePlay();
144
- };
145
-
146
- const playNext = () => {
147
- playerActions.playNext();
148
- };
149
-
150
- const playPrevious = () => {
151
- playerActions.playPrevious();
152
- };
153
-
154
- const toggleShuffle = () => {
155
- playerActions.toggleShuffle();
156
- };
157
-
158
- const toggleRepeat = () => {
159
- playerActions.toggleRepeat();
160
- };
161
-
162
- const toggleMute = () => {
163
- playerActions.toggleMute();
164
- };
165
-
166
69
  const toggleFavorite = () => {
167
70
  isFavorite.value = !isFavorite.value;
168
71
  // Implement favorite track logic here
169
72
  };
170
73
 
74
+ const openFullPlayer = () => {
75
+ playerActions.toggleFullPlayer();
76
+ };
77
+
171
78
  const getArtistName = (track) => {
172
79
  if (!track) return 'Unknown Artist';
173
80
 
@@ -208,6 +115,12 @@ const getArtistName = (track) => {
208
115
  align-items: center;
209
116
  gap: 12px;
210
117
  min-width: 0;
118
+ cursor: pointer;
119
+ transition: opacity 0.2s ease;
120
+ }
121
+
122
+ .track-info:hover {
123
+ opacity: 0.8;
211
124
  }
212
125
 
213
126
  .track-image {
@@ -305,111 +218,12 @@ const getArtistName = (track) => {
305
218
  gap: 16px;
306
219
  }
307
220
 
308
- .control-btn {
309
- background: none;
310
- border: none;
311
- color: rgb(var(--grey));
312
- cursor: pointer;
313
- padding: 8px;
314
- border-radius: 50%;
315
- transition: all 0.2s ease;
316
- display: flex;
317
- align-items: center;
318
- justify-content: center;
319
- }
320
-
321
- .control-icon {
322
- width: 16px;
323
- height: 16px;
324
- }
325
-
326
- .control-btn.primary {
327
- background: rgb(var(--second));
328
- color: rgb(var(--white));
329
- width: 32px;
330
- height: 32px;
331
- }
332
-
333
- .play-icon {
334
- width: 14px;
335
- height: 14px;
336
- fill: rgb(var(--white));
337
- }
338
-
339
- .control-btn.primary:hover {
340
- background: rgb(var(--second));
341
- transform: scale(1.06);
342
- }
343
-
344
- .control-btn.secondary:hover {
345
- color: rgb(var(--white));
346
- background: rgba(var(--black),0.1);
347
- }
348
-
349
- .control-btn.secondary:hover .control-icon {
350
- fill: rgb(var(--white));
351
- }
352
-
353
- .control-btn.active {
354
- color: rgb(var(--main));
355
- background: rgba(var(--second),0.1);
356
- }
357
-
358
- .control-btn.active .control-icon {
359
- fill: rgb(var(--main));
360
- }
361
-
362
- .control-btn.active:hover {
363
- color: rgb(var(--main));
364
- opacity: 0.8;
365
- background: rgba(var(--second),0.2);
366
- }
367
-
368
221
  /* Progress Section */
369
222
  .progress-section {
370
223
  width: 100%;
371
224
  max-width: 600px;
372
225
  }
373
226
 
374
- /* Volume Section */
375
- .volume-section {
376
- display: flex;
377
- align-items: center;
378
- gap: 12px;
379
- justify-content: flex-end;
380
- }
381
-
382
- .volume-btn {
383
- background: none;
384
- border: none;
385
- color: rgb(var(--grey));
386
- cursor: pointer;
387
- padding: 8px;
388
- border-radius: 50%;
389
- transition: all 0.2s ease;
390
- display: flex;
391
- align-items: center;
392
- justify-content: center;
393
- }
394
-
395
- .volume-icon {
396
- width: 16px;
397
- height: 16px;
398
- }
399
-
400
- .volume-btn:hover {
401
- color: rgb(var(--white));
402
- background: rgba(var(--white),0.1);
403
- }
404
-
405
- .volume-btn:hover .volume-icon {
406
- fill: rgb(var(--white));
407
- }
408
-
409
- .volume-slider {
410
- width: 100px;
411
- }
412
-
413
227
  /* Responsive Design */
414
228
  @media (max-width: 768px) {
415
229
  .player {
@@ -428,15 +242,6 @@ const getArtistName = (track) => {
428
242
  order: 2;
429
243
  }
430
244
 
431
- .volume-section {
432
- order: 3;
433
- justify-content: center;
434
- }
435
-
436
- .volume-slider {
437
- width: 120px;
438
- }
439
-
440
245
  .progress-section {
441
246
  max-width: 100%;
442
247
  }
@@ -0,0 +1,112 @@
1
+ <!-- components/player/PlayerControls.vue -->
2
+ <template>
3
+ <div class="flex-nowrap flex gap-thin flex-v-center">
4
+ <!-- Shuffle -->
5
+ <Button
6
+ @click="playerActions.toggleShuffle()"
7
+ class="control-btn secondary"
8
+ :class="{ active: playerState.shuffle }"
9
+ :showLoader="false"
10
+ :showSucces="false"
11
+ >
12
+ <IconShuffle fill="rgb(var(--black))" class="control-icon"/>
13
+ </Button>
14
+
15
+ <!-- Previous -->
16
+ <Button
17
+ @click="playerActions.playPrevious()"
18
+ class="control-btn secondary"
19
+ :showLoader="false"
20
+ :showSucces="false"
21
+ >
22
+ <IconPrevious fill="rgb(var(--black))" class="control-icon"/>
23
+ </Button>
24
+
25
+ <!-- Play/Pause -->
26
+ <Button
27
+ @click="playerActions.togglePlay()"
28
+ class="control-btn primary"
29
+ :showLoader="false"
30
+ :showSucces="false"
31
+ >
32
+ <div
33
+ :class="{'paused': !playerState.isPlaying}"
34
+ class="play-icon pauseplay-btn"
35
+ >
36
+ <div class="radius-small d1"></div>
37
+ <div class="radius-small d2"></div>
38
+ </div>
39
+ </Button>
40
+
41
+ <!-- Next -->
42
+ <Button
43
+ @click="playerActions.playNext()"
44
+ class="control-btn secondary"
45
+ :showLoader="false"
46
+ :showSucces="false"
47
+ >
48
+ <IconNext fill="rgb(var(--black))" class="control-icon"/>
49
+ </Button>
50
+
51
+ <!-- Repeat -->
52
+ <Button
53
+ @click="playerActions.toggleRepeat()"
54
+ class="control-btn secondary"
55
+ :class="{ active: playerState.repeat }"
56
+ :showLoader="false"
57
+ :showSucces="false"
58
+ >
59
+ <IconRepeat fill="rgb(var(--black))" class="control-icon"/>
60
+ </Button>
61
+ </div>
62
+ </template>
63
+
64
+ <script setup>
65
+ import Button from '@martyrs/src/components/Button/Button.vue';
66
+ import IconPrevious from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';
67
+ import IconNext from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';
68
+ import IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';
69
+ import IconRepeat from '@martyrs/src/modules/icons/navigation/IconRefresh.vue';
70
+ import { state as playerState, actions as playerActions } from '../../store/player.js';
71
+ </script>
72
+
73
+ <style scoped>
74
+ .pauseplay-btn {
75
+ --bars-anim-duration: 300ms;
76
+ --clip-anim-duration: 150ms;
77
+ position: relative;
78
+ background-color: transparent;
79
+ border: none;
80
+ outline: none;
81
+ -webkit-tap-highlight-color: transparent;
82
+ transition: clip-path ease-out var(--clip-anim-duration);
83
+ clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0);
84
+ }
85
+
86
+ .pauseplay-btn.paused {
87
+ clip-path: polygon(0 0, 0 100%, 100% 50%, 100% 50%);
88
+ }
89
+
90
+ .pauseplay-btn div {
91
+ position: absolute;
92
+ top: 0;
93
+ width: 30%;
94
+ height: 100%;
95
+ background: white;
96
+ transition: transform ease-out var(--bars-anim-duration);
97
+ }
98
+
99
+ .pauseplay-btn.paused div {
100
+ transform: scaleX(2);
101
+ }
102
+
103
+ .pauseplay-btn div.d1 {
104
+ left: 0;
105
+ transform-origin: left;
106
+ }
107
+
108
+ .pauseplay-btn div.d2 {
109
+ right: 0;
110
+ transform-origin: right;
111
+ }
112
+ </style>