@ozdao/martyrs 0.2.571 → 0.2.574

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 (819) hide show
  1. package/dist/_virtual/dayjs.min.js +1 -1
  2. package/dist/_virtual/weekOfYear.js +1 -1
  3. package/dist/builder.js +1194 -45
  4. package/dist/loader.js +30 -0
  5. package/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +1173 -1191
  6. package/dist/martyrs/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +94 -112
  7. package/dist/martyrs/dist/main-BfEQkhXS.js.map +1 -0
  8. package/dist/martyrs/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +3 -3
  9. package/dist/martyrs/dist/{web-CH5wzMHy.js.map → web-BqTV9va1.js.map} +1 -1
  10. package/dist/martyrs/node_modules/.pnpm/{@capacitor_core@7.0.1 → @capacitor_core@7.4.4}/node_modules/@capacitor/core/dist/index.js +2 -1
  11. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
  12. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js +1 -1
  13. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js.map +1 -1
  14. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js +1 -1
  15. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js.map +1 -1
  16. 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
  17. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  18. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  19. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/dayjs.min.js +1 -1
  20. package/dist/martyrs/node_modules/dayjs/dayjs.min.js.map +1 -0
  21. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  22. package/dist/martyrs/node_modules/dayjs/plugin/weekOfYear.js.map +1 -0
  23. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  24. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  25. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  26. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  27. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
  28. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  29. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
  30. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  31. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  32. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  33. package/dist/martyrs/src/components/Block/Block.vue.js +2 -2
  34. package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
  35. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
  36. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  38. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +6 -6
  39. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  40. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +2 -2
  41. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  42. package/dist/martyrs/src/components/Chips/Chips.vue.js +2 -2
  43. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +5 -5
  44. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  45. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +4 -4
  46. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  47. package/dist/martyrs/src/components/EditImages/{EditImages.vue.js → EditImages.vue2.js} +3 -3
  48. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
  49. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js +3 -3
  51. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  52. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  53. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  54. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  55. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  56. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +1 -1
  57. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -1
  58. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +3 -3
  59. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
  60. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  61. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  62. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  63. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  64. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  65. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  66. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
  67. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  68. package/dist/martyrs/src/components/Radio/Radio.vue.js +1 -1
  69. package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
  70. package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
  71. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  72. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
  73. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
  74. package/dist/martyrs/src/components/Table/Table.vue.js +3 -3
  75. package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
  76. package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
  77. package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
  78. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
  79. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -0
  80. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +4 -4
  81. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
  82. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +4 -4
  83. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  84. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  85. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +4 -4
  86. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  88. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  90. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +7 -7
  92. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  96. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  97. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  98. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  99. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  100. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
  101. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  102. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  103. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  104. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +3 -3
  105. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  106. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  107. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  108. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +7 -7
  109. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
  110. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +1 -1
  111. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  112. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
  113. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +4 -4
  114. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -6
  116. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +1 -1
  118. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +2 -2
  120. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  121. package/dist/martyrs/src/modules/community/components/blocks/Activity.vue.js +7 -7
  122. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  123. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  124. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +4 -4
  125. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  126. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +10 -10
  127. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  128. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  129. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  130. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +2 -2
  132. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +3 -3
  134. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  136. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js +1 -1
  137. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js.map +1 -1
  138. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  139. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
  140. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  141. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  142. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js +1 -1
  143. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js.map +1 -1
  144. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  145. package/dist/martyrs/src/modules/core/views/classes/core.app.js +2 -1
  146. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  147. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js +2 -2
  148. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +9 -9
  150. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js +2 -2
  152. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js.map +1 -1
  153. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  154. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  156. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js +1 -1
  157. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js.map +1 -1
  158. package/dist/martyrs/src/modules/core/views/components/elements/PhotoStack.vue.js +3 -3
  159. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +25 -5
  160. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +4 -4
  162. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +11 -11
  164. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js +1 -1
  166. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js +16 -16
  168. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js.map +1 -1
  169. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +7 -7
  170. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +1 -1
  172. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +23 -23
  174. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  175. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +3 -3
  176. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +7 -7
  178. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  179. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  180. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  181. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +2 -2
  182. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  183. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  184. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js +2 -2
  185. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js.map +1 -1
  186. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js +3 -3
  187. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js.map +1 -1
  188. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +2 -2
  189. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js.map +1 -1
  190. package/dist/martyrs/src/modules/core/views/store/core.store.js +29 -47
  191. package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
  192. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +21 -2
  193. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  194. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +5 -5
  195. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  196. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js +3 -3
  197. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js.map +1 -1
  198. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
  199. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  200. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +18 -18
  201. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  202. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +7 -7
  203. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  204. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  205. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  206. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
  207. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  208. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +5 -5
  209. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
  210. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
  211. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
  212. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  213. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
  214. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +1 -1
  216. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  217. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  218. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  220. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  221. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +4 -4
  222. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
  223. package/dist/martyrs/src/modules/icons/navigation/IconSort.vue.js +4 -4
  224. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +7 -7
  225. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  226. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  227. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  228. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
  229. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  230. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  231. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  232. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +10 -10
  233. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  234. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +5 -5
  235. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  236. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
  237. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  238. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  239. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  240. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  241. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  242. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +2 -2
  243. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
  244. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
  245. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  246. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +2 -2
  247. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
  248. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js +3 -3
  249. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
  250. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +6 -6
  251. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js.map +1 -1
  252. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +4 -4
  253. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  254. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +2 -2
  255. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -1
  256. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +5 -5
  257. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  258. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +4 -4
  259. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  260. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +3 -3
  261. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  262. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +5 -5
  263. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  264. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +5 -5
  265. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  266. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +8 -8
  267. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
  268. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +5 -5
  269. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
  270. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +7 -7
  271. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  272. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +2 -2
  273. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  274. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +13 -13
  275. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  276. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +23 -23
  277. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  278. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +8 -8
  279. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  280. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +10 -13
  281. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  282. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +9 -9
  283. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  284. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +26 -26
  285. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  286. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +17 -17
  287. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  288. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +26 -26
  289. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  290. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  291. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +8 -8
  292. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/music/music.client.js +6 -6
  294. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  295. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
  296. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  297. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  298. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  299. package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
  300. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +1 -1
  301. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +2 -2
  302. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +2 -2
  303. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +9 -9
  304. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
  305. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +5 -5
  306. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  307. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +9 -9
  308. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  309. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +5 -5
  310. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  311. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js +2 -2
  312. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js.map +1 -1
  313. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +1 -1
  314. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +3 -3
  316. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  317. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  318. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
  319. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +3 -3
  320. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  322. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +17 -17
  323. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  324. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +2 -2
  325. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  326. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +4 -4
  327. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  328. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
  329. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  330. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +3 -3
  331. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
  333. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
  334. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +3 -3
  335. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  336. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  337. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +3 -3
  338. package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -1
  339. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
  340. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
  341. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  342. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js +8 -8
  343. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js.map +1 -1
  344. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
  345. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +3 -3
  346. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  348. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  349. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  350. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
  351. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
  352. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  353. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  354. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  355. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +6 -6
  356. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  357. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  358. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  359. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
  360. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  361. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +4 -4
  362. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
  363. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  364. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  365. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  366. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +3 -3
  367. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
  368. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +5 -5
  369. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  370. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  371. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  372. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  373. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +4 -4
  374. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  375. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +3 -3
  376. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  377. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +5 -5
  378. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  379. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +3 -3
  380. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  381. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +2 -2
  382. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  383. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +5 -5
  384. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js.map +1 -1
  385. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +2 -2
  386. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  387. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +3 -3
  388. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  389. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +1 -1
  390. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  391. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  392. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  393. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  394. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +7 -7
  395. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  396. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +8 -8
  397. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  398. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +12 -12
  399. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  400. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +4 -4
  401. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
  402. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +6 -6
  403. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  404. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  405. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  406. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +9 -9
  407. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  408. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
  409. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  410. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
  411. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  412. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +2 -2
  413. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  414. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +6 -6
  415. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  416. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js +1 -1
  417. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js.map +1 -1
  418. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/DateLabel.vue.js +1 -1
  419. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +2 -2
  420. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  421. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +8 -8
  422. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  423. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js +1 -1
  424. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map +1 -1
  425. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  426. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  427. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +6 -6
  428. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  429. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js +3 -3
  430. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js.map +1 -1
  431. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  432. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  433. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +5 -5
  434. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  435. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
  436. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
  437. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
  438. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
  439. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +6 -6
  440. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  441. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  442. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  443. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +3 -3
  444. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  445. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +5 -5
  446. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js.map +1 -1
  447. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js +5 -5
  448. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +1 -1
  449. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +5 -5
  450. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +1 -1
  451. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +2 -2
  452. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +1 -1
  453. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +4 -4
  454. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
  455. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +12 -12
  456. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +1 -1
  457. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +4 -4
  458. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
  459. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +23 -23
  460. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  461. package/dist/martyrs.css +1 -1
  462. package/dist/martyrs.es.js +1 -1
  463. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  464. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  465. package/dist/style.css +194 -202
  466. package/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +1 -1
  467. package/package.json +6 -8
  468. package/src/builder/modes/ssr.prod.js +1 -0
  469. package/src/builder/modes/ssr.rspack.dev.js +13 -6
  470. package/src/builder/rspack/rspack.config.base.js +7 -0
  471. package/src/builder/rspack/rspack.config.ssr.client.js +19 -44
  472. package/src/builder/templates/page.js +21 -0
  473. package/src/components/Block/Block.vue +1 -1
  474. package/src/components/BottomSheet/BottomSheet.vue +1 -1
  475. package/src/components/Calendar/Calendar.vue +5 -5
  476. package/src/components/Checkbox/Checkbox.vue +2 -2
  477. package/src/components/Chips/Chips.vue +2 -2
  478. package/src/components/Completion/Completion.vue +2 -2
  479. package/src/components/Countdown/Countdown.vue +5 -5
  480. package/src/components/DatePicker/DatePicker.vue +4 -4
  481. package/src/components/EditImages/EditImages.vue +1 -1
  482. package/src/components/Feed/Feed.old.vue +1 -1
  483. package/src/components/Feed/Feed.vue +1 -1
  484. package/src/components/FieldBig/FieldBig.vue +2 -2
  485. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  486. package/src/components/FieldTags/BlockTags.vue +1 -1
  487. package/src/components/Loader/Loader.vue +1 -1
  488. package/src/components/Menu/MenuItem.vue +2 -2
  489. package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
  490. package/src/components/Radio/Radio.vue +1 -1
  491. package/src/components/Select/Select.vue +1 -1
  492. package/src/components/Table/Table.vue +2 -2
  493. package/src/components/Text/Text.vue +1 -1
  494. package/src/components/UploadImage/UploadImage.vue +2 -2
  495. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +3 -3
  496. package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
  497. package/src/configurator/components/pages/Styles.vue +2 -2
  498. package/src/jit/.claude/settings.local.json +10 -0
  499. package/src/jit/CLAUDE.md +387 -0
  500. package/src/jit/core.js +274 -0
  501. package/src/jit/extractor.js +140 -0
  502. package/src/jit/index.js +19 -0
  503. package/src/jit/loader.js +46 -0
  504. package/src/jit/plugin.js +209 -0
  505. package/src/jit/rules.js +474 -0
  506. package/src/jit/variants.js +128 -0
  507. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  508. package/src/modules/auth/views/components/blocks/ProfileCard.vue +4 -4
  509. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  510. package/src/modules/auth/views/components/pages/EnterPassword.vue +2 -2
  511. package/src/modules/auth/views/components/pages/Profile.vue +5 -5
  512. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +1 -1
  513. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +2 -2
  514. package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
  515. package/src/modules/auth/views/components/pages/SignIn.vue +3 -3
  516. package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
  517. package/src/modules/auth/views/components/pages/UserDashboard.vue +3 -3
  518. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  519. package/src/modules/auth/views/components/sections/ProfileCompletion.vue +2 -2
  520. package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +7 -7
  521. package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
  522. package/src/modules/backoffice/components/admin/Backcalls.vue +1 -1
  523. package/src/modules/backoffice/components/admin/FastOrders.vue +1 -1
  524. package/src/modules/backoffice/components/admin/ProductEdit.vue +2 -2
  525. package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
  526. package/src/modules/backoffice/components/admin/Users.vue +2 -2
  527. package/src/modules/backoffice/components/pages/Dashboard.vue +4 -4
  528. package/src/modules/backoffice/components/partials/Sidebar.vue +5 -5
  529. package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
  530. package/src/modules/chats/components/sections/ChatWindow.vue +2 -2
  531. package/src/modules/community/components/blocks/Activity.vue +7 -7
  532. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  533. package/src/modules/community/components/blocks/FooterBlogpost.vue +4 -4
  534. package/src/modules/community/components/layouts/Community.vue +10 -10
  535. package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
  536. package/src/modules/community/components/pages/Posts.vue +2 -2
  537. package/src/modules/community/components/sections/Comment.vue +2 -2
  538. package/src/modules/constructor/components/elements/Audio.vue +1 -1
  539. package/src/modules/constructor/components/elements/Caption.vue +1 -1
  540. package/src/modules/constructor/components/elements/Embed.vue +1 -1
  541. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  542. package/src/modules/constructor/components/elements/Video.vue +1 -1
  543. package/src/modules/core/views/classes/core.app.js +2 -1
  544. package/src/modules/core/views/components/blocks/BlockSorting.vue +2 -2
  545. package/src/modules/core/views/components/blocks/CardFooter.vue +4 -4
  546. package/src/modules/core/views/components/blocks/CardHeader.vue +7 -7
  547. package/src/modules/core/views/components/blocks/HelpCard.vue +1 -1
  548. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  549. package/src/modules/core/views/components/elements/ButtonDate.vue +1 -1
  550. package/src/modules/core/views/components/elements/PhotoStack.vue +3 -3
  551. package/src/modules/core/views/components/layouts/App.vue +28 -4
  552. package/src/modules/core/views/components/layouts/Client.vue +4 -4
  553. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +15 -15
  554. package/src/modules/core/views/components/partials/CitySelection.vue +1 -1
  555. package/src/modules/core/views/components/partials/Footer.centered.vue +17 -17
  556. package/src/modules/core/views/components/partials/Footer.vue +18 -18
  557. package/src/modules/core/views/components/partials/Header.vue +10 -11
  558. package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
  559. package/src/modules/core/views/components/partials/Navigation.vue +20 -19
  560. package/src/modules/core/views/components/partials/NavigationBar.vue +3 -3
  561. package/src/modules/core/views/components/partials/Sidebar.vue +6 -6
  562. package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
  563. package/src/modules/core/views/components/sections/filters/FilterCheckbox.vue +1 -1
  564. package/src/modules/core/views/components/sections/filters/FilterDateRange.vue +2 -2
  565. package/src/modules/core/views/components/sections/filters/FilterPrice.vue +2 -2
  566. package/src/modules/core/views/components/sections/filters/FilterRange.vue +2 -2
  567. package/src/modules/core/views/store/core.store.js +36 -60
  568. package/src/modules/core/views/utils/vue-app-renderer.js +31 -1
  569. package/src/modules/events/components/blocks/CardEvent.vue +6 -6
  570. package/src/modules/events/components/blocks/CardEventShort.vue +3 -3
  571. package/src/modules/events/components/pages/EditEvent.vue +1 -1
  572. package/src/modules/events/components/pages/EditEventTickets.vue +18 -18
  573. package/src/modules/events/components/pages/Event.vue +5 -5
  574. package/src/modules/events/components/pages/Events.vue +2 -2
  575. package/src/modules/events/components/pages/EventsBackoffice.vue +2 -2
  576. package/src/modules/events/components/sections/EditTickets.vue +5 -5
  577. package/src/modules/events/components/sections/EventsHot.vue +2 -2
  578. package/src/modules/events/components/sections/List.vue +1 -1
  579. package/src/modules/events/components/sections/SelectDate.vue +1 -1
  580. package/src/modules/gallery/components/pages/Gallery.vue +1 -1
  581. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  582. package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +14 -14
  583. package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +13 -13
  584. package/src/modules/governance/reactcode/src/components/EmptyState.tsx +2 -2
  585. package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +1 -1
  586. package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +1 -1
  587. package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +2 -2
  588. package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +6 -6
  589. package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +18 -18
  590. package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +7 -7
  591. package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +9 -9
  592. package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +4 -4
  593. package/src/modules/governance/reactcode/src/components/TaskCard.tsx +1 -1
  594. package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
  595. package/src/modules/governance/reactcode/src/components/VoteForm.tsx +6 -6
  596. package/src/modules/governance/reactcode/src/components/VotingCard.tsx +2 -2
  597. package/src/modules/governance/reactcode/src/components/VotingResults.tsx +15 -15
  598. package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +41 -41
  599. package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +8 -8
  600. package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +6 -6
  601. package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +9 -9
  602. package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +14 -14
  603. package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +44 -44
  604. package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +8 -8
  605. package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +3 -3
  606. package/src/modules/governance/reactcode-2/App.tsx +28 -0
  607. package/src/modules/governance/reactcode-2/README.md +20 -0
  608. package/src/modules/governance/reactcode-2/components/Charts.tsx +58 -0
  609. package/src/modules/governance/reactcode-2/components/Layout.tsx +457 -0
  610. package/src/modules/governance/reactcode-2/components/TaskPage.tsx +325 -0
  611. package/src/modules/governance/reactcode-2/components/VoteBadge.tsx +27 -0
  612. package/src/modules/governance/reactcode-2/components/VotingsFeedPage.tsx +328 -0
  613. package/src/modules/governance/reactcode-2/constants.ts +154 -0
  614. package/src/modules/governance/reactcode-2/index.html +70 -0
  615. package/src/modules/governance/reactcode-2/index.tsx +15 -0
  616. package/src/modules/governance/reactcode-2/metadata.json +5 -0
  617. package/src/modules/governance/reactcode-2/package.json +23 -0
  618. package/src/modules/governance/reactcode-2/pnpm-lock.yaml +1410 -0
  619. package/src/modules/governance/reactcode-2/tsconfig.json +29 -0
  620. package/src/modules/governance/reactcode-2/types.ts +48 -0
  621. package/src/modules/governance/reactcode-2/vite.config.ts +23 -0
  622. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +10 -10
  623. package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +15 -15
  624. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +9 -9
  625. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +11 -11
  626. package/src/modules/governance/views/components/layouts/Governance.vue +1 -1
  627. package/src/modules/governance/views/components/pages/Governance.vue +3 -3
  628. package/src/modules/governance/views/components/pages/Initiative.vue +112 -112
  629. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +31 -31
  630. package/src/modules/governance/views/components/pages/Initiatives.vue +20 -22
  631. package/src/modules/governance/views/components/pages/Milestone.vue +25 -25
  632. package/src/modules/governance/views/components/pages/Roadmap.vue +47 -47
  633. package/src/modules/governance/views/components/pages/Task.vue +106 -106
  634. package/src/modules/governance/views/components/pages/Tasks.vue +16 -16
  635. package/src/modules/governance/views/components/pages/Voting.vue +23 -23
  636. package/src/modules/governance/views/components/pages/Votings.vue +7 -7
  637. package/src/modules/governance/views/components/partials/EmptyState.vue +3 -3
  638. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +11 -11
  639. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +4 -4
  640. package/src/modules/governance/views/components/partials/VoteForm.vue +14 -14
  641. package/src/modules/governance/views/components/partials/VotingResults.vue +22 -22
  642. package/src/modules/icons/components/IconSearchPopup.vue +3 -3
  643. package/src/modules/icons/entities/IconCash.vue +23 -0
  644. package/src/modules/icons/navigation/IconSort.vue +4 -4
  645. package/src/modules/icons/pages/IconsPage.vue +7 -7
  646. package/src/modules/inventory/components/forms/AdjustmentForm.vue +3 -3
  647. package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
  648. package/src/modules/inventory/components/forms/StockAlertsForm.vue +1 -1
  649. package/src/modules/inventory/components/pages/Inventory.vue +10 -10
  650. package/src/modules/inventory/components/pages/InventoryEdit.vue +6 -6
  651. package/src/modules/landing/components/blocks/MapBlock.vue +2 -2
  652. package/src/modules/landing/components/sections/Examples.vue +1 -1
  653. package/src/modules/landing/components/sections/InstagramSection.vue +1 -1
  654. package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
  655. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  656. package/src/modules/landing/components/sections/SectionFocus.vue +2 -2
  657. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  658. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  659. package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
  660. package/src/modules/landing/components/sections/SectionJoinUs.vue +2 -2
  661. package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
  662. package/src/modules/landing/components/sections/SectionOverview.vue +2 -2
  663. package/src/modules/landing/components/sections/SectionRoadmap.vue +2 -2
  664. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +8 -8
  665. package/src/modules/marketplace/views/components/pages/Marketplace.vue +5 -5
  666. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
  667. package/src/modules/music/components/SidebarMusic.vue +11 -11
  668. package/src/modules/music/components/blocks/ActionButtons.vue +2 -2
  669. package/src/modules/music/components/cards/AlbumCard.vue +4 -4
  670. package/src/modules/music/components/cards/ArtistCard.vue +3 -8
  671. package/src/modules/music/components/cards/ArtistCardSmall.vue +2 -2
  672. package/src/modules/music/components/cards/PlaylistCard.vue +4 -4
  673. package/src/modules/music/components/cards/TrackListCard.vue +5 -5
  674. package/src/modules/music/components/forms/AlbumForm.vue +8 -8
  675. package/src/modules/music/components/forms/ArtistForm.vue +4 -4
  676. package/src/modules/music/components/forms/PlaylistForm.vue +7 -7
  677. package/src/modules/music/components/forms/SearchForm.vue +1 -1
  678. package/src/modules/music/components/forms/TrackForm.vue +13 -13
  679. package/src/modules/music/components/pages/Album.vue +22 -22
  680. package/src/modules/music/components/pages/Artist.vue +7 -7
  681. package/src/modules/music/components/pages/MusicHome.vue +13 -18
  682. package/src/modules/music/components/pages/MusicLibrary.vue +9 -9
  683. package/src/modules/music/components/pages/Playlist.vue +25 -25
  684. package/src/modules/music/components/pages/SearchResults.vue +15 -15
  685. package/src/modules/music/components/pages/Track.vue +25 -25
  686. package/src/modules/music/components/player/FullscreenPlayer.vue +5 -5
  687. package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
  688. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  689. package/src/modules/orders/components/blocks/CardApplication.vue +1 -1
  690. package/src/modules/orders/components/blocks/CardCustomer.vue +1 -1
  691. package/src/modules/orders/components/blocks/CardOrder.vue +9 -9
  692. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +5 -5
  693. package/src/modules/orders/components/blocks/CardOrderItem.vue +9 -9
  694. package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
  695. package/src/modules/orders/components/blocks/CardOrderVar1.vue +4 -4
  696. package/src/modules/orders/components/blocks/StatusHistory.vue +3 -3
  697. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
  698. package/src/modules/orders/components/elements/PriceTotal.vue +3 -3
  699. package/src/modules/orders/components/forms/FormApplicationDetails.vue +2 -2
  700. package/src/modules/orders/components/forms/FormCustomerDetails.vue +3 -3
  701. package/src/modules/orders/components/pages/Favorites.vue +1 -1
  702. package/src/modules/orders/components/pages/OrderBackoffice.vue +15 -15
  703. package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
  704. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +4 -4
  705. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  706. package/src/modules/orders/components/partials/ShopCart.vue +2 -2
  707. package/src/modules/orders/components/sections/ApplicationDetails.vue +2 -2
  708. package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
  709. package/src/modules/orders/components/sections/CustomerDetails.vue +2 -2
  710. package/src/modules/orders/components/sections/Succes.vue +4 -4
  711. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  712. package/src/modules/organizations/components/blocks/CardOrganization.vue +4 -4
  713. package/src/modules/organizations/components/blocks/Contacts.vue +8 -8
  714. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  715. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +3 -3
  716. package/src/modules/organizations/components/forms/DepartmentForm.vue +1 -1
  717. package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
  718. package/src/modules/organizations/components/pages/Department.vue +2 -2
  719. package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
  720. package/src/modules/organizations/components/pages/Members.vue +1 -1
  721. package/src/modules/organizations/components/pages/Organization.new.vue +8 -8
  722. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  723. package/src/modules/organizations/components/pages/OrganizationDocuments.vue +2 -2
  724. package/src/modules/organizations/components/pages/Organizations.vue +3 -3
  725. package/src/modules/organizations/components/sections/Documents.vue +2 -2
  726. package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
  727. package/src/modules/organizations/components/sections/Unit.vue +1 -1
  728. package/src/modules/pages/views/components/blocks/CardPage.vue +2 -2
  729. package/src/modules/pages/views/components/pages/Page.vue +5 -5
  730. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  731. package/src/modules/products/components/blocks/CardPosition.vue +4 -4
  732. package/src/modules/products/components/blocks/CardProduct.vue +3 -3
  733. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -3
  734. package/src/modules/products/components/blocks/ProductImages.vue +2 -2
  735. package/src/modules/products/components/blocks/ProductVariants.vue +2 -2
  736. package/src/modules/products/components/elements/Image360.vue +2 -2
  737. package/src/modules/products/components/elements/Price.vue +2 -2
  738. package/src/modules/products/components/elements/QuantitySelector.vue +3 -3
  739. package/src/modules/products/components/elements/THC.vue +1 -1
  740. package/src/modules/products/components/forms/ReorderSettingsForm.vue +1 -1
  741. package/src/modules/products/components/forms/StockAuditForm.vue +2 -2
  742. package/src/modules/products/components/forms/StockHistoryView.vue +1 -1
  743. package/src/modules/products/components/pages/Categories.vue +1 -1
  744. package/src/modules/products/components/pages/CategoryEdit.vue +2 -2
  745. package/src/modules/products/components/pages/Product.vue +6 -6
  746. package/src/modules/products/components/pages/ProductEdit.vue +6 -6
  747. package/src/modules/products/components/pages/Products.vue +11 -11
  748. package/src/modules/products/components/sections/EditAttributes.vue +4 -4
  749. package/src/modules/products/components/sections/EditCategories.vue +1 -1
  750. package/src/modules/products/components/sections/EditDiscounts.vue +6 -6
  751. package/src/modules/products/components/sections/EditRecommended.vue +1 -1
  752. package/src/modules/products/components/sections/EditVariants.vue +8 -8
  753. package/src/modules/products/components/sections/FilterProducts.vue +3 -3
  754. package/src/modules/products/components/sections/ProductConfigurator.vue +2 -2
  755. package/src/modules/products/components/sections/ProductInformationSection.vue +10 -10
  756. package/src/modules/products/components/sections/ProductsRecommended.vue +2 -2
  757. package/src/modules/products/components/sections/SectionProduct.vue +7 -7
  758. package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +3 -3
  759. package/src/modules/rents/views/components/blocks/CardRent.vue +1 -1
  760. package/src/modules/rents/views/components/pages/Gant/DateLabel.vue +1 -1
  761. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +2 -2
  762. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +8 -8
  763. package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +1 -1
  764. package/src/modules/rents/views/components/pages/Rents.vue +1 -1
  765. package/src/modules/rents/views/components/pages/RentsEdit.vue +6 -6
  766. package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
  767. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  768. package/src/modules/spots/components/blocks/CardSpot.vue +4 -4
  769. package/src/modules/spots/components/blocks/SpotMemberModify.vue +1 -1
  770. package/src/modules/spots/components/layouts/Spots.vue +2 -2
  771. package/src/modules/spots/components/pages/Spot.vue +5 -5
  772. package/src/modules/spots/components/pages/SpotEdit.vue +2 -2
  773. package/src/modules/spots/components/pages/Spots.vue +3 -3
  774. package/src/modules/spots/components/sections/MapSection.vue +1 -1
  775. package/src/modules/spots/components/sections/WorktimeEdit.vue +4 -4
  776. package/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue +5 -5
  777. package/src/modules/wallet/views/components/blocks/CardDeposit.vue +5 -5
  778. package/src/modules/wallet/views/components/blocks/CashDeposit.vue +2 -2
  779. package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +4 -4
  780. package/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue +11 -11
  781. package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +4 -4
  782. package/src/modules/wallet/views/components/pages/Wallet.vue +22 -22
  783. package/src/styles/config.scss +193 -507
  784. package/src/styles/layout.scss +81 -1
  785. package/src/styles/reset.scss +2 -0
  786. package/src/styles/theme.scss +1 -8
  787. package/dist/martyrs/dist/main-BFvlam0J.js.map +0 -1
  788. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
  789. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
  790. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  791. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  792. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +0 -1
  793. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
  794. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  795. 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
  796. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  797. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js.map +0 -1
  798. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js.map +0 -1
  799. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
  800. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  801. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  802. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  803. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
  804. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  805. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -20
  806. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  807. package/src/modules/LAYOUT.MD +0 -767
  808. package/src/modules/STYLES.MD +0 -298
  809. package/src/modules/inventory/inventory.router.js +0 -72
  810. package/src/modules/products/products.router.js +0 -299
  811. package/src/styles/base/all.scss +0 -233
  812. package/src/styles/base/backgrounds.scss +0 -70
  813. package/src/styles/base/borders.scss +0 -407
  814. package/src/styles/base/scrolling.scss +0 -137
  815. package/src/styles/base/shadow_transitions_hover_refactor.scss +0 -158
  816. package/src/styles/base/transitions.scss +0 -109
  817. package/src/styles/responsive.scss +0 -152
  818. package/src/styles/typography.scss +0 -161
  819. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
@@ -18,34 +18,34 @@ import { state } from "../../../auth/views/store/auth.js";
18
18
  const _hoisted_1 = { class: "pd-medium" };
19
19
  const _hoisted_2 = { class: "h2 mn-b-medium" };
20
20
  const _hoisted_3 = { class: "bg-light pd-medium radius-medium" };
21
- const _hoisted_4 = { class: "cols-2-fit-content mobile:cols-1 gap-regular" };
21
+ const _hoisted_4 = { class: "cols-[fit-content(100%)_1fr] mobile:cols-1 gap-regular" };
22
22
  const _hoisted_5 = { class: "bg-light pd-medium radius-medium" };
23
23
  const _hoisted_6 = { class: "flex-nowrap flex-v-center flex gap-thin" };
24
- const _hoisted_7 = { class: "t-medium" };
24
+ const _hoisted_7 = { class: "fw-medium" };
25
25
  const _hoisted_8 = ["onClick"];
26
26
  const _hoisted_9 = { class: "flex-nowrap flex-v-center flex" };
27
27
  const _hoisted_10 = { class: "w-100" };
28
- const _hoisted_11 = { class: "t-medium" };
28
+ const _hoisted_11 = { class: "fw-medium" };
29
29
  const _hoisted_12 = {
30
30
  key: 0,
31
31
  class: "t-small t-transp"
32
32
  };
33
33
  const _hoisted_13 = { class: "flex-nowrap flex-v-center flex gap-thin" };
34
- const _hoisted_14 = { class: "t-medium" };
34
+ const _hoisted_14 = { class: "fw-medium" };
35
35
  const _hoisted_15 = ["onClick"];
36
36
  const _hoisted_16 = { class: "flex-nowrap flex-v-center flex" };
37
37
  const _hoisted_17 = { class: "w-100" };
38
- const _hoisted_18 = { class: "t-medium" };
38
+ const _hoisted_18 = { class: "fw-medium" };
39
39
  const _hoisted_19 = {
40
40
  key: 0,
41
41
  class: "t-small t-transp"
42
42
  };
43
43
  const _hoisted_20 = { class: "flex-nowrap flex-v-center flex gap-thin" };
44
- const _hoisted_21 = { class: "t-medium" };
44
+ const _hoisted_21 = { class: "fw-medium" };
45
45
  const _hoisted_22 = ["onClick"];
46
46
  const _hoisted_23 = { class: "flex-nowrap flex-v-center flex" };
47
47
  const _hoisted_24 = { class: "w-100" };
48
- const _hoisted_25 = { class: "t-medium" };
48
+ const _hoisted_25 = { class: "fw-medium" };
49
49
  const _hoisted_26 = {
50
50
  key: 0,
51
51
  class: "t-small t-transp"
@@ -338,7 +338,7 @@ const _sfc_main = {
338
338
  classSearch: "bg-white radius-small",
339
339
  classSelected: "bg-white pd-small radius-small",
340
340
  classDropdown: "bg-white pd-small radius-medium bs-small",
341
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
341
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
342
342
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
343
343
  }, {
344
344
  selected: withCtx(({ item, clear }) => [
@@ -346,7 +346,7 @@ const _sfc_main = {
346
346
  createElementVNode("span", _hoisted_7, toDisplayString(item?.name || item), 1),
347
347
  createElementVNode("button", {
348
348
  onClick: withModifiers(clear, ["stop"]),
349
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
349
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
350
350
  }, [
351
351
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
352
352
  ], 8, _hoisted_8)
@@ -403,7 +403,7 @@ const _sfc_main = {
403
403
  classSearch: "bg-white radius-small",
404
404
  classSelected: "bg-white pd-small radius-small",
405
405
  classDropdown: "bg-white pd-small radius-medium bs-small",
406
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
406
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
407
407
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
408
408
  }, {
409
409
  selected: withCtx(({ item, clear }) => [
@@ -411,7 +411,7 @@ const _sfc_main = {
411
411
  createElementVNode("span", _hoisted_14, toDisplayString(item?.title || item), 1),
412
412
  createElementVNode("button", {
413
413
  onClick: withModifiers(clear, ["stop"]),
414
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
414
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
415
415
  }, [
416
416
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
417
417
  ], 8, _hoisted_15)
@@ -468,7 +468,7 @@ const _sfc_main = {
468
468
  classSearch: "bg-white radius-small",
469
469
  classSelected: "bg-white pd-small radius-small",
470
470
  classDropdown: "bg-white pd-small radius-medium bs-small",
471
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
471
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
472
472
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
473
473
  }, {
474
474
  selected: withCtx(({ item, clear }) => [
@@ -476,7 +476,7 @@ const _sfc_main = {
476
476
  createElementVNode("span", _hoisted_21, toDisplayString(item?.name || item), 1),
477
477
  createElementVNode("button", {
478
478
  onClick: withModifiers(clear, ["stop"]),
479
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
479
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
480
480
  }, [
481
481
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
482
482
  ], 8, _hoisted_22)
@@ -1 +1 @@
1
- {"version":3,"file":"TrackForm.vue.js","sources":["../../../../../../../src/modules/music/components/forms/TrackForm.vue"],"sourcesContent":["<!-- components/forms/TrackForm.vue -->\n<template>\n <div class=\"pd-medium\">\n <h2 class=\"h2 mn-b-medium\">{{ editMode ? 'Edit Track' : 'Upload Track' }}</h2>\n \n <form @submit.prevent=\"submitForm\" class=\"cols-1 gap-regular\">\n <!-- Media Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Media</h3>\n \n <div class=\"cols-2-fit-content mobile:cols-1 gap-regular\">\n <!-- Track Cover -->\n <div>\n <p class=\"p-medium mn-b-small\">Cover Image</p>\n <UploadImage\n v-model:photo=\"form.coverUrl\"\n uploadPath=\"tracks/covers\"\n class=\"aspect-1x1 h-15r radius-small o-hidden mn-b-small\"\n @error=\"handleUploadError\"\n />\n </div>\n \n <!-- Audio File -->\n <div>\n <p class=\"p-medium mn-b-small\">Audio File</p>\n <Upload\n v-model:field=\"form.fileUrl\"\n @file-change=\"(url) => form.fileUrl = url\"\n type=\"file\"\n uploadPath=\"tracks/audio\"\n class=\"w-100 h-15r bg-white radius-small pd-small\"\n :validation=\"validationErrors.fileUrl\"\n />\n </div>\n </div>\n </div>\n \n <!-- Basic Info Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Basic Information</h3>\n \n <!-- Track Title -->\n <Field\n v-model:field=\"form.title\"\n label=\"Track Title\"\n placeholder=\"Enter track title\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validationErrors.title\"\n />\n \n <!-- URL -->\n <Field\n v-model:field=\"form.url\"\n label=\"URL\"\n placeholder=\"Leave blank for auto-generation based on the track title\"\n class=\"bg-white radius-small pd-small mn-b-small\"\n />\n\n <!-- Artist Selection -->\n \n\n \n \n <!-- Release Date -->\n <Field\n v-model:field=\"form.releaseDate\"\n label=\"Release Date\"\n type=\"date\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validationErrors.releaseDate\"\n />\n \n <!-- Duration -->\n <Field\n v-model:field=\"form.duration\"\n label=\"Duration (seconds)\"\n type=\"number\"\n placeholder=\"Track duration in seconds\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div> \n\n <Block title=\"Artist\">\n <BlockMultiselect\n v-model=\"form.artists\"\n placeholder=\"Search artists...\"\n :multiple=\"false\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => artistsActions.fetchArtists(options),\n state: artistsState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No artists found',\n description: 'Try different search terms or create a new artist',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected artist slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Artist item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.bio\" class=\"t-small t-transp\">{{ item.bio }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Album Selection -->\n <Block title=\"Album (Optional)\">\n <BlockMultiselect\n v-model=\"form.albums\"\n placeholder=\"Search albums...\"\n :multiple=\"false\"\n :transform=\"(item) => ({ _id: item._id, title: item.title })\"\n :store=\"{\n read: (options) => albumsActions.fetchAlbums(options),\n state: albumsState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No albums found',\n description: 'Try different search terms or create a new album',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.title\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected album slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.title || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Album item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.title }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n \n <!-- Genres Section -->\n <Block title=\"Genres\">\n <BlockMultiselect\n v-model=\"form.genres\"\n placeholder=\"Search genres...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => genresActions.fetchGenres(options),\n state: genresState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No genres found',\n description: 'Try different search terms or create a new genre',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected genres slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Genre item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n \n <!-- Content Settings Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Content Settings</h3>\n \n <Checkbox\n v-model:checkbox=\"form.isExplicit\"\n label=\"Explicit Content\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n \n <Checkbox\n v-model:checkbox=\"form.isPublic\"\n label=\"Public Track\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n \n \n <!-- Additional Info Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Additional Information</h3>\n \n <!-- Lyrics -->\n <Field\n v-model:field=\"form.lyrics\"\n label=\"Lyrics (Optional)\"\n type=\"textarea\"\n placeholder=\"Enter track lyrics\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Status Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Publishing Status</h3>\n \n <Select\n v-model:select=\"form.status\"\n :options=\"statusOptions\"\n label=\"Status\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Submit Button -->\n <div class=\"flex flex-justify-between\">\n <Button\n @click=\"router.go(-1)\"\n class=\"bg-grey-nano t-black\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"submitForm\"\n class=\"bg-main t-black\"\n :text=\"{\n success: editMode ? 'Updated!' : 'Uploaded!'\n }\"\n >\n {{ editMode ? 'Update Track' : 'Upload Track' }}\n </Button>\n </div>\n </form>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive, onMounted, watch } from 'vue';\nimport { useRouter, useRoute } from 'vue-router';\n\n// Import Martyrs components\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/core/views/components/blocks/BlockMultiselect.vue';\n\n// Import stores\nimport * as tracksStore from '../../store/tracks';\nimport * as artistsStore from '../../store/artists';\nimport * as albumsStore from '../../store/albums';\nimport * as genresStore from '../../store/genres';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nconst store = useStore();\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Store states and actions\nconst { state: artistsState, actions: artistsActions } = artistsStore;\nconst { state: albumsState, actions: albumsActions } = albumsStore;\nconst { state: genresState, actions: genresActions } = genresStore;\n\n// Props\nconst props = defineProps({\n editMode: {\n type: Boolean,\n default: false\n },\n url: {\n type: String,\n default: ''\n }\n});\n\n// Router and route\nconst router = useRouter();\nconst route = useRoute();\n\nconst emit = defineEmits(['uploaded']);\n\n// State\nconst form = reactive({\n title: '',\n artists: [],\n albums: [],\n genres: [],\n duration: 0,\n fileUrl: '',\n coverUrl: '',\n releaseDate: new Date().toISOString().split('T')[0],\n isExplicit: false,\n isPublic: true,\n lyrics: '',\n url: '',\n status: 'draft'\n});\n\nconst validationErrors = reactive({\n title: false,\n fileUrl: false,\n releaseDate: false\n});\n\n// Track if URL was manually entered\nconst urlManuallySet = ref(false);\n\n// Status options\nconst statusOptions = [\n 'draft',\n 'published',\n 'archived'\n];\n\n// Function to generate URL-friendly slug from text\nconst generateSlug = (text) => {\n if (!text) return '';\n return text\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, '') // Remove special characters\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/-+/g, '-') // Replace multiple hyphens with single\n .trim('-'); // Remove leading/trailing hyphens\n};\n\n// Watch for changes in track title to auto-generate URL\nwatch(() => form.title, (newTitle) => {\n // Only auto-generate if URL hasn't been manually set and we're not in edit mode\n if (!urlManuallySet.value && !props.editMode) {\n form.url = generateSlug(newTitle);\n }\n});\n\n// Watch for manual changes to URL field\nwatch(() => form.url, (newUrl, oldUrl) => {\n // If user manually changes URL, mark as manually set\n if (newUrl !== generateSlug(form.title)) {\n urlManuallySet.value = true;\n }\n});\n\nconst fetchTrack = async () => {\n if (!props.url) return;\n \n try {\n const fetchedTrack = await tracksStore.actions.fetchTrackByUrl(props.url);\n \n if (!fetchedTrack) {\n store.core.actions.setError({\n message: 'Track not found'\n });\n return;\n }\n \n // Update local track data\n Object.assign(form, {\n title: fetchedTrack.title || '',\n artists: fetchedTrack.artist ? [fetchedTrack.artist] : [],\n albums: fetchedTrack.album ? [fetchedTrack.album] : [],\n genres: fetchedTrack.genres || [],\n duration: fetchedTrack.duration || 0,\n fileUrl: fetchedTrack.fileUrl || '',\n coverUrl: fetchedTrack.coverUrl || '',\n releaseDate: fetchedTrack.releaseDate ? new Date(fetchedTrack.releaseDate).toISOString().split('T')[0] : '',\n isExplicit: fetchedTrack.isExplicit || false,\n isPublic: fetchedTrack.isPublic !== false,\n lyrics: fetchedTrack.lyrics || '',\n url: fetchedTrack.url || '',\n status: fetchedTrack.status || 'draft',\n _id: fetchedTrack._id\n });\n \n } catch (error) {\n console.error('Error fetching track:', error);\n store.core.actions.setError({\n message: 'Failed to load track details'\n });\n }\n};\n\nconst validateForm = () => {\n let isValid = true;\n \n // Validate title\n if (!form.title.trim()) {\n validationErrors.title = {\n message: 'Track title is required'\n };\n isValid = false;\n } else {\n validationErrors.title = false;\n }\n \n // Validate file URL\n if (!form.fileUrl) {\n validationErrors.fileUrl = {\n message: 'Audio file is required'\n };\n isValid = false;\n } else {\n validationErrors.fileUrl = false;\n }\n \n return isValid;\n};\n\nconst submitForm = async () => {\n if (!validateForm()) {\n return;\n }\n \n try {\n console.log('=== FORM DATA DEBUG ===');\n console.log('form.artists:', form.artists);\n console.log('form.albums:', form.albums);\n console.log('form.albums.length:', form.albums.length);\n console.log('form.albums[0]:', form.albums[0]);\n console.log('form.albums[0]?._id:', form.albums[0]?._id);\n \n // Prepare data for submission\n const formData = {\n ...form,\n artist: form.artists.length > 0 ? (form.artists[0]._id || form.artists[0]) : null,\n album: form.albums && form.albums._id ? form.albums._id : null,\n genre: form.genres.map(genre => genre._id || genre)\n };\n \n // Remove the original arrays/objects to avoid conflicts\n delete formData.artists;\n delete formData.albums;\n delete formData.genres;\n \n console.log('formData after preparation:', formData);\n console.log('formData.album:', formData.album);\n console.log('typeof formData.album:', typeof formData.album);\n \n // Add ownership data if creating new track\n if (!props.editMode) {\n formData.owner = {\n type: 'user',\n target: auth.state.user._id\n };\n formData.creator = {\n type: 'user',\n target: auth.state.user._id\n };\n }\n \n let result;\n if (props.editMode) {\n result = await tracksStore.actions.updateTrack(formData);\n } else {\n result = await tracksStore.actions.createTrack(formData);\n }\n \n // Navigate to track detail page\n setTimeout(() => {\n router.push({\n name: 'track',\n params: { url: result.url }\n });\n }, 1000);\n \n } catch (error) {\n console.error('Error saving track:', error);\n store.core.actions.setError({\n message: 'Failed to save track'\n });\n }\n};\nconst handleUploadError = (error) => {\n console.error('Upload error:', error);\n store.core.actions.setError({\n message: 'Error uploading file'\n });\n};\n\n// Lifecycle hooks\nonMounted(async () => {\n if (props.editMode) {\n await fetchTrack();\n // Mark URL as manually set in edit mode to prevent auto-generation\n urlManuallySet.value = true;\n }\n});\n</script>\n"],"names":["artistsStore","albumsStore","genresStore","tracksStore.actions","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"TrackForm.vue.js","sources":["../../../../../../../src/modules/music/components/forms/TrackForm.vue"],"sourcesContent":["<!-- components/forms/TrackForm.vue -->\n<template>\n <div class=\"pd-medium\">\n <h2 class=\"h2 mn-b-medium\">{{ editMode ? 'Edit Track' : 'Upload Track' }}</h2>\n \n <form @submit.prevent=\"submitForm\" class=\"cols-1 gap-regular\">\n <!-- Media Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Media</h3>\n \n <div class=\"cols-[fit-content(100%)_1fr] mobile:cols-1 gap-regular\">\n <!-- Track Cover -->\n <div>\n <p class=\"p-medium mn-b-small\">Cover Image</p>\n <UploadImage\n v-model:photo=\"form.coverUrl\"\n uploadPath=\"tracks/covers\"\n class=\"aspect-1x1 h-15r radius-small o-hidden mn-b-small\"\n @error=\"handleUploadError\"\n />\n </div>\n \n <!-- Audio File -->\n <div>\n <p class=\"p-medium mn-b-small\">Audio File</p>\n <Upload\n v-model:field=\"form.fileUrl\"\n @file-change=\"(url) => form.fileUrl = url\"\n type=\"file\"\n uploadPath=\"tracks/audio\"\n class=\"w-100 h-15r bg-white radius-small pd-small\"\n :validation=\"validationErrors.fileUrl\"\n />\n </div>\n </div>\n </div>\n \n <!-- Basic Info Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Basic Information</h3>\n \n <!-- Track Title -->\n <Field\n v-model:field=\"form.title\"\n label=\"Track Title\"\n placeholder=\"Enter track title\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validationErrors.title\"\n />\n \n <!-- URL -->\n <Field\n v-model:field=\"form.url\"\n label=\"URL\"\n placeholder=\"Leave blank for auto-generation based on the track title\"\n class=\"bg-white radius-small pd-small mn-b-small\"\n />\n\n <!-- Artist Selection -->\n \n\n \n \n <!-- Release Date -->\n <Field\n v-model:field=\"form.releaseDate\"\n label=\"Release Date\"\n type=\"date\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validationErrors.releaseDate\"\n />\n \n <!-- Duration -->\n <Field\n v-model:field=\"form.duration\"\n label=\"Duration (seconds)\"\n type=\"number\"\n placeholder=\"Track duration in seconds\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div> \n\n <Block title=\"Artist\">\n <BlockMultiselect\n v-model=\"form.artists\"\n placeholder=\"Search artists...\"\n :multiple=\"false\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => artistsActions.fetchArtists(options),\n state: artistsState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No artists found',\n description: 'Try different search terms or create a new artist',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover:bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected artist slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"fw-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Artist item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"fw-medium\">{{ item.name }}</p>\n <p v-if=\"item.bio\" class=\"t-small t-transp\">{{ item.bio }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Album Selection -->\n <Block title=\"Album (Optional)\">\n <BlockMultiselect\n v-model=\"form.albums\"\n placeholder=\"Search albums...\"\n :multiple=\"false\"\n :transform=\"(item) => ({ _id: item._id, title: item.title })\"\n :store=\"{\n read: (options) => albumsActions.fetchAlbums(options),\n state: albumsState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No albums found',\n description: 'Try different search terms or create a new album',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.title\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover:bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected album slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"fw-medium\">{{ item?.title || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Album item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"fw-medium\">{{ item.title }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n \n <!-- Genres Section -->\n <Block title=\"Genres\">\n <BlockMultiselect\n v-model=\"form.genres\"\n placeholder=\"Search genres...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => genresActions.fetchGenres(options),\n state: genresState\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No genres found',\n description: 'Try different search terms or create a new genre',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover:bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Selected genres slot -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"fw-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Genre item slot -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <div class=\"w-100\">\n <p class=\"fw-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n \n <!-- Content Settings Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Content Settings</h3>\n \n <Checkbox\n v-model:checkbox=\"form.isExplicit\"\n label=\"Explicit Content\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n \n <Checkbox\n v-model:checkbox=\"form.isPublic\"\n label=\"Public Track\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n \n \n <!-- Additional Info Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Additional Information</h3>\n \n <!-- Lyrics -->\n <Field\n v-model:field=\"form.lyrics\"\n label=\"Lyrics (Optional)\"\n type=\"textarea\"\n placeholder=\"Enter track lyrics\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Status Section -->\n <div class=\"bg-light pd-medium radius-medium\">\n <h3 class=\"h3 mn-b-medium\">Publishing Status</h3>\n \n <Select\n v-model:select=\"form.status\"\n :options=\"statusOptions\"\n label=\"Status\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Submit Button -->\n <div class=\"flex flex-justify-between\">\n <Button\n @click=\"router.go(-1)\"\n class=\"bg-grey-nano t-black\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"submitForm\"\n class=\"bg-main t-black\"\n :text=\"{\n success: editMode ? 'Updated!' : 'Uploaded!'\n }\"\n >\n {{ editMode ? 'Update Track' : 'Upload Track' }}\n </Button>\n </div>\n </form>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive, onMounted, watch } from 'vue';\nimport { useRouter, useRoute } from 'vue-router';\n\n// Import Martyrs components\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/core/views/components/blocks/BlockMultiselect.vue';\n\n// Import stores\nimport * as tracksStore from '../../store/tracks';\nimport * as artistsStore from '../../store/artists';\nimport * as albumsStore from '../../store/albums';\nimport * as genresStore from '../../store/genres';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nconst store = useStore();\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Store states and actions\nconst { state: artistsState, actions: artistsActions } = artistsStore;\nconst { state: albumsState, actions: albumsActions } = albumsStore;\nconst { state: genresState, actions: genresActions } = genresStore;\n\n// Props\nconst props = defineProps({\n editMode: {\n type: Boolean,\n default: false\n },\n url: {\n type: String,\n default: ''\n }\n});\n\n// Router and route\nconst router = useRouter();\nconst route = useRoute();\n\nconst emit = defineEmits(['uploaded']);\n\n// State\nconst form = reactive({\n title: '',\n artists: [],\n albums: [],\n genres: [],\n duration: 0,\n fileUrl: '',\n coverUrl: '',\n releaseDate: new Date().toISOString().split('T')[0],\n isExplicit: false,\n isPublic: true,\n lyrics: '',\n url: '',\n status: 'draft'\n});\n\nconst validationErrors = reactive({\n title: false,\n fileUrl: false,\n releaseDate: false\n});\n\n// Track if URL was manually entered\nconst urlManuallySet = ref(false);\n\n// Status options\nconst statusOptions = [\n 'draft',\n 'published',\n 'archived'\n];\n\n// Function to generate URL-friendly slug from text\nconst generateSlug = (text) => {\n if (!text) return '';\n return text\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, '') // Remove special characters\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/-+/g, '-') // Replace multiple hyphens with single\n .trim('-'); // Remove leading/trailing hyphens\n};\n\n// Watch for changes in track title to auto-generate URL\nwatch(() => form.title, (newTitle) => {\n // Only auto-generate if URL hasn't been manually set and we're not in edit mode\n if (!urlManuallySet.value && !props.editMode) {\n form.url = generateSlug(newTitle);\n }\n});\n\n// Watch for manual changes to URL field\nwatch(() => form.url, (newUrl, oldUrl) => {\n // If user manually changes URL, mark as manually set\n if (newUrl !== generateSlug(form.title)) {\n urlManuallySet.value = true;\n }\n});\n\nconst fetchTrack = async () => {\n if (!props.url) return;\n \n try {\n const fetchedTrack = await tracksStore.actions.fetchTrackByUrl(props.url);\n \n if (!fetchedTrack) {\n store.core.actions.setError({\n message: 'Track not found'\n });\n return;\n }\n \n // Update local track data\n Object.assign(form, {\n title: fetchedTrack.title || '',\n artists: fetchedTrack.artist ? [fetchedTrack.artist] : [],\n albums: fetchedTrack.album ? [fetchedTrack.album] : [],\n genres: fetchedTrack.genres || [],\n duration: fetchedTrack.duration || 0,\n fileUrl: fetchedTrack.fileUrl || '',\n coverUrl: fetchedTrack.coverUrl || '',\n releaseDate: fetchedTrack.releaseDate ? new Date(fetchedTrack.releaseDate).toISOString().split('T')[0] : '',\n isExplicit: fetchedTrack.isExplicit || false,\n isPublic: fetchedTrack.isPublic !== false,\n lyrics: fetchedTrack.lyrics || '',\n url: fetchedTrack.url || '',\n status: fetchedTrack.status || 'draft',\n _id: fetchedTrack._id\n });\n \n } catch (error) {\n console.error('Error fetching track:', error);\n store.core.actions.setError({\n message: 'Failed to load track details'\n });\n }\n};\n\nconst validateForm = () => {\n let isValid = true;\n \n // Validate title\n if (!form.title.trim()) {\n validationErrors.title = {\n message: 'Track title is required'\n };\n isValid = false;\n } else {\n validationErrors.title = false;\n }\n \n // Validate file URL\n if (!form.fileUrl) {\n validationErrors.fileUrl = {\n message: 'Audio file is required'\n };\n isValid = false;\n } else {\n validationErrors.fileUrl = false;\n }\n \n return isValid;\n};\n\nconst submitForm = async () => {\n if (!validateForm()) {\n return;\n }\n \n try {\n console.log('=== FORM DATA DEBUG ===');\n console.log('form.artists:', form.artists);\n console.log('form.albums:', form.albums);\n console.log('form.albums.length:', form.albums.length);\n console.log('form.albums[0]:', form.albums[0]);\n console.log('form.albums[0]?._id:', form.albums[0]?._id);\n \n // Prepare data for submission\n const formData = {\n ...form,\n artist: form.artists.length > 0 ? (form.artists[0]._id || form.artists[0]) : null,\n album: form.albums && form.albums._id ? form.albums._id : null,\n genre: form.genres.map(genre => genre._id || genre)\n };\n \n // Remove the original arrays/objects to avoid conflicts\n delete formData.artists;\n delete formData.albums;\n delete formData.genres;\n \n console.log('formData after preparation:', formData);\n console.log('formData.album:', formData.album);\n console.log('typeof formData.album:', typeof formData.album);\n \n // Add ownership data if creating new track\n if (!props.editMode) {\n formData.owner = {\n type: 'user',\n target: auth.state.user._id\n };\n formData.creator = {\n type: 'user',\n target: auth.state.user._id\n };\n }\n \n let result;\n if (props.editMode) {\n result = await tracksStore.actions.updateTrack(formData);\n } else {\n result = await tracksStore.actions.createTrack(formData);\n }\n \n // Navigate to track detail page\n setTimeout(() => {\n router.push({\n name: 'track',\n params: { url: result.url }\n });\n }, 1000);\n \n } catch (error) {\n console.error('Error saving track:', error);\n store.core.actions.setError({\n message: 'Failed to save track'\n });\n }\n};\nconst handleUploadError = (error) => {\n console.error('Upload error:', error);\n store.core.actions.setError({\n message: 'Error uploading file'\n });\n};\n\n// Lifecycle hooks\nonMounted(async () => {\n if (props.editMode) {\n await fetchTrack();\n // Mark URL as manually set in edit mode to prevent auto-generation\n urlManuallySet.value = true;\n }\n});\n</script>\n"],"names":["artistsStore","albumsStore","genresStore","tracksStore.actions","auth.state"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, createElementVNode, toDisplayString, Fragment, renderList, createBlock, withCtx, createTextVNode } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import Loader from "../../../../components/Loader/Loader.vue.js";
3
+ import Loader from "../../../../components/Loader/Loader.vue2.js";
4
4
  /* empty css */
5
5
  import Media from "../../../../components/Media/Media.vue.js";
6
6
  /* empty css */
@@ -33,37 +33,37 @@ const _hoisted_4 = {
33
33
  class: "album-content cols-2 mobile:cols-1 gap-big"
34
34
  };
35
35
  const _hoisted_5 = { class: "pos-sticky pos-t-0 mobile:pos-relative album-cover-section" };
36
- const _hoisted_6 = { class: "stats-grid grid cols-2 gap-small" };
36
+ const _hoisted_6 = { class: "stats-grid d-grid cols-2 mobile:cols-1 gap-small" };
37
37
  const _hoisted_7 = { class: "stat-card bg-light pd-medium radius-medium t-center" };
38
38
  const _hoisted_8 = { class: "mn-b-thin" };
39
39
  const _hoisted_9 = { class: "stat-card bg-light pd-medium radius-medium t-center" };
40
40
  const _hoisted_10 = { class: "mn-b-thin" };
41
41
  const _hoisted_11 = { class: "album-details-section" };
42
42
  const _hoisted_12 = { class: "flex items-center gap-small mn-b-small" };
43
- const _hoisted_13 = { class: "bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase" };
43
+ const _hoisted_13 = { class: "bg-light fw-medium pd-thin radius-thin uppercase t-small t-uppercase" };
44
44
  const _hoisted_14 = {
45
45
  key: 0,
46
- class: "bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase"
46
+ class: "bg-light fw-medium pd-thin radius-thin uppercase t-small t-uppercase"
47
47
  };
48
48
  const _hoisted_15 = { class: "h1 mn-b-medium" };
49
49
  const _hoisted_16 = { class: "artists-section mn-b-medium" };
50
50
  const _hoisted_17 = {
51
51
  key: 0,
52
- class: "t-medium mn-b-small"
52
+ class: "fw-medium mn-b-small"
53
53
  };
54
54
  const _hoisted_18 = { class: "flex flex-column gap-small" };
55
- const _hoisted_19 = { class: "metadata-grid grid cols-2 gap-small mn-b-medium" };
55
+ const _hoisted_19 = { class: "metadata-grid d-grid cols-2 mobile:cols-1 gap-small mn-b-medium" };
56
56
  const _hoisted_20 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
57
- const _hoisted_21 = { class: "t-medium" };
57
+ const _hoisted_21 = { class: "fw-medium" };
58
58
  const _hoisted_22 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
59
- const _hoisted_23 = { class: "t-medium" };
59
+ const _hoisted_23 = { class: "fw-medium" };
60
60
  const _hoisted_24 = {
61
61
  key: 0,
62
62
  class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular"
63
63
  };
64
- const _hoisted_25 = { class: "t-medium" };
64
+ const _hoisted_25 = { class: "fw-medium" };
65
65
  const _hoisted_26 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
66
- const _hoisted_27 = { class: "t-medium" };
66
+ const _hoisted_27 = { class: "fw-medium" };
67
67
  const _hoisted_28 = {
68
68
  key: 0,
69
69
  class: "tags-section mn-b-medium"
@@ -79,7 +79,7 @@ const _hoisted_32 = {
79
79
  class: "more-albums-section mn-t-big"
80
80
  };
81
81
  const _hoisted_33 = { class: "flex justify-between items-center mn-b-medium" };
82
- const _hoisted_34 = { class: "flex flex-nowrap gap-small o-x-scroll overscroll-behavior-x-contain scroll-behavior-smooth scroll-snap-type-x-mandatory scroll-hide" };
82
+ const _hoisted_34 = { class: "flex flex-nowrap gap-small o-x-scroll overscroll-x-contain scroll-smooth scroll-snap-x-mandatory scroll-hide" };
83
83
  const _sfc_main = {
84
84
  __name: "Album",
85
85
  emits: ["page-loading", "page-loaded"],
@@ -251,7 +251,7 @@ const _sfc_main = {
251
251
  ])) : createCommentVNode("", true),
252
252
  hasLoaded.value && !album.value ? (openBlock(), createElementBlock("div", _hoisted_3, _cache[0] || (_cache[0] = [
253
253
  createElementVNode("h2", { class: "" }, "Album not found", -1),
254
- createElementVNode("p", { class: "t-transp t-medium" }, "The album you're looking for doesn't exist or has been removed.", -1)
254
+ createElementVNode("p", { class: "t-transp fw-medium" }, "The album you're looking for doesn't exist or has been removed.", -1)
255
255
  ]))) : createCommentVNode("", true),
256
256
  album.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
257
257
  createElementVNode("div", _hoisted_5, [
@@ -292,31 +292,31 @@ const _sfc_main = {
292
292
  }), 128))
293
293
  ])
294
294
  ]),
295
- _cache[8] || (_cache[8] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Metadata", -1)),
295
+ _cache[8] || (_cache[8] = createElementVNode("h3", { class: "fw-medium mn-b-small" }, "Metadata", -1)),
296
296
  createElementVNode("div", _hoisted_19, [
297
297
  createElementVNode("div", _hoisted_20, [
298
- createVNode(_sfc_main$5, { class: "i-medium t-primary" }),
298
+ createVNode(_sfc_main$5, { class: "i-medium t-main" }),
299
299
  createElementVNode("div", null, [
300
300
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Released", -1)),
301
301
  createElementVNode("div", _hoisted_21, toDisplayString(formatDate(album.value.releaseDate)), 1)
302
302
  ])
303
303
  ]),
304
304
  createElementVNode("div", _hoisted_22, [
305
- createVNode(IconTime, { class: "i-medium t-primary" }),
305
+ createVNode(IconTime, { class: "i-medium t-main" }),
306
306
  createElementVNode("div", null, [
307
307
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Duration", -1)),
308
308
  createElementVNode("div", _hoisted_23, toDisplayString(totalDuration.value), 1)
309
309
  ])
310
310
  ]),
311
311
  album.value.label ? (openBlock(), createElementBlock("div", _hoisted_24, [
312
- createVNode(_sfc_main$6, { class: "i-medium t-primary" }),
312
+ createVNode(_sfc_main$6, { class: "i-medium t-main" }),
313
313
  createElementVNode("div", null, [
314
314
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Label", -1)),
315
315
  createElementVNode("div", _hoisted_25, toDisplayString(album.value.label), 1)
316
316
  ])
317
317
  ])) : createCommentVNode("", true),
318
318
  createElementVNode("div", _hoisted_26, [
319
- createVNode(_sfc_main$7, { class: "i-medium t-primary" }),
319
+ createVNode(_sfc_main$7, { class: "i-medium t-main" }),
320
320
  createElementVNode("div", null, [
321
321
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Visibility", -1)),
322
322
  createElementVNode("div", _hoisted_27, toDisplayString(album.value.isPublic ? "Public" : "Private"), 1)
@@ -324,18 +324,18 @@ const _sfc_main = {
324
324
  ])
325
325
  ]),
326
326
  album.value.genres && album.value.genres.length || album.value.tags && album.value.tags.length ? (openBlock(), createElementBlock("div", _hoisted_28, [
327
- _cache[7] || (_cache[7] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Genres & Tags", -1)),
327
+ _cache[7] || (_cache[7] = createElementVNode("h3", { class: "fw-medium mn-b-small" }, "Genres & Tags", -1)),
328
328
  createElementVNode("div", _hoisted_29, [
329
329
  (openBlock(true), createElementBlock(Fragment, null, renderList(album.value.genres, (genre) => {
330
330
  return openBlock(), createElementBlock("span", {
331
331
  key: genre,
332
- class: "tag bg-main t-medium pd-thin radius-thin t-small cursor-pointer"
332
+ class: "tag bg-main fw-medium pd-thin radius-thin t-small cursor-pointer"
333
333
  }, toDisplayString(genre), 1);
334
334
  }), 128)),
335
335
  (openBlock(true), createElementBlock(Fragment, null, renderList(album.value.tags, (tag) => {
336
336
  return openBlock(), createElementBlock("span", {
337
337
  key: tag,
338
- class: "tag bg-light t-transp pd-thin-big radius-small t-small hover-bg-light cursor-pointer"
338
+ class: "tag bg-light t-transp pd-thin-big radius-small t-small hover:bg-light cursor-pointer"
339
339
  }, " #" + toDisplayString(tag), 1);
340
340
  }), 128))
341
341
  ])
@@ -381,7 +381,7 @@ const _sfc_main = {
381
381
  album.value.artists && album.value.artists[0] ? (openBlock(), createBlock(_component_router_link, {
382
382
  key: 0,
383
383
  to: { name: "artist", params: { url: album.value.artists[0].url } },
384
- class: "t-primary hover-opacity"
384
+ class: "t-main hover:opacity-70"
385
385
  }, {
386
386
  default: withCtx(() => _cache[10] || (_cache[10] = [
387
387
  createTextVNode(" See all ")
@@ -393,11 +393,11 @@ const _sfc_main = {
393
393
  (openBlock(true), createElementBlock(Fragment, null, renderList(moreAlbums.value, (relatedAlbum) => {
394
394
  return openBlock(), createElementBlock("li", {
395
395
  key: album.value._id,
396
- class: "flex-none scroll-snap-align-start"
396
+ class: "flex-none scroll-snap-start"
397
397
  }, [
398
398
  createVNode(AlbumCard, {
399
399
  album: relatedAlbum,
400
- class: "w-15r transition-cubic-in-out"
400
+ class: "w-15r ease-cubic-in-out"
401
401
  }, null, 8, ["album"])
402
402
  ]);
403
403
  }), 128))
@@ -1 +1 @@
1
- {"version":3,"file":"Album.vue.js","sources":["../../../../../../../src/modules/music/components/pages/Album.vue"],"sourcesContent":["<!-- components/pages/Album.vue -->\n<template>\n <div class=\"album-page pd-small\">\n <!-- Loading -->\n <div v-if=\"isLoading\" class=\"w-100 h-25r flex-center flex\">\n <Loader />\n </div>\n \n <!-- Not Found -->\n <div v-if=\"hasLoaded && !album\" class=\"t-center pd-big\">\n <h2 class=\"\">Album not found</h2>\n <p class=\"t-transp t-medium\">The album you're looking for doesn't exist or has been removed.</p>\n </div>\n \n <!-- Album Content -->\n <div v-if=\"album\" class=\"album-content cols-2 mobile:cols-1 gap-big\">\n <!-- Left Column - Cover & Stats -->\n <div class=\"pos-sticky pos-t-0 mobile:pos-relative album-cover-section\">\n <!-- Cover -->\n <Media \n :url=\"album.coverArt || '/logo/logo-placeholder.jpg'\"\n :alt=\"album.title\"\n class=\"aspect-1x1 w-100 mn-b-small radius-medium o-hidden\"\n />\n <!-- Quick Stats -->\n <div class=\"stats-grid grid cols-2 gap-small\">\n <div class=\"stat-card bg-light pd-medium radius-medium t-center\">\n <div class=\" mn-b-thin\">{{ album.totalTracks || 0 }}</div>\n <div class=\"t-small t-transp t-uppercase\">Tracks</div>\n </div>\n <div class=\"stat-card bg-light pd-medium radius-medium t-center\">\n <div class=\" mn-b-thin\">{{ formatNumber(album.views) }}</div>\n <div class=\"t-small t-transp t-uppercase\">Views</div>\n </div>\n </div>\n </div>\n\n <!-- Right Column - Album Details -->\n <div class=\"album-details-section\">\n <!-- Album Type Badge -->\n <div class=\"flex items-center gap-small mn-b-small\">\n <span class=\"bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase\">\n {{ album.type }}\n </span>\n <span v-if=\"album.status === 'published'\" class=\"bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase\">\n Published\n </span>\n </div>\n\n <!-- Album Title -->\n <h1 class=\"h1 mn-b-medium\">{{ album.title }}</h1>\n\n <!-- Action Buttons -->\n <ActionButtons :buttons=\"actionButtons\" />\n\n <!-- Artists Cards -->\n <div class=\"artists-section mn-b-medium\">\n <h3 class=\"t-medium mn-b-small\" v-if=\"album.artists\">Artists</h3>\n <div class=\"flex flex-column gap-small\">\n <ArtistCardSmall \n v-for=\"artist in album.artists\" \n :key=\"artist._id\"\n :artist=\"artist\"\n :is-following=\"followedArtists.includes(artist._id)\"\n :show-follow-button=\"!isOwner\"\n @toggle-follow=\"toggleFollowArtist\"\n />\n </div>\n </div>\n\n <!-- Metadata Cards -->\n <h3 class=\"t-medium mn-b-small\">Metadata</h3>\n <div class=\"metadata-grid grid cols-2 gap-small mn-b-medium\">\n <!-- Release Date -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconCalendar class=\"i-medium t-primary\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Released</div>\n <div class=\"t-medium \">{{ formatDate(album.releaseDate) }}</div>\n </div>\n </div>\n\n <!-- Total Duration -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconClock class=\"i-medium t-primary\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Duration</div>\n <div class=\"t-medium \">{{ totalDuration }}</div>\n </div>\n </div>\n\n <!-- Label -->\n <div v-if=\"album.label\" class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconDisc class=\"i-medium t-primary\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Label</div>\n <div class=\"t-medium \">{{ album.label }}</div>\n </div>\n </div>\n\n <!-- Visibility -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconEye class=\"i-medium t-primary\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Visibility</div>\n <div class=\"t-medium \">{{ album.isPublic ? 'Public' : 'Private' }}</div>\n </div>\n </div>\n </div>\n\n <!-- Genres & Tags -->\n <div v-if=\"(album.genres && album.genres.length) || (album.tags && album.tags.length)\" class=\"tags-section mn-b-medium\">\n <h3 class=\"t-medium mn-b-small\">Genres & Tags</h3>\n <div class=\"flex gap-thin flex-wrap\">\n <span \n v-for=\"genre in album.genres\" \n :key=\"genre\"\n class=\"tag bg-main t-medium pd-thin radius-thin t-small cursor-pointer\"\n >\n {{ genre }}\n </span>\n <span \n v-for=\"tag in album.tags\" \n :key=\"tag\"\n class=\"tag bg-light t-transp pd-thin-big radius-small t-small hover-bg-light cursor-pointer\"\n >\n #{{ tag }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Album Tracks -->\n <section v-if=\"!isLoading && album && albumTracks.length\" class=\"tracks-section mn-t-big\">\n <h2 class=\"h2 mn-b-medium\">Tracklist</h2>\n <Feed\n :store=\"{\n read: () => Promise.resolve(albumTracks),\n state: { isLoading: false }\n }\"\n :external=\"true\"\n :items=\"albumTracks\"\n :states=\"{\n empty: {\n title: 'No tracks in album',\n description: 'This album appears to be empty',\n class: 'pd-medium t-center'\n }\n }\"\n >\n <template #default=\"{ items }\">\n <div class=\"bg-light radius-medium o-hidden\">\n <TrackListCard\n v-for=\"(track, index) in items\"\n :key=\"track._id\"\n :track=\"track\"\n :index=\"index + 1\"\n :showAlbum=\"false\"\n :showCover=\"false\"\n />\n </div>\n </template>\n </Feed>\n </section>\n\n <!-- More from Artists -->\n <section v-if=\"!isLoading && album && moreAlbums.length\" class=\"more-albums-section mn-t-big\">\n <div class=\"flex justify-between items-center mn-b-medium\">\n <h2 class=\"h2\">More Albums</h2>\n <router-link \n v-if=\"album.artists && album.artists[0]\"\n :to=\"{ name: 'artist', params: { url: album.artists[0].url } }\" \n class=\"t-primary hover-opacity\"\n >\n See all\n </router-link>\n </div>\n <div class=\"flex flex-nowrap gap-small o-x-scroll overscroll-behavior-x-contain scroll-behavior-smooth scroll-snap-type-x-mandatory scroll-hide\"\n >\n <li v-for=\"relatedAlbum in moreAlbums\" :key=\"album._id\" class=\"flex-none scroll-snap-align-start\">\n <AlbumCard :album=\"relatedAlbum\" class=\"w-15r transition-cubic-in-out\" />\n </li>\n </div>\n </section>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\n// Icons\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\nimport IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue';\nimport IconClock from '@martyrs/src/modules/icons/entities/IconTime.vue';\nimport IconEye from '@martyrs/src/modules/icons/actions/IconShow.vue';\nimport IconDisc from '@martyrs/src/modules/icons/entities/IconMusic.vue';\nimport IconVerified from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n// Components\nimport ActionButtons from '../blocks/ActionButtons.vue';\nimport TrackListCard from '../cards/TrackListCard.vue';\nimport AlbumCard from '../cards/AlbumCard.vue';\nimport ArtistCardSmall from '../cards/ArtistCardSmall.vue';\n\n// Store\nimport { state as albumsState, actions as albumsActions } from '../../store/albums.js';\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';\n\nconst route = useRoute();\nconst router = useRouter();\n\n// Emits\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n// State\nconst hasLoaded = ref(false);\nconst isFavorite = ref(false);\nconst followedArtists = ref([]);\nconst moreAlbums = ref([]);\n\n// Clear state\nalbumsState.currentAlbum = null;\nalbumsState.currentAlbumTracks = [];\n\n// Computed\nconst album = computed(() => albumsState.currentAlbum);\nconst albumTracks = computed(() => albumsState.currentAlbumTracks || []);\n\nconst isOwner = computed(() => {\n return album.value?.owner?.target === authState.user?._id;\n});\n\nconst totalDuration = computed(() => {\n if (!albumTracks.value.length) return '0:00';\n const totalSeconds = albumTracks.value.reduce((sum, track) => sum + (track.duration || 0), 0);\n return formatDuration(totalSeconds);\n});\n\nconst actionButtons = computed(() => {\n const buttons = [\n {\n type: 'button',\n class: 't-white bg-black',\n icon: IconPlay,\n iconFill: 'rgb(var(--white))',\n text: 'Play All',\n action: playAlbum\n },\n {\n type: 'button',\n class: 'bg-light',\n icon: IconShuffle,\n text: 'Shuffle',\n action: shufflePlay\n },\n {\n type: 'button',\n class: 'bg-light',\n icon: IconLike,\n iconFill: isFavorite.value ? 'rgb(var(--main))' : 'rgb(var(--black))',\n text: isFavorite.value ? 'Liked' : 'Like',\n action: toggleFavorite\n },\n {\n type: 'dropdown',\n items: [\n { text: 'Add to Queue', action: addToQueue },\n { text: 'Copy Link', action: copyLink },\n { text: 'Add to Playlist', action: addToPlaylist }\n ]\n }\n ];\n\n if (isOwner.value) {\n const items = buttons[3].items;\n items.push({ separator: true });\n items.push({ text: 'Edit Album', action: editAlbum });\n items.push({ text: 'Delete Album', action: deleteAlbum, color: 'danger' });\n }\n\n return buttons;\n});\n\n// Format helpers\nconst formatDate = (dateString) => {\n if (!dateString) return 'Unknown';\n return new Date(dateString).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n });\n};\n\nconst formatDuration = (seconds) => {\n if (!seconds) return '0:00';\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor(seconds % 60);\n \n if (h > 0) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return `${m}:${s.toString().padStart(2, '0')}`;\n};\n\nconst formatNumber = (num) => {\n if (!num) return '0';\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1) + 'M';\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1) + 'K';\n }\n return num.toString();\n};\n\n// Actions\nconst playAlbum = () => {\n if (albumTracks.value && albumTracks.value.length > 0) {\n playerActions.setQueue(albumTracks.value);\n }\n};\n\nconst shufflePlay = () => {\n if (albumTracks.value && albumTracks.value.length > 0) {\n const shuffled = [...albumTracks.value].sort(() => Math.random() - 0.5);\n playerActions.setQueue(shuffled);\n }\n};\n\nconst toggleFavorite = () => {\n isFavorite.value = !isFavorite.value;\n // TODO: Implement actual saving\n};\n\nconst toggleFollowArtist = (artistId) => {\n const index = followedArtists.value.indexOf(artistId);\n if (index > -1) {\n followedArtists.value.splice(index, 1);\n } else {\n followedArtists.value.push(artistId);\n }\n // TODO: Implement actual following\n};\n\nconst addToQueue = () => {\n if (albumTracks.value.length > 0) {\n albumTracks.value.forEach(track => {\n playerActions.addToQueue(track);\n });\n }\n};\n\nconst addToPlaylist = () => {\n // TODO: Implement add to playlist\n console.log('Add album to playlist');\n};\n\nconst editAlbum = () => {\n router.push({ name: 'album-edit', params: { url: album.value.url } });\n};\n\nconst deleteAlbum = async () => {\n if (confirm('Are you sure you want to delete this album?')) {\n try {\n await albumsActions.deleteAlbum(album.value._id);\n router.push({ name: 'music-library' });\n } catch (error) {\n console.error('Failed to delete album:', error);\n }\n }\n};\n\nconst copyLink = () => {\n navigator.clipboard.writeText(window.location.href);\n};\n\n// Data fetching\nconst fetchAlbumData = async () => {\n try {\n await albumsActions.fetchAlbumByUrl(route.params.url);\n \n // Fetch more albums from the same artists\n if (album.value?.artists?.length) {\n const artistIds = album.value.artists.map(a => a._id);\n const albums = await albumsActions.fetchAlbums({\n artist: { $in: artistIds },\n status: 'published',\n isPublic: true,\n limit: 6\n });\n \n // Filter out current album\n moreAlbums.value = albums.filter(a => a._id !== album.value._id).slice(0, 5);\n }\n } catch (error) {\n console.error('Error fetching album data:', error);\n }\n};\n\n// Lifecycle\nonMounted(async () => {\n emits('page-loading');\n \n await fetchAlbumData();\n \n hasLoaded.value = true;\n emits('page-loaded');\n});\n</script>\n\n<style scoped>\n</style>"],"names":["albumsState","authState","IconPlay","IconShuffle","IconLike","playerActions","albumsActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2NA,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAGxB,UAAM,QAAQ;AAGd,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,kBAAkB,IAAI,EAAE;AAC9B,UAAM,aAAa,IAAI,EAAE;AAGzBA,UAAY,eAAe;AAC3BA,UAAY,qBAAqB,CAAA;AAGjC,UAAM,QAAQ,SAAS,MAAMA,MAAY,YAAY;AACrD,UAAM,cAAc,SAAS,MAAMA,MAAY,sBAAsB,CAAA,CAAE;AAEvE,UAAM,UAAU,SAAS,MAAM;AAC7B,aAAO,MAAM,OAAO,OAAO,WAAWC,QAAU,MAAM;AAAA,IACxD,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACnC,UAAI,CAAC,YAAY,MAAM,OAAQ,QAAO;AACtC,YAAM,eAAe,YAAY,MAAM,OAAO,CAAC,KAAK,UAAU,OAAO,MAAM,YAAY,IAAI,CAAC;AAC5F,aAAO,eAAe,YAAY;AAAA,IACpC,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,UAAU;AAAA,QACd;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAMC;AAAAA,UACN,UAAU;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,QACd;AAAA,QACI;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAMC;AAAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACd;AAAA,QACI;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAMC;AAAAA,UACN,UAAU,WAAW,QAAQ,qBAAqB;AAAA,UAClD,MAAM,WAAW,QAAQ,UAAU;AAAA,UACnC,QAAQ;AAAA,QACd;AAAA,QACI;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,YACL,EAAE,MAAM,gBAAgB,QAAQ,WAAU;AAAA,YAC1C,EAAE,MAAM,aAAa,QAAQ,SAAQ;AAAA,YACrC,EAAE,MAAM,mBAAmB,QAAQ,cAAa;AAAA,UACxD;AAAA,QACA;AAAA,MACA;AAEE,UAAI,QAAQ,OAAO;AACjB,cAAM,QAAQ,QAAQ,CAAC,EAAE;AACzB,cAAM,KAAK,EAAE,WAAW,KAAI,CAAE;AAC9B,cAAM,KAAK,EAAE,MAAM,cAAc,QAAQ,WAAW;AACpD,cAAM,KAAK,EAAE,MAAM,gBAAgB,QAAQ,aAAa,OAAO,UAAU;AAAA,MAC3E;AAEA,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,aAAa,CAAC,eAAe;AACjC,UAAI,CAAC,WAAY,QAAO;AACxB,aAAO,IAAI,KAAK,UAAU,EAAE,mBAAmB,SAAS;AAAA,QACtD,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MACT,CAAG;AAAA,IACH;AAEA,UAAM,iBAAiB,CAAC,YAAY;AAClC,UAAI,CAAC,QAAS,QAAO;AACrB,YAAM,IAAI,KAAK,MAAM,UAAU,IAAI;AACnC,YAAM,IAAI,KAAK,MAAO,UAAU,OAAQ,EAAE;AAC1C,YAAM,IAAI,KAAK,MAAM,UAAU,EAAE;AAEjC,UAAI,IAAI,GAAG;AACT,eAAO,GAAG,CAAC,IAAI,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC;AAAA,MAC/E;AACA,aAAO,GAAG,CAAC,IAAI,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC;AAAA,IAC9C;AAEA,UAAM,eAAe,CAAC,QAAQ;AAC5B,UAAI,CAAC,IAAK,QAAO;AACjB,UAAI,OAAO,KAAS;AAClB,gBAAQ,MAAM,KAAS,QAAQ,CAAC,IAAI;AAAA,MACtC,WAAW,OAAO,KAAM;AACtB,gBAAQ,MAAM,KAAM,QAAQ,CAAC,IAAI;AAAA,MACnC;AACA,aAAO,IAAI,SAAQ;AAAA,IACrB;AAGA,UAAM,YAAY,MAAM;AACtB,UAAI,YAAY,SAAS,YAAY,MAAM,SAAS,GAAG;AACrDC,gBAAc,SAAS,YAAY,KAAK;AAAA,MAC1C;AAAA,IACF;AAEA,UAAM,cAAc,MAAM;AACxB,UAAI,YAAY,SAAS,YAAY,MAAM,SAAS,GAAG;AACrD,cAAM,WAAW,CAAC,GAAG,YAAY,KAAK,EAAE,KAAK,MAAM,KAAK,OAAM,IAAK,GAAG;AACtEA,gBAAc,SAAS,QAAQ;AAAA,MACjC;AAAA,IACF;AAEA,UAAM,iBAAiB,MAAM;AAC3B,iBAAW,QAAQ,CAAC,WAAW;AAAA,IAEjC;AAEA,UAAM,qBAAqB,CAAC,aAAa;AACvC,YAAM,QAAQ,gBAAgB,MAAM,QAAQ,QAAQ;AACpD,UAAI,QAAQ,IAAI;AACd,wBAAgB,MAAM,OAAO,OAAO,CAAC;AAAA,MACvC,OAAO;AACL,wBAAgB,MAAM,KAAK,QAAQ;AAAA,MACrC;AAAA,IAEF;AAEA,UAAM,aAAa,MAAM;AACvB,UAAI,YAAY,MAAM,SAAS,GAAG;AAChC,oBAAY,MAAM,QAAQ,WAAS;AACjCA,kBAAc,WAAW,KAAK;AAAA,QAChC,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,gBAAgB,MAAM;AAE1B,cAAQ,IAAI,uBAAuB;AAAA,IACrC;AAEA,UAAM,YAAY,MAAM;AACtB,aAAO,KAAK,EAAE,MAAM,cAAc,QAAQ,EAAE,KAAK,MAAM,MAAM,IAAG,EAAE,CAAE;AAAA,IACtE;AAEA,UAAM,cAAc,YAAY;AAC9B,UAAI,QAAQ,6CAA6C,GAAG;AAC1D,YAAI;AACF,gBAAMC,UAAc,YAAY,MAAM,MAAM,GAAG;AAC/C,iBAAO,KAAK,EAAE,MAAM,gBAAe,CAAE;AAAA,QACvC,SAAS,OAAO;AACd,kBAAQ,MAAM,2BAA2B,KAAK;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAW,MAAM;AACrB,gBAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,IACpD;AAGA,UAAM,iBAAiB,YAAY;AACjC,UAAI;AACF,cAAMA,UAAc,gBAAgB,MAAM,OAAO,GAAG;AAGpD,YAAI,MAAM,OAAO,SAAS,QAAQ;AAChC,gBAAM,YAAY,MAAM,MAAM,QAAQ,IAAI,OAAK,EAAE,GAAG;AACpD,gBAAM,SAAS,MAAMA,UAAc,YAAY;AAAA,YAC7C,QAAQ,EAAE,KAAK,UAAS;AAAA,YACxB,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,OAAO;AAAA,UACf,CAAO;AAGD,qBAAW,QAAQ,OAAO,OAAO,OAAK,EAAE,QAAQ,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC;AAAA,QAC7E;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,8BAA8B,KAAK;AAAA,MACnD;AAAA,IACF;AAGA,cAAU,YAAY;AACpB,YAAM,cAAc;AAEpB,YAAM,eAAc;AAEpB,gBAAU,QAAQ;AAClB,YAAM,aAAa;AAAA,IACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Album.vue.js","sources":["../../../../../../../src/modules/music/components/pages/Album.vue"],"sourcesContent":["<!-- components/pages/Album.vue -->\n<template>\n <div class=\"album-page pd-small\">\n <!-- Loading -->\n <div v-if=\"isLoading\" class=\"w-100 h-25r flex-center flex\">\n <Loader />\n </div>\n \n <!-- Not Found -->\n <div v-if=\"hasLoaded && !album\" class=\"t-center pd-big\">\n <h2 class=\"\">Album not found</h2>\n <p class=\"t-transp fw-medium\">The album you're looking for doesn't exist or has been removed.</p>\n </div>\n \n <!-- Album Content -->\n <div v-if=\"album\" class=\"album-content cols-2 mobile:cols-1 gap-big\">\n <!-- Left Column - Cover & Stats -->\n <div class=\"pos-sticky pos-t-0 mobile:pos-relative album-cover-section\">\n <!-- Cover -->\n <Media \n :url=\"album.coverArt || '/logo/logo-placeholder.jpg'\"\n :alt=\"album.title\"\n class=\"aspect-1x1 w-100 mn-b-small radius-medium o-hidden\"\n />\n <!-- Quick Stats -->\n <div class=\"stats-grid d-grid cols-2 mobile:cols-1 gap-small\">\n <div class=\"stat-card bg-light pd-medium radius-medium t-center\">\n <div class=\" mn-b-thin\">{{ album.totalTracks || 0 }}</div>\n <div class=\"t-small t-transp t-uppercase\">Tracks</div>\n </div>\n <div class=\"stat-card bg-light pd-medium radius-medium t-center\">\n <div class=\" mn-b-thin\">{{ formatNumber(album.views) }}</div>\n <div class=\"t-small t-transp t-uppercase\">Views</div>\n </div>\n </div>\n </div>\n\n <!-- Right Column - Album Details -->\n <div class=\"album-details-section\">\n <!-- Album Type Badge -->\n <div class=\"flex items-center gap-small mn-b-small\">\n <span class=\"bg-light fw-medium pd-thin radius-thin uppercase t-small t-uppercase\">\n {{ album.type }}\n </span>\n <span v-if=\"album.status === 'published'\" class=\"bg-light fw-medium pd-thin radius-thin uppercase t-small t-uppercase\">\n Published\n </span>\n </div>\n\n <!-- Album Title -->\n <h1 class=\"h1 mn-b-medium\">{{ album.title }}</h1>\n\n <!-- Action Buttons -->\n <ActionButtons :buttons=\"actionButtons\" />\n\n <!-- Artists Cards -->\n <div class=\"artists-section mn-b-medium\">\n <h3 class=\"fw-medium mn-b-small\" v-if=\"album.artists\">Artists</h3>\n <div class=\"flex flex-column gap-small\">\n <ArtistCardSmall \n v-for=\"artist in album.artists\" \n :key=\"artist._id\"\n :artist=\"artist\"\n :is-following=\"followedArtists.includes(artist._id)\"\n :show-follow-button=\"!isOwner\"\n @toggle-follow=\"toggleFollowArtist\"\n />\n </div>\n </div>\n\n <!-- Metadata Cards -->\n <h3 class=\"fw-medium mn-b-small\">Metadata</h3>\n <div class=\"metadata-grid d-grid cols-2 mobile:cols-1 gap-small mn-b-medium\">\n <!-- Release Date -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconCalendar class=\"i-medium t-main\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Released</div>\n <div class=\"fw-medium \">{{ formatDate(album.releaseDate) }}</div>\n </div>\n </div>\n\n <!-- Total Duration -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconClock class=\"i-medium t-main\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Duration</div>\n <div class=\"fw-medium \">{{ totalDuration }}</div>\n </div>\n </div>\n\n <!-- Label -->\n <div v-if=\"album.label\" class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconDisc class=\"i-medium t-main\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Label</div>\n <div class=\"fw-medium \">{{ album.label }}</div>\n </div>\n </div>\n\n <!-- Visibility -->\n <div class=\"metadata-card bg-light pd-medium radius-medium flex items-center gap-regular\">\n <IconEye class=\"i-medium t-main\" />\n <div>\n <div class=\"t-small t-transp t-uppercase\">Visibility</div>\n <div class=\"fw-medium \">{{ album.isPublic ? 'Public' : 'Private' }}</div>\n </div>\n </div>\n </div>\n\n <!-- Genres & Tags -->\n <div v-if=\"(album.genres && album.genres.length) || (album.tags && album.tags.length)\" class=\"tags-section mn-b-medium\">\n <h3 class=\"fw-medium mn-b-small\">Genres & Tags</h3>\n <div class=\"flex gap-thin flex-wrap\">\n <span \n v-for=\"genre in album.genres\" \n :key=\"genre\"\n class=\"tag bg-main fw-medium pd-thin radius-thin t-small cursor-pointer\"\n >\n {{ genre }}\n </span>\n <span \n v-for=\"tag in album.tags\" \n :key=\"tag\"\n class=\"tag bg-light t-transp pd-thin-big radius-small t-small hover:bg-light cursor-pointer\"\n >\n #{{ tag }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Album Tracks -->\n <section v-if=\"!isLoading && album && albumTracks.length\" class=\"tracks-section mn-t-big\">\n <h2 class=\"h2 mn-b-medium\">Tracklist</h2>\n <Feed\n :store=\"{\n read: () => Promise.resolve(albumTracks),\n state: { isLoading: false }\n }\"\n :external=\"true\"\n :items=\"albumTracks\"\n :states=\"{\n empty: {\n title: 'No tracks in album',\n description: 'This album appears to be empty',\n class: 'pd-medium t-center'\n }\n }\"\n >\n <template #default=\"{ items }\">\n <div class=\"bg-light radius-medium o-hidden\">\n <TrackListCard\n v-for=\"(track, index) in items\"\n :key=\"track._id\"\n :track=\"track\"\n :index=\"index + 1\"\n :showAlbum=\"false\"\n :showCover=\"false\"\n />\n </div>\n </template>\n </Feed>\n </section>\n\n <!-- More from Artists -->\n <section v-if=\"!isLoading && album && moreAlbums.length\" class=\"more-albums-section mn-t-big\">\n <div class=\"flex justify-between items-center mn-b-medium\">\n <h2 class=\"h2\">More Albums</h2>\n <router-link \n v-if=\"album.artists && album.artists[0]\"\n :to=\"{ name: 'artist', params: { url: album.artists[0].url } }\" \n class=\"t-main hover:opacity-70\"\n >\n See all\n </router-link>\n </div>\n <div class=\"flex flex-nowrap gap-small o-x-scroll overscroll-x-contain scroll-smooth scroll-snap-x-mandatory scroll-hide\"\n >\n <li v-for=\"relatedAlbum in moreAlbums\" :key=\"album._id\" class=\"flex-none scroll-snap-start\">\n <AlbumCard :album=\"relatedAlbum\" class=\"w-15r ease-cubic-in-out\" />\n </li>\n </div>\n </section>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\n// Icons\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\nimport IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue';\nimport IconClock from '@martyrs/src/modules/icons/entities/IconTime.vue';\nimport IconEye from '@martyrs/src/modules/icons/actions/IconShow.vue';\nimport IconDisc from '@martyrs/src/modules/icons/entities/IconMusic.vue';\nimport IconVerified from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n// Components\nimport ActionButtons from '../blocks/ActionButtons.vue';\nimport TrackListCard from '../cards/TrackListCard.vue';\nimport AlbumCard from '../cards/AlbumCard.vue';\nimport ArtistCardSmall from '../cards/ArtistCardSmall.vue';\n\n// Store\nimport { state as albumsState, actions as albumsActions } from '../../store/albums.js';\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';\n\nconst route = useRoute();\nconst router = useRouter();\n\n// Emits\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n// State\nconst hasLoaded = ref(false);\nconst isFavorite = ref(false);\nconst followedArtists = ref([]);\nconst moreAlbums = ref([]);\n\n// Clear state\nalbumsState.currentAlbum = null;\nalbumsState.currentAlbumTracks = [];\n\n// Computed\nconst album = computed(() => albumsState.currentAlbum);\nconst albumTracks = computed(() => albumsState.currentAlbumTracks || []);\n\nconst isOwner = computed(() => {\n return album.value?.owner?.target === authState.user?._id;\n});\n\nconst totalDuration = computed(() => {\n if (!albumTracks.value.length) return '0:00';\n const totalSeconds = albumTracks.value.reduce((sum, track) => sum + (track.duration || 0), 0);\n return formatDuration(totalSeconds);\n});\n\nconst actionButtons = computed(() => {\n const buttons = [\n {\n type: 'button',\n class: 't-white bg-black',\n icon: IconPlay,\n iconFill: 'rgb(var(--white))',\n text: 'Play All',\n action: playAlbum\n },\n {\n type: 'button',\n class: 'bg-light',\n icon: IconShuffle,\n text: 'Shuffle',\n action: shufflePlay\n },\n {\n type: 'button',\n class: 'bg-light',\n icon: IconLike,\n iconFill: isFavorite.value ? 'rgb(var(--main))' : 'rgb(var(--black))',\n text: isFavorite.value ? 'Liked' : 'Like',\n action: toggleFavorite\n },\n {\n type: 'dropdown',\n items: [\n { text: 'Add to Queue', action: addToQueue },\n { text: 'Copy Link', action: copyLink },\n { text: 'Add to Playlist', action: addToPlaylist }\n ]\n }\n ];\n\n if (isOwner.value) {\n const items = buttons[3].items;\n items.push({ separator: true });\n items.push({ text: 'Edit Album', action: editAlbum });\n items.push({ text: 'Delete Album', action: deleteAlbum, color: 'danger' });\n }\n\n return buttons;\n});\n\n// Format helpers\nconst formatDate = (dateString) => {\n if (!dateString) return 'Unknown';\n return new Date(dateString).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n });\n};\n\nconst formatDuration = (seconds) => {\n if (!seconds) return '0:00';\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor(seconds % 60);\n \n if (h > 0) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return `${m}:${s.toString().padStart(2, '0')}`;\n};\n\nconst formatNumber = (num) => {\n if (!num) return '0';\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1) + 'M';\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1) + 'K';\n }\n return num.toString();\n};\n\n// Actions\nconst playAlbum = () => {\n if (albumTracks.value && albumTracks.value.length > 0) {\n playerActions.setQueue(albumTracks.value);\n }\n};\n\nconst shufflePlay = () => {\n if (albumTracks.value && albumTracks.value.length > 0) {\n const shuffled = [...albumTracks.value].sort(() => Math.random() - 0.5);\n playerActions.setQueue(shuffled);\n }\n};\n\nconst toggleFavorite = () => {\n isFavorite.value = !isFavorite.value;\n // TODO: Implement actual saving\n};\n\nconst toggleFollowArtist = (artistId) => {\n const index = followedArtists.value.indexOf(artistId);\n if (index > -1) {\n followedArtists.value.splice(index, 1);\n } else {\n followedArtists.value.push(artistId);\n }\n // TODO: Implement actual following\n};\n\nconst addToQueue = () => {\n if (albumTracks.value.length > 0) {\n albumTracks.value.forEach(track => {\n playerActions.addToQueue(track);\n });\n }\n};\n\nconst addToPlaylist = () => {\n // TODO: Implement add to playlist\n console.log('Add album to playlist');\n};\n\nconst editAlbum = () => {\n router.push({ name: 'album-edit', params: { url: album.value.url } });\n};\n\nconst deleteAlbum = async () => {\n if (confirm('Are you sure you want to delete this album?')) {\n try {\n await albumsActions.deleteAlbum(album.value._id);\n router.push({ name: 'music-library' });\n } catch (error) {\n console.error('Failed to delete album:', error);\n }\n }\n};\n\nconst copyLink = () => {\n navigator.clipboard.writeText(window.location.href);\n};\n\n// Data fetching\nconst fetchAlbumData = async () => {\n try {\n await albumsActions.fetchAlbumByUrl(route.params.url);\n \n // Fetch more albums from the same artists\n if (album.value?.artists?.length) {\n const artistIds = album.value.artists.map(a => a._id);\n const albums = await albumsActions.fetchAlbums({\n artist: { $in: artistIds },\n status: 'published',\n isPublic: true,\n limit: 6\n });\n \n // Filter out current album\n moreAlbums.value = albums.filter(a => a._id !== album.value._id).slice(0, 5);\n }\n } catch (error) {\n console.error('Error fetching album data:', error);\n }\n};\n\n// Lifecycle\nonMounted(async () => {\n emits('page-loading');\n \n await fetchAlbumData();\n \n hasLoaded.value = true;\n emits('page-loaded');\n});\n</script>\n\n<style scoped>\n</style>"],"names":["albumsState","authState","IconPlay","IconShuffle","IconLike","playerActions","albumsActions"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, onMounted, createElementBlock, openBlock, createCommentVNode, createElementVNode, createVNode, unref, withCtx, createTextVNode, normalizeStyle, normalizeClass, toDisplayString, Fragment, renderList, createBlock } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Button/Button.vue2.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$2 from "../cards/TrackListCard.vue.js";
6
6
  import { state, actions } from "../../store/artists.js";
7
7
  import { state as state$1 } from "../../../auth/views/store/auth.js";
@@ -15,7 +15,7 @@ const _hoisted_2 = {
15
15
  const _hoisted_3 = { key: 1 };
16
16
  const _hoisted_4 = {
17
17
  key: 0,
18
- class: "pos-absolute pos-t-medium pos-r-medium z-index-1"
18
+ class: "pos-absolute pos-t-small pos-r-small z-index-1"
19
19
  };
20
20
  const _hoisted_5 = { class: "flex-v-center t-white pos-absolute pos-b-0 pos-l-0 w-100 pd-medium z-index-1 flex mobile:flex-column mobile:flex-h-center" };
21
21
  const _hoisted_6 = { class: "w-15r h-15r radius-medium o-hidden mn-r-medium bs-black mobile:mn-r-0 mobile:mn-b-medium" };
@@ -43,7 +43,7 @@ const _hoisted_18 = ["href"];
43
43
  const _hoisted_19 = ["href"];
44
44
  const _hoisted_20 = ["href"];
45
45
  const _hoisted_21 = { class: "pd-medium" };
46
- const _hoisted_22 = { class: "cols-2-1_2 gap-regular mobile:cols-1" };
46
+ const _hoisted_22 = { class: "cols-[1fr_2fr] gap-regular mobile:cols-1" };
47
47
  const _hoisted_23 = { class: "bg-light pd-medium radius-medium mn-b-medium" };
48
48
  const _hoisted_24 = {
49
49
  key: 0,
@@ -71,7 +71,7 @@ const _hoisted_33 = {
71
71
  class: "w-100 h-100 bg-light flex-center flex"
72
72
  };
73
73
  const _hoisted_34 = { class: "w-100 o-hidden" };
74
- const _hoisted_35 = { class: "p-regular t-truncate" };
74
+ const _hoisted_35 = { class: "p-regular truncate" };
75
75
  const _hoisted_36 = { class: "p-small t-transp" };
76
76
  const _hoisted_37 = {
77
77
  key: 1,
@@ -86,7 +86,7 @@ const _hoisted_42 = {
86
86
  class: "w-100 h-100 bg-light flex-center flex"
87
87
  };
88
88
  const _hoisted_43 = { class: "w-100 o-hidden" };
89
- const _hoisted_44 = { class: "p-regular t-truncate" };
89
+ const _hoisted_44 = { class: "p-regular truncate" };
90
90
  const _hoisted_45 = { class: "p-small t-transp" };
91
91
  const _hoisted_46 = {
92
92
  key: 2,
@@ -109,7 +109,7 @@ const _hoisted_54 = {
109
109
  key: 1,
110
110
  class: "w-100 h-100 bg-light flex-center flex"
111
111
  };
112
- const _hoisted_55 = { class: "p-regular t-truncate" };
112
+ const _hoisted_55 = { class: "p-regular truncate" };
113
113
  const _sfc_main = {
114
114
  __name: "Artist",
115
115
  emits: ["page-loading", "page-loaded"],
@@ -301,7 +301,7 @@ const _sfc_main = {
301
301
  (openBlock(true), createElementBlock(Fragment, null, renderList(discography.value.albums, (album) => {
302
302
  return openBlock(), createElementBlock("div", {
303
303
  key: album._id,
304
- class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white",
304
+ class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover:bg-white",
305
305
  onClick: ($event) => unref(router).push({ name: "album", params: { url: album.url } })
306
306
  }, [
307
307
  createElementVNode("div", _hoisted_31, [
@@ -340,7 +340,7 @@ const _sfc_main = {
340
340
  (openBlock(true), createElementBlock(Fragment, null, renderList(discography.value.singles, (single) => {
341
341
  return openBlock(), createElementBlock("div", {
342
342
  key: single._id,
343
- class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white",
343
+ class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover:bg-white",
344
344
  onClick: ($event) => unref(router).push({ name: "track", params: { url: single.url } })
345
345
  }, [
346
346
  createElementVNode("div", _hoisted_40, [