@ozdao/martyrs 0.2.571 → 0.2.572

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 (818) 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/{main-BFvlam0J.js → main-BfEQkhXS.js} +1173 -1191
  5. package/dist/martyrs/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +94 -112
  6. package/dist/martyrs/dist/main-BfEQkhXS.js.map +1 -0
  7. package/dist/martyrs/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +3 -3
  8. package/dist/martyrs/dist/{web-CH5wzMHy.js.map → web-BqTV9va1.js.map} +1 -1
  9. 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
  10. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
  11. 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
  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.map +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/web.js +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.map +1 -1
  15. 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
  16. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  17. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  18. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/dayjs.min.js +1 -1
  19. package/dist/martyrs/node_modules/dayjs/dayjs.min.js.map +1 -0
  20. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  21. package/dist/martyrs/node_modules/dayjs/plugin/weekOfYear.js.map +1 -0
  22. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  23. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  24. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  25. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  26. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
  27. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  28. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
  29. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  30. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  31. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  32. package/dist/martyrs/src/components/Block/Block.vue.js +2 -2
  33. package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
  34. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
  35. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  36. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  37. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +6 -6
  38. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  39. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +2 -2
  40. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  41. package/dist/martyrs/src/components/Chips/Chips.vue.js +2 -2
  42. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +5 -5
  43. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  44. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +4 -4
  45. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  46. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  47. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +1 -0
  48. package/dist/martyrs/src/components/EditImages/{EditImages.vue.js → EditImages.vue2.js} +3 -3
  49. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
  50. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  51. package/dist/martyrs/src/components/Feed/Feed.vue.js +4 -4
  52. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  53. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  54. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  55. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  56. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +1 -1
  58. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +3 -3
  60. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
  61. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  62. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  63. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  64. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  65. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  66. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  67. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
  68. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  69. package/dist/martyrs/src/components/Radio/Radio.vue.js +1 -1
  70. package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
  71. package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
  72. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  73. package/dist/martyrs/src/components/Table/Table.vue.js +3 -3
  74. package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
  75. package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
  76. package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
  77. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
  78. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -0
  79. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +4 -4
  80. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
  81. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +4 -4
  82. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  84. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +4 -4
  85. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.map +1 -1
  86. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  87. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  88. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  89. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  90. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +8 -8
  91. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  92. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  93. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  95. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  96. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  97. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  98. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
  100. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  102. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +3 -3
  104. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  106. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +7 -7
  108. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +1 -1
  110. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
  112. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +4 -4
  113. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  114. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +5 -5
  115. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  116. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +1 -1
  117. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  118. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +2 -2
  119. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  120. package/dist/martyrs/src/modules/community/components/blocks/Activity.vue.js +7 -7
  121. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  122. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +4 -4
  124. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +10 -10
  126. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  128. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  129. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  130. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +2 -2
  131. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  132. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +3 -3
  133. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  134. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  135. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js +1 -1
  136. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  138. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  140. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  141. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js +1 -1
  142. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  144. package/dist/martyrs/src/modules/core/views/classes/core.app.js +2 -1
  145. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  146. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js +2 -2
  147. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js.map +1 -1
  148. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +10 -10
  149. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  150. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js +2 -2
  151. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js.map +1 -1
  152. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  153. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js.map +1 -1
  154. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  155. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js +1 -1
  156. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js.map +1 -1
  157. package/dist/martyrs/src/modules/core/views/components/elements/PhotoStack.vue.js +3 -3
  158. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +25 -5
  159. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
  160. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +4 -4
  161. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  162. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +11 -11
  163. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  164. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js +1 -1
  165. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js.map +1 -1
  166. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js +16 -16
  167. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js.map +1 -1
  168. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +7 -7
  169. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  170. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +1 -1
  171. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js.map +1 -1
  172. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +24 -24
  173. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  174. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +3 -3
  175. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js.map +1 -1
  176. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +7 -7
  177. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  178. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  179. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  180. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +2 -2
  181. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  182. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  183. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js +2 -2
  184. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js.map +1 -1
  185. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js +3 -3
  186. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js.map +1 -1
  187. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +2 -2
  188. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/core/views/store/core.store.js +29 -47
  190. package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
  191. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +21 -2
  192. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  193. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +5 -5
  194. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  195. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js +3 -3
  196. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  198. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  199. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +19 -19
  200. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +8 -8
  202. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  203. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  204. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  205. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
  206. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  207. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +5 -5
  208. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
  210. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
  211. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  212. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
  213. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  214. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +1 -1
  215. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  216. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  217. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js.map +1 -1
  218. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  219. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  220. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +4 -4
  221. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
  222. package/dist/martyrs/src/modules/icons/navigation/IconSort.vue.js +4 -4
  223. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +7 -7
  224. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  225. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  226. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  227. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
  228. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  229. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  230. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +11 -11
  232. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
  234. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
  236. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  238. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  240. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  241. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +2 -2
  242. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
  244. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +2 -2
  246. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
  247. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js +3 -3
  248. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +6 -6
  250. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js.map +1 -1
  251. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +4 -4
  252. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  253. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +3 -3
  254. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -1
  255. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +5 -5
  256. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  257. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +4 -4
  258. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +3 -3
  260. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +5 -5
  262. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +5 -5
  264. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  265. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +8 -8
  266. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +5 -5
  268. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +7 -7
  270. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +2 -2
  272. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  273. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +13 -13
  274. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +24 -24
  276. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  277. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +8 -8
  278. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  279. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +10 -13
  280. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +9 -9
  282. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +27 -27
  284. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +17 -17
  286. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +27 -27
  288. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  289. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  290. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +8 -8
  291. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
  292. package/dist/martyrs/src/modules/music/music.client.js +6 -6
  293. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  294. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
  295. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  296. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  297. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  298. package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
  299. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +1 -1
  300. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +2 -2
  301. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +2 -2
  302. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +9 -9
  303. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
  304. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +5 -5
  305. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  306. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +9 -9
  307. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  308. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +5 -5
  309. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  310. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js +2 -2
  311. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js.map +1 -1
  312. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +1 -1
  313. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  314. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +3 -3
  315. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  316. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  317. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
  318. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +3 -3
  319. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  320. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  321. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +17 -17
  322. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  323. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +2 -2
  324. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  325. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +4 -4
  326. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  327. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
  328. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  329. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +3 -3
  330. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  331. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
  332. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +3 -3
  334. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  335. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
  336. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +3 -3
  337. package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -1
  338. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
  339. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
  340. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  341. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js +8 -8
  342. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
  344. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +3 -3
  345. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
  346. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  347. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  348. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  349. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
  350. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
  351. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  352. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  353. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  354. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
  355. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  356. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  357. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
  358. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  359. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +4 -4
  360. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
  361. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  362. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  363. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  364. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +3 -3
  365. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
  366. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +5 -5
  367. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  368. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  369. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  370. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  371. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +4 -4
  372. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  373. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +3 -3
  374. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  375. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +5 -5
  376. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  377. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +3 -3
  378. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  379. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +2 -2
  380. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  381. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +5 -5
  382. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js.map +1 -1
  383. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +2 -2
  384. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  385. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +3 -3
  386. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  387. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +1 -1
  388. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  389. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  390. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  391. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  392. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +7 -7
  393. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  394. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +7 -7
  395. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  396. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +12 -12
  397. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  398. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +4 -4
  399. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
  400. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +6 -6
  401. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  402. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  403. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  404. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +9 -9
  405. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  406. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
  407. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  408. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
  409. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  410. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +2 -2
  411. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  412. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +6 -6
  413. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  414. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js +1 -1
  415. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js.map +1 -1
  416. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/DateLabel.vue.js +1 -1
  417. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +2 -2
  418. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  419. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +8 -8
  420. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  421. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js +1 -1
  422. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map +1 -1
  423. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  424. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  425. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  426. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +6 -6
  427. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  428. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js +3 -3
  429. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js.map +1 -1
  430. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  431. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  432. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +5 -5
  433. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  434. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
  435. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
  436. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +3 -3
  437. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
  438. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +6 -6
  439. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  440. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  441. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  442. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +3 -3
  443. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  444. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +5 -5
  445. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js.map +1 -1
  446. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js +5 -5
  447. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +1 -1
  448. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +5 -5
  449. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +1 -1
  450. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +2 -2
  451. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +1 -1
  452. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +4 -4
  453. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
  454. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +12 -12
  455. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +1 -1
  456. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +4 -4
  457. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
  458. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +24 -24
  459. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  460. package/dist/martyrs.css +1 -1
  461. package/dist/martyrs.es.js +1 -1
  462. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  463. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  464. package/dist/style.css +194 -202
  465. package/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +1 -1
  466. package/package.json +6 -8
  467. package/src/builder/modes/ssr.prod.js +1 -0
  468. package/src/builder/modes/ssr.rspack.dev.js +13 -6
  469. package/src/builder/rspack/rspack.config.base.js +7 -0
  470. package/src/builder/rspack/rspack.config.ssr.client.js +19 -44
  471. package/src/builder/templates/page.js +21 -0
  472. package/src/components/Block/Block.vue +1 -1
  473. package/src/components/BottomSheet/BottomSheet.vue +1 -1
  474. package/src/components/Calendar/Calendar.vue +5 -5
  475. package/src/components/Checkbox/Checkbox.vue +2 -2
  476. package/src/components/Chips/Chips.vue +2 -2
  477. package/src/components/Completion/Completion.vue +2 -2
  478. package/src/components/Countdown/Countdown.vue +5 -5
  479. package/src/components/DatePicker/DatePicker.vue +4 -4
  480. package/src/components/EditImages/EditImages.vue +1 -1
  481. package/src/components/Feed/Feed.old.vue +1 -1
  482. package/src/components/Feed/Feed.vue +1 -1
  483. package/src/components/FieldBig/FieldBig.vue +2 -2
  484. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  485. package/src/components/FieldTags/BlockTags.vue +1 -1
  486. package/src/components/Loader/Loader.vue +1 -1
  487. package/src/components/Menu/MenuItem.vue +2 -2
  488. package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
  489. package/src/components/Radio/Radio.vue +1 -1
  490. package/src/components/Select/Select.vue +1 -1
  491. package/src/components/Table/Table.vue +2 -2
  492. package/src/components/Text/Text.vue +1 -1
  493. package/src/components/UploadImage/UploadImage.vue +2 -2
  494. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +3 -3
  495. package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
  496. package/src/configurator/components/pages/Styles.vue +2 -2
  497. package/src/jit/.claude/settings.local.json +10 -0
  498. package/src/jit/CLAUDE.md +387 -0
  499. package/src/jit/core.js +274 -0
  500. package/src/jit/extractor.js +140 -0
  501. package/src/jit/index.js +19 -0
  502. package/src/jit/loader.js +46 -0
  503. package/src/jit/plugin.js +209 -0
  504. package/src/jit/rules.js +474 -0
  505. package/src/jit/variants.js +128 -0
  506. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  507. package/src/modules/auth/views/components/blocks/ProfileCard.vue +4 -4
  508. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  509. package/src/modules/auth/views/components/pages/EnterPassword.vue +2 -2
  510. package/src/modules/auth/views/components/pages/Profile.vue +5 -5
  511. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +1 -1
  512. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +2 -2
  513. package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
  514. package/src/modules/auth/views/components/pages/SignIn.vue +3 -3
  515. package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
  516. package/src/modules/auth/views/components/pages/UserDashboard.vue +3 -3
  517. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  518. package/src/modules/auth/views/components/sections/ProfileCompletion.vue +2 -2
  519. package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +7 -7
  520. package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
  521. package/src/modules/backoffice/components/admin/Backcalls.vue +1 -1
  522. package/src/modules/backoffice/components/admin/FastOrders.vue +1 -1
  523. package/src/modules/backoffice/components/admin/ProductEdit.vue +2 -2
  524. package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
  525. package/src/modules/backoffice/components/admin/Users.vue +2 -2
  526. package/src/modules/backoffice/components/pages/Dashboard.vue +4 -4
  527. package/src/modules/backoffice/components/partials/Sidebar.vue +5 -5
  528. package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
  529. package/src/modules/chats/components/sections/ChatWindow.vue +2 -2
  530. package/src/modules/community/components/blocks/Activity.vue +7 -7
  531. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  532. package/src/modules/community/components/blocks/FooterBlogpost.vue +4 -4
  533. package/src/modules/community/components/layouts/Community.vue +10 -10
  534. package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
  535. package/src/modules/community/components/pages/Posts.vue +2 -2
  536. package/src/modules/community/components/sections/Comment.vue +2 -2
  537. package/src/modules/constructor/components/elements/Audio.vue +1 -1
  538. package/src/modules/constructor/components/elements/Caption.vue +1 -1
  539. package/src/modules/constructor/components/elements/Embed.vue +1 -1
  540. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  541. package/src/modules/constructor/components/elements/Video.vue +1 -1
  542. package/src/modules/core/views/classes/core.app.js +2 -1
  543. package/src/modules/core/views/components/blocks/BlockSorting.vue +2 -2
  544. package/src/modules/core/views/components/blocks/CardFooter.vue +4 -4
  545. package/src/modules/core/views/components/blocks/CardHeader.vue +7 -7
  546. package/src/modules/core/views/components/blocks/HelpCard.vue +1 -1
  547. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  548. package/src/modules/core/views/components/elements/ButtonDate.vue +1 -1
  549. package/src/modules/core/views/components/elements/PhotoStack.vue +3 -3
  550. package/src/modules/core/views/components/layouts/App.vue +28 -4
  551. package/src/modules/core/views/components/layouts/Client.vue +4 -4
  552. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +15 -15
  553. package/src/modules/core/views/components/partials/CitySelection.vue +1 -1
  554. package/src/modules/core/views/components/partials/Footer.centered.vue +17 -17
  555. package/src/modules/core/views/components/partials/Footer.vue +18 -18
  556. package/src/modules/core/views/components/partials/Header.vue +10 -11
  557. package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
  558. package/src/modules/core/views/components/partials/Navigation.vue +20 -19
  559. package/src/modules/core/views/components/partials/NavigationBar.vue +3 -3
  560. package/src/modules/core/views/components/partials/Sidebar.vue +6 -6
  561. package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
  562. package/src/modules/core/views/components/sections/filters/FilterCheckbox.vue +1 -1
  563. package/src/modules/core/views/components/sections/filters/FilterDateRange.vue +2 -2
  564. package/src/modules/core/views/components/sections/filters/FilterPrice.vue +2 -2
  565. package/src/modules/core/views/components/sections/filters/FilterRange.vue +2 -2
  566. package/src/modules/core/views/store/core.store.js +36 -60
  567. package/src/modules/core/views/utils/vue-app-renderer.js +31 -1
  568. package/src/modules/events/components/blocks/CardEvent.vue +6 -6
  569. package/src/modules/events/components/blocks/CardEventShort.vue +3 -3
  570. package/src/modules/events/components/pages/EditEvent.vue +1 -1
  571. package/src/modules/events/components/pages/EditEventTickets.vue +18 -18
  572. package/src/modules/events/components/pages/Event.vue +5 -5
  573. package/src/modules/events/components/pages/Events.vue +2 -2
  574. package/src/modules/events/components/pages/EventsBackoffice.vue +2 -2
  575. package/src/modules/events/components/sections/EditTickets.vue +5 -5
  576. package/src/modules/events/components/sections/EventsHot.vue +2 -2
  577. package/src/modules/events/components/sections/List.vue +1 -1
  578. package/src/modules/events/components/sections/SelectDate.vue +1 -1
  579. package/src/modules/gallery/components/pages/Gallery.vue +1 -1
  580. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  581. package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +14 -14
  582. package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +13 -13
  583. package/src/modules/governance/reactcode/src/components/EmptyState.tsx +2 -2
  584. package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +1 -1
  585. package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +1 -1
  586. package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +2 -2
  587. package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +6 -6
  588. package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +18 -18
  589. package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +7 -7
  590. package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +9 -9
  591. package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +4 -4
  592. package/src/modules/governance/reactcode/src/components/TaskCard.tsx +1 -1
  593. package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
  594. package/src/modules/governance/reactcode/src/components/VoteForm.tsx +6 -6
  595. package/src/modules/governance/reactcode/src/components/VotingCard.tsx +2 -2
  596. package/src/modules/governance/reactcode/src/components/VotingResults.tsx +15 -15
  597. package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +41 -41
  598. package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +8 -8
  599. package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +6 -6
  600. package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +9 -9
  601. package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +14 -14
  602. package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +44 -44
  603. package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +8 -8
  604. package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +3 -3
  605. package/src/modules/governance/reactcode-2/App.tsx +28 -0
  606. package/src/modules/governance/reactcode-2/README.md +20 -0
  607. package/src/modules/governance/reactcode-2/components/Charts.tsx +58 -0
  608. package/src/modules/governance/reactcode-2/components/Layout.tsx +457 -0
  609. package/src/modules/governance/reactcode-2/components/TaskPage.tsx +325 -0
  610. package/src/modules/governance/reactcode-2/components/VoteBadge.tsx +27 -0
  611. package/src/modules/governance/reactcode-2/components/VotingsFeedPage.tsx +328 -0
  612. package/src/modules/governance/reactcode-2/constants.ts +154 -0
  613. package/src/modules/governance/reactcode-2/index.html +70 -0
  614. package/src/modules/governance/reactcode-2/index.tsx +15 -0
  615. package/src/modules/governance/reactcode-2/metadata.json +5 -0
  616. package/src/modules/governance/reactcode-2/package.json +23 -0
  617. package/src/modules/governance/reactcode-2/pnpm-lock.yaml +1410 -0
  618. package/src/modules/governance/reactcode-2/tsconfig.json +29 -0
  619. package/src/modules/governance/reactcode-2/types.ts +48 -0
  620. package/src/modules/governance/reactcode-2/vite.config.ts +23 -0
  621. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +10 -10
  622. package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +15 -15
  623. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +9 -9
  624. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +11 -11
  625. package/src/modules/governance/views/components/layouts/Governance.vue +1 -1
  626. package/src/modules/governance/views/components/pages/Governance.vue +3 -3
  627. package/src/modules/governance/views/components/pages/Initiative.vue +112 -112
  628. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +31 -31
  629. package/src/modules/governance/views/components/pages/Initiatives.vue +20 -22
  630. package/src/modules/governance/views/components/pages/Milestone.vue +25 -25
  631. package/src/modules/governance/views/components/pages/Roadmap.vue +47 -47
  632. package/src/modules/governance/views/components/pages/Task.vue +106 -106
  633. package/src/modules/governance/views/components/pages/Tasks.vue +16 -16
  634. package/src/modules/governance/views/components/pages/Voting.vue +23 -23
  635. package/src/modules/governance/views/components/pages/Votings.vue +7 -7
  636. package/src/modules/governance/views/components/partials/EmptyState.vue +3 -3
  637. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +11 -11
  638. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +4 -4
  639. package/src/modules/governance/views/components/partials/VoteForm.vue +14 -14
  640. package/src/modules/governance/views/components/partials/VotingResults.vue +22 -22
  641. package/src/modules/icons/components/IconSearchPopup.vue +3 -3
  642. package/src/modules/icons/entities/IconCash.vue +23 -0
  643. package/src/modules/icons/navigation/IconSort.vue +4 -4
  644. package/src/modules/icons/pages/IconsPage.vue +7 -7
  645. package/src/modules/inventory/components/forms/AdjustmentForm.vue +3 -3
  646. package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
  647. package/src/modules/inventory/components/forms/StockAlertsForm.vue +1 -1
  648. package/src/modules/inventory/components/pages/Inventory.vue +10 -10
  649. package/src/modules/inventory/components/pages/InventoryEdit.vue +6 -6
  650. package/src/modules/landing/components/blocks/MapBlock.vue +2 -2
  651. package/src/modules/landing/components/sections/Examples.vue +1 -1
  652. package/src/modules/landing/components/sections/InstagramSection.vue +1 -1
  653. package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
  654. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  655. package/src/modules/landing/components/sections/SectionFocus.vue +2 -2
  656. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  657. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  658. package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
  659. package/src/modules/landing/components/sections/SectionJoinUs.vue +2 -2
  660. package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
  661. package/src/modules/landing/components/sections/SectionOverview.vue +2 -2
  662. package/src/modules/landing/components/sections/SectionRoadmap.vue +2 -2
  663. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +8 -8
  664. package/src/modules/marketplace/views/components/pages/Marketplace.vue +5 -5
  665. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
  666. package/src/modules/music/components/SidebarMusic.vue +11 -11
  667. package/src/modules/music/components/blocks/ActionButtons.vue +2 -2
  668. package/src/modules/music/components/cards/AlbumCard.vue +4 -4
  669. package/src/modules/music/components/cards/ArtistCard.vue +3 -8
  670. package/src/modules/music/components/cards/ArtistCardSmall.vue +2 -2
  671. package/src/modules/music/components/cards/PlaylistCard.vue +4 -4
  672. package/src/modules/music/components/cards/TrackListCard.vue +5 -5
  673. package/src/modules/music/components/forms/AlbumForm.vue +8 -8
  674. package/src/modules/music/components/forms/ArtistForm.vue +4 -4
  675. package/src/modules/music/components/forms/PlaylistForm.vue +7 -7
  676. package/src/modules/music/components/forms/SearchForm.vue +1 -1
  677. package/src/modules/music/components/forms/TrackForm.vue +13 -13
  678. package/src/modules/music/components/pages/Album.vue +22 -22
  679. package/src/modules/music/components/pages/Artist.vue +7 -7
  680. package/src/modules/music/components/pages/MusicHome.vue +13 -18
  681. package/src/modules/music/components/pages/MusicLibrary.vue +9 -9
  682. package/src/modules/music/components/pages/Playlist.vue +25 -25
  683. package/src/modules/music/components/pages/SearchResults.vue +15 -15
  684. package/src/modules/music/components/pages/Track.vue +25 -25
  685. package/src/modules/music/components/player/FullscreenPlayer.vue +5 -5
  686. package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
  687. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  688. package/src/modules/orders/components/blocks/CardApplication.vue +1 -1
  689. package/src/modules/orders/components/blocks/CardCustomer.vue +1 -1
  690. package/src/modules/orders/components/blocks/CardOrder.vue +9 -9
  691. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +5 -5
  692. package/src/modules/orders/components/blocks/CardOrderItem.vue +9 -9
  693. package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
  694. package/src/modules/orders/components/blocks/CardOrderVar1.vue +4 -4
  695. package/src/modules/orders/components/blocks/StatusHistory.vue +3 -3
  696. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
  697. package/src/modules/orders/components/elements/PriceTotal.vue +3 -3
  698. package/src/modules/orders/components/forms/FormApplicationDetails.vue +2 -2
  699. package/src/modules/orders/components/forms/FormCustomerDetails.vue +3 -3
  700. package/src/modules/orders/components/pages/Favorites.vue +1 -1
  701. package/src/modules/orders/components/pages/OrderBackoffice.vue +15 -15
  702. package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
  703. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +4 -4
  704. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  705. package/src/modules/orders/components/partials/ShopCart.vue +2 -2
  706. package/src/modules/orders/components/sections/ApplicationDetails.vue +2 -2
  707. package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
  708. package/src/modules/orders/components/sections/CustomerDetails.vue +2 -2
  709. package/src/modules/orders/components/sections/Succes.vue +4 -4
  710. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  711. package/src/modules/organizations/components/blocks/CardOrganization.vue +4 -4
  712. package/src/modules/organizations/components/blocks/Contacts.vue +8 -8
  713. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  714. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +3 -3
  715. package/src/modules/organizations/components/forms/DepartmentForm.vue +1 -1
  716. package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
  717. package/src/modules/organizations/components/pages/Department.vue +2 -2
  718. package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
  719. package/src/modules/organizations/components/pages/Members.vue +1 -1
  720. package/src/modules/organizations/components/pages/Organization.new.vue +8 -8
  721. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  722. package/src/modules/organizations/components/pages/OrganizationDocuments.vue +2 -2
  723. package/src/modules/organizations/components/pages/Organizations.vue +3 -3
  724. package/src/modules/organizations/components/sections/Documents.vue +2 -2
  725. package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
  726. package/src/modules/organizations/components/sections/Unit.vue +1 -1
  727. package/src/modules/pages/views/components/blocks/CardPage.vue +2 -2
  728. package/src/modules/pages/views/components/pages/Page.vue +5 -5
  729. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  730. package/src/modules/products/components/blocks/CardPosition.vue +4 -4
  731. package/src/modules/products/components/blocks/CardProduct.vue +3 -3
  732. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -3
  733. package/src/modules/products/components/blocks/ProductImages.vue +2 -2
  734. package/src/modules/products/components/blocks/ProductVariants.vue +2 -2
  735. package/src/modules/products/components/elements/Image360.vue +2 -2
  736. package/src/modules/products/components/elements/Price.vue +2 -2
  737. package/src/modules/products/components/elements/QuantitySelector.vue +3 -3
  738. package/src/modules/products/components/elements/THC.vue +1 -1
  739. package/src/modules/products/components/forms/ReorderSettingsForm.vue +1 -1
  740. package/src/modules/products/components/forms/StockAuditForm.vue +2 -2
  741. package/src/modules/products/components/forms/StockHistoryView.vue +1 -1
  742. package/src/modules/products/components/pages/Categories.vue +1 -1
  743. package/src/modules/products/components/pages/CategoryEdit.vue +2 -2
  744. package/src/modules/products/components/pages/Product.vue +6 -6
  745. package/src/modules/products/components/pages/ProductEdit.vue +6 -6
  746. package/src/modules/products/components/pages/Products.vue +11 -11
  747. package/src/modules/products/components/sections/EditAttributes.vue +4 -4
  748. package/src/modules/products/components/sections/EditCategories.vue +1 -1
  749. package/src/modules/products/components/sections/EditDiscounts.vue +6 -6
  750. package/src/modules/products/components/sections/EditRecommended.vue +1 -1
  751. package/src/modules/products/components/sections/EditVariants.vue +8 -8
  752. package/src/modules/products/components/sections/FilterProducts.vue +3 -3
  753. package/src/modules/products/components/sections/ProductConfigurator.vue +2 -2
  754. package/src/modules/products/components/sections/ProductInformationSection.vue +10 -10
  755. package/src/modules/products/components/sections/ProductsRecommended.vue +2 -2
  756. package/src/modules/products/components/sections/SectionProduct.vue +7 -7
  757. package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +3 -3
  758. package/src/modules/rents/views/components/blocks/CardRent.vue +1 -1
  759. package/src/modules/rents/views/components/pages/Gant/DateLabel.vue +1 -1
  760. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +2 -2
  761. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +8 -8
  762. package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +1 -1
  763. package/src/modules/rents/views/components/pages/Rents.vue +1 -1
  764. package/src/modules/rents/views/components/pages/RentsEdit.vue +6 -6
  765. package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
  766. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  767. package/src/modules/spots/components/blocks/CardSpot.vue +4 -4
  768. package/src/modules/spots/components/blocks/SpotMemberModify.vue +1 -1
  769. package/src/modules/spots/components/layouts/Spots.vue +2 -2
  770. package/src/modules/spots/components/pages/Spot.vue +5 -5
  771. package/src/modules/spots/components/pages/SpotEdit.vue +2 -2
  772. package/src/modules/spots/components/pages/Spots.vue +3 -3
  773. package/src/modules/spots/components/sections/MapSection.vue +1 -1
  774. package/src/modules/spots/components/sections/WorktimeEdit.vue +4 -4
  775. package/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue +5 -5
  776. package/src/modules/wallet/views/components/blocks/CardDeposit.vue +5 -5
  777. package/src/modules/wallet/views/components/blocks/CashDeposit.vue +2 -2
  778. package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +4 -4
  779. package/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue +11 -11
  780. package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +4 -4
  781. package/src/modules/wallet/views/components/pages/Wallet.vue +22 -22
  782. package/src/styles/config.scss +193 -507
  783. package/src/styles/layout.scss +81 -1
  784. package/src/styles/reset.scss +2 -0
  785. package/src/styles/theme.scss +1 -8
  786. package/dist/martyrs/dist/main-BFvlam0J.js.map +0 -1
  787. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
  788. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.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/Tooltip/Tooltip.vue.js.map +0 -1
  793. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  794. 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
  795. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  796. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js.map +0 -1
  797. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js.map +0 -1
  798. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
  799. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  800. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  801. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  802. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
  803. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  804. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -20
  805. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  806. package/src/modules/LAYOUT.MD +0 -767
  807. package/src/modules/STYLES.MD +0 -298
  808. package/src/modules/inventory/inventory.router.js +0 -72
  809. package/src/modules/products/products.router.js +0 -299
  810. package/src/styles/base/all.scss +0 -233
  811. package/src/styles/base/backgrounds.scss +0 -70
  812. package/src/styles/base/borders.scss +0 -407
  813. package/src/styles/base/scrolling.scss +0 -137
  814. package/src/styles/base/shadow_transitions_hover_refactor.scss +0 -158
  815. package/src/styles/base/transitions.scss +0 -109
  816. package/src/styles/responsive.scss +0 -152
  817. package/src/styles/typography.scss +0 -161
  818. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtons.vue.js","sources":["../../../../../../../src/modules/music/components/blocks/ActionButtons.vue"],"sourcesContent":["<template>\n <div class=\"flex gap-small mn-b-medium\">\n <template v-for=\"(button, index) in buttons\" :key=\"index\">\n <!-- Regular button -->\n <Button\n v-if=\"button.type !== 'dropdown'\"\n :class=\"['flex-1 radius-thin flex-center gap-thin', button.class]\"\n @click=\"button.action\"\n >\n <component\n v-if=\"button.icon\"\n :is=\"button.icon\"\n :fill=\"button.iconFill\"\n class=\"i-medium\"\n />\n {{ button.text }}\n </Button>\n\n <!-- Dropdown button -->\n <Dropdown\n v-else\n :label=\"{component: IconEllipsis, class: 'bg-light radius-thin pd-thin i-big' }\"\n v-model=\"dropdownOpen\"\n class=\"relative\"\n >\n <template #trigger>\n <Button color=\"transp\" size=\"medium\" class=\"w-3r h-3r radius-full\">\n <IconEllipsis class=\"i-medium\" />\n </Button>\n </template>\n <template #default>\n <div class=\"dropdown-menu bg-white pd-small radius-medium shadow-big mn-t-thin\">\n <template v-for=\"(item, idx) in button.items\" :key=\"idx\">\n <hr v-if=\"item.separator\" class=\"mn-v-thin border-dark-transp-10\" />\n <Button\n v-else\n @click=\"handleDropdownClick(item.action)\"\n :color=\"item.color || 'transp'\"\n size=\"small\"\n class=\"w-100 justify-start\"\n :class=\"item.class\"\n >\n {{ item.text }}\n </Button>\n </template>\n </div>\n </template>\n </Dropdown>\n </template>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\n\nconst props = defineProps({\n buttons: {\n type: Array,\n required: true\n }\n});\n\nconst dropdownOpen = ref(false);\n\nconst handleDropdownClick = (action) => {\n if (action) {\n action();\n }\n dropdownOpen.value = false;\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAiEA,UAAM,eAAe,IAAI,KAAK;AAE9B,UAAM,sBAAsB,CAAC,WAAW;AACtC,UAAI,QAAQ;AACV,eAAM;AAAA,MACR;AACA,mBAAa,QAAQ;AAAA,IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ActionButtons.vue.js","sources":["../../../../../../../src/modules/music/components/blocks/ActionButtons.vue"],"sourcesContent":["<template>\n <div class=\"flex gap-small mn-b-medium\">\n <template v-for=\"(button, index) in buttons\" :key=\"index\">\n <!-- Regular button -->\n <Button\n v-if=\"button.type !== 'dropdown'\"\n :class=\"['flex-child-1 radius-thin flex-center gap-thin', button.class]\"\n @click=\"button.action\"\n >\n <component\n v-if=\"button.icon\"\n :is=\"button.icon\"\n :fill=\"button.iconFill\"\n class=\"i-medium\"\n />\n {{ button.text }}\n </Button>\n\n <!-- Dropdown button -->\n <Dropdown\n v-else\n :label=\"{component: IconEllipsis, class: 'bg-light radius-thin pd-thin i-big' }\"\n v-model=\"dropdownOpen\"\n class=\"relative\"\n >\n <template #trigger>\n <Button color=\"transp\" size=\"medium\" class=\"w-3r h-3r radius-full\">\n <IconEllipsis class=\"i-medium\" />\n </Button>\n </template>\n <template #default>\n <div class=\"dropdown-menu bg-white pd-small radius-medium shadow-big mn-t-thin\">\n <template v-for=\"(item, idx) in button.items\" :key=\"idx\">\n <hr v-if=\"item.separator\" class=\"mn-v-thin br-dark-transp-10\" />\n <Button\n v-else\n @click=\"handleDropdownClick(item.action)\"\n :color=\"item.color || 'transp'\"\n size=\"small\"\n class=\"w-100 justify-start\"\n :class=\"item.class\"\n >\n {{ item.text }}\n </Button>\n </template>\n </div>\n </template>\n </Dropdown>\n </template>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\n\nconst props = defineProps({\n buttons: {\n type: Array,\n required: true\n }\n});\n\nconst dropdownOpen = ref(false);\n\nconst handleDropdownClick = (action) => {\n if (action) {\n action();\n }\n dropdownOpen.value = false;\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAiEA,UAAM,eAAe,IAAI,KAAK;AAE9B,UAAM,sBAAsB,CAAC,WAAW;AACtC,UAAI,QAAQ;AACV,eAAM;AAAA,MACR;AACA,mBAAa,QAAQ;AAAA,IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,14 +9,14 @@ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js
9
9
  const _hoisted_1 = { class: "album-cover pos-relative" };
10
10
  const _hoisted_2 = {
11
11
  key: 0,
12
- class: "album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out"
12
+ class: "album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex ease-cubic-in-out"
13
13
  };
14
14
  const _hoisted_3 = { class: "album-info pd-medium bg-light" };
15
15
  const _hoisted_4 = {
16
- class: "mn-b-thin t-medium t-truncate",
16
+ class: "mn-b-thin fw-medium truncate",
17
17
  style: { "height": "1.50rem" }
18
18
  };
19
- const _hoisted_5 = { class: "t-transp t-small t-truncate" };
19
+ const _hoisted_5 = { class: "t-transp t-small truncate" };
20
20
  const _sfc_main = {
21
21
  __name: "AlbumCard",
22
22
  props: {
@@ -66,7 +66,7 @@ const _sfc_main = {
66
66
  __props.album.totalTracks && __props.album.totalTracks > 0 ? (openBlock(), createElementBlock("div", _hoisted_2, [
67
67
  createVNode(_sfc_main$1, {
68
68
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => playAlbum(__props.album), ["stop", "prevent"])),
69
- class: "play-button i-big bg-main radius-round flex-center flex aspect-1x1",
69
+ class: "play-button i-big bg-main radius-extra flex-center flex aspect-1x1",
70
70
  showLoader: false,
71
71
  showSucces: false
72
72
  }, {
@@ -90,7 +90,7 @@ const _sfc_main = {
90
90
  };
91
91
  }
92
92
  };
93
- const AlbumCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7bd0bb4d"]]);
93
+ const AlbumCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-70639460"]]);
94
94
  export {
95
95
  AlbumCard as default
96
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AlbumCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/AlbumCard.vue"],"sourcesContent":["<!-- components/cards/AlbumCard.vue -->\n<template>\n <router-link \n :to=\"{ name: 'album', params: { url: album.url } }\" \n class=\"album-card d-block radius-medium o-hidden\"\n >\n <div class=\"album-cover pos-relative\">\n <Media \n :url=\"album.coverArt || album.coverUrl || '/logo/logo-placeholder.jpg'\" \n class=\"w-100 aspect-1x1 object-fit-cover\"\n />\n <div v-if=\"album.totalTracks && album.totalTracks > 0\" class=\"album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out\">\n <Button \n @click.stop.prevent=\"playAlbum(album)\" \n class=\"play-button i-big bg-main radius-round flex-center flex aspect-1x1\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay class=\"i-small\" fill=\"rgb(var(--white))\" />\n </Button>\n </div>\n </div>\n <div class=\"album-info pd-medium bg-light\">\n <h3 class=\"mn-b-thin t-medium t-truncate\" style=\"height: 1.50rem\">{{ album.title }}</h3>\n <p class=\"t-transp t-small t-truncate\">{{ albumInfo }}</p>\n </div>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\n\n// Import player store & albums store\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as albumsState, actions as albumsActions } from '../../store/albums.js';\n\nconst props = defineProps({\n album: {\n type: Object,\n required: true\n }\n});\n\n// Computed properties\nconst albumInfo = computed(() => {\n const releaseYear = props.album.releaseDate ? new Date(props.album.releaseDate).getFullYear() : '';\n let artistName = 'Unknown Artist';\n \n // Handle artists array (model uses 'artists' not 'artist')\n if (props.album.artists && props.album.artists.length > 0) {\n // If populated, artists[0] will have name property\n if (props.album.artists[0]?.name) {\n artistName = props.album.artists.map(artist => artist.name).join(', ');\n } else if (typeof props.album.artists[0] === 'string') {\n // If not populated, it might be just IDs\n artistName = 'Various Artists';\n }\n } else if (props.album.artist?.name) {\n // Fallback for old data structure\n artistName = props.album.artist.name;\n }\n \n return releaseYear ? `${artistName} • ${releaseYear}` : artistName;\n});\n\n// Methods\nconst playAlbum = async (album) => {\n // If album tracks are already loaded in state, use those\n if (albumsState.currentAlbum && albumsState.currentAlbum._id === album._id && albumsState.currentAlbumTracks.length > 0) {\n playerActions.setQueue(albumsState.currentAlbumTracks);\n return;\n }\n \n // Otherwise fetch tracks for this album\n const tracks = await albumsActions.fetchAlbumTracks(album._id);\n \n if (tracks && tracks.length > 0) {\n playerActions.setQueue(tracks);\n }\n};\n</script>\n\n<style scoped>\n.album-card {\n transition: transform 0.3s ease;\n}\n\n.album-card:hover {\n transform: translateY(-5px);\n}\n\n.album-overlay {\n background: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.album-card:hover .album-overlay {\n opacity: 1;\n}\n\n.play-button {\n transform: scale(0.8);\n transition: transform 0.3s ease;\n}\n\n.album-card:hover .play-button {\n transform: scale(1);\n}\n</style>"],"names":["albumsState","playerActions","albumsActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAQd,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,cAAc,MAAM,MAAM,cAAc,IAAI,KAAK,MAAM,MAAM,WAAW,EAAE,YAAW,IAAK;AAChG,UAAI,aAAa;AAGjB,UAAI,MAAM,MAAM,WAAW,MAAM,MAAM,QAAQ,SAAS,GAAG;AAEzD,YAAI,MAAM,MAAM,QAAQ,CAAC,GAAG,MAAM;AAChC,uBAAa,MAAM,MAAM,QAAQ,IAAI,YAAU,OAAO,IAAI,EAAE,KAAK,IAAI;AAAA,QACvE,WAAW,OAAO,MAAM,MAAM,QAAQ,CAAC,MAAM,UAAU;AAErD,uBAAa;AAAA,QACf;AAAA,MACF,WAAW,MAAM,MAAM,QAAQ,MAAM;AAEnC,qBAAa,MAAM,MAAM,OAAO;AAAA,MAClC;AAEA,aAAO,cAAc,GAAG,UAAU,MAAM,WAAW,KAAK;AAAA,IAC1D,CAAC;AAGD,UAAM,YAAY,OAAO,UAAU;AAEjC,UAAIA,MAAY,gBAAgBA,MAAY,aAAa,QAAQ,MAAM,OAAOA,MAAY,mBAAmB,SAAS,GAAG;AACvHC,gBAAc,SAASD,MAAY,kBAAkB;AACrD;AAAA,MACF;AAGA,YAAM,SAAS,MAAME,UAAc,iBAAiB,MAAM,GAAG;AAE7D,UAAI,UAAU,OAAO,SAAS,GAAG;AAC/BD,gBAAc,SAAS,MAAM;AAAA,MAC/B;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"AlbumCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/AlbumCard.vue"],"sourcesContent":["<!-- components/cards/AlbumCard.vue -->\n<template>\n <router-link \n :to=\"{ name: 'album', params: { url: album.url } }\" \n class=\"album-card d-block radius-medium o-hidden\"\n >\n <div class=\"album-cover pos-relative\">\n <Media \n :url=\"album.coverArt || album.coverUrl || '/logo/logo-placeholder.jpg'\" \n class=\"w-100 aspect-1x1 object-fit-cover\"\n />\n <div v-if=\"album.totalTracks && album.totalTracks > 0\" class=\"album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex ease-cubic-in-out\">\n <Button \n @click.stop.prevent=\"playAlbum(album)\" \n class=\"play-button i-big bg-main radius-extra flex-center flex aspect-1x1\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay class=\"i-small\" fill=\"rgb(var(--white))\" />\n </Button>\n </div>\n </div>\n <div class=\"album-info pd-medium bg-light\">\n <h3 class=\"mn-b-thin fw-medium truncate\" style=\"height: 1.50rem\">{{ album.title }}</h3>\n <p class=\"t-transp t-small truncate\">{{ albumInfo }}</p>\n </div>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\n\n// Import player store & albums store\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as albumsState, actions as albumsActions } from '../../store/albums.js';\n\nconst props = defineProps({\n album: {\n type: Object,\n required: true\n }\n});\n\n// Computed properties\nconst albumInfo = computed(() => {\n const releaseYear = props.album.releaseDate ? new Date(props.album.releaseDate).getFullYear() : '';\n let artistName = 'Unknown Artist';\n \n // Handle artists array (model uses 'artists' not 'artist')\n if (props.album.artists && props.album.artists.length > 0) {\n // If populated, artists[0] will have name property\n if (props.album.artists[0]?.name) {\n artistName = props.album.artists.map(artist => artist.name).join(', ');\n } else if (typeof props.album.artists[0] === 'string') {\n // If not populated, it might be just IDs\n artistName = 'Various Artists';\n }\n } else if (props.album.artist?.name) {\n // Fallback for old data structure\n artistName = props.album.artist.name;\n }\n \n return releaseYear ? `${artistName} • ${releaseYear}` : artistName;\n});\n\n// Methods\nconst playAlbum = async (album) => {\n // If album tracks are already loaded in state, use those\n if (albumsState.currentAlbum && albumsState.currentAlbum._id === album._id && albumsState.currentAlbumTracks.length > 0) {\n playerActions.setQueue(albumsState.currentAlbumTracks);\n return;\n }\n \n // Otherwise fetch tracks for this album\n const tracks = await albumsActions.fetchAlbumTracks(album._id);\n \n if (tracks && tracks.length > 0) {\n playerActions.setQueue(tracks);\n }\n};\n</script>\n\n<style scoped>\n.album-card {\n transition: transform 0.3s ease;\n}\n\n.album-card:hover {\n transform: translateY(-5px);\n}\n\n.album-overlay {\n background: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.album-card:hover .album-overlay {\n opacity: 1;\n}\n\n.play-button {\n transform: scale(0.8);\n transition: transform 0.3s ease;\n}\n\n.album-card:hover .play-button {\n transform: scale(1);\n}\n</style>"],"names":["albumsState","playerActions","albumsActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAQd,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,cAAc,MAAM,MAAM,cAAc,IAAI,KAAK,MAAM,MAAM,WAAW,EAAE,YAAW,IAAK;AAChG,UAAI,aAAa;AAGjB,UAAI,MAAM,MAAM,WAAW,MAAM,MAAM,QAAQ,SAAS,GAAG;AAEzD,YAAI,MAAM,MAAM,QAAQ,CAAC,GAAG,MAAM;AAChC,uBAAa,MAAM,MAAM,QAAQ,IAAI,YAAU,OAAO,IAAI,EAAE,KAAK,IAAI;AAAA,QACvE,WAAW,OAAO,MAAM,MAAM,QAAQ,CAAC,MAAM,UAAU;AAErD,uBAAa;AAAA,QACf;AAAA,MACF,WAAW,MAAM,MAAM,QAAQ,MAAM;AAEnC,qBAAa,MAAM,MAAM,OAAO;AAAA,MAClC;AAEA,aAAO,cAAc,GAAG,UAAU,MAAM,WAAW,KAAK;AAAA,IAC1D,CAAC;AAGD,UAAM,YAAY,OAAO,UAAU;AAEjC,UAAIA,MAAY,gBAAgBA,MAAY,aAAa,QAAQ,MAAM,OAAOA,MAAY,mBAAmB,SAAS,GAAG;AACvHC,gBAAc,SAASD,MAAY,kBAAkB;AACrD;AAAA,MACF;AAGA,YAAM,SAAS,MAAME,UAAc,iBAAiB,MAAM,GAAG;AAE7D,UAAI,UAAU,OAAO,SAAS,GAAG;AAC/BD,gBAAc,SAAS,MAAM;AAAA,MAC/B;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -11,10 +11,10 @@ const _hoisted_3 = {
11
11
  const _hoisted_4 = { class: "h3" };
12
12
  const _hoisted_5 = { class: "p-small" };
13
13
  const _hoisted_6 = { class: "pd-small" };
14
- const _hoisted_7 = { class: "t-medium mn-b-small t-truncate" };
14
+ const _hoisted_7 = { class: "fw-medium mn-b-small truncate" };
15
15
  const _hoisted_8 = {
16
16
  key: 0,
17
- class: "p-small t-transp t-trim"
17
+ class: "p-small t-transp truncate"
18
18
  };
19
19
  const _sfc_main = {
20
20
  __name: "ArtistCard",
@@ -44,7 +44,7 @@ const _sfc_main = {
44
44
  };
45
45
  return (_ctx, _cache) => {
46
46
  return openBlock(), createElementBlock("div", {
47
- class: normalizeClass(["artist-card flex flex-column radius-medium o-hidden bg-white", { "cursor-pointer hover-scale-1": __props.clickable }]),
47
+ class: normalizeClass(["artist-card flex flex-column radius-medium o-hidden bg-white", { "cursor-pointer hover:scale-[1.05]": __props.clickable }]),
48
48
  onClick: handleClick
49
49
  }, [
50
50
  createElementVNode("div", _hoisted_1, [
@@ -77,7 +77,7 @@ const _sfc_main = {
77
77
  };
78
78
  }
79
79
  };
80
- const ArtistCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-648ab17c"]]);
80
+ const ArtistCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0400c413"]]);
81
81
  export {
82
82
  ArtistCard as default
83
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ArtistCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/ArtistCard.vue"],"sourcesContent":["<template>\n <div \n class=\"artist-card flex flex-column radius-medium o-hidden bg-white\"\n :class=\"{ 'cursor-pointer hover-scale-1': clickable }\"\n @click=\"handleClick\"\n >\n <div class=\"artist-image w-100 pos-relative aspect-1x1\">\n <img \n v-if=\"artist.photo\" \n :src=\"FILE_SERVER_URL + artist.photo\" \n :alt=\"artist.name\"\n class=\"w-100 h-100 object-fit-cover\"\n loading=\"lazy\"\n />\n <div v-else class=\"w-100 h-100 bg-light flex-center flex\">\n <span class=\"h3\">{{ artist.name ? artist.name.charAt(0) : '?' }}</span>\n </div>\n \n <div \n v-if=\"showStatus\" \n class=\"pos-absolute pos-t-small pos-r-small pd-micro radius-medium\"\n :class=\"{\n 'bg-second': artist.status === 'published',\n 'bg-fifth': artist.status === 'featured',\n 'bg-grey': artist.status === 'draft'\n }\"\n >\n <span class=\" p-small\">{{ artist.status }}</span>\n </div>\n </div>\n \n <div class=\"pd-small\">\n <h4 class=\"t-medium mn-b-small t-truncate\">{{ artist.name }}</h4>\n <p v-if=\"artist.genres && artist.genres.length\" class=\"p-small t-transp t-trim\">\n {{ artist.genres.join(', ') }}\n </p>\n </div>\n \n <slot name=\"actions\"></slot>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useRouter } from 'vue-router';\n\nconst props = defineProps({\n artist: {\n type: Object,\n required: true\n },\n clickable: {\n type: Boolean,\n default: true\n },\n showStatus: {\n type: Boolean,\n default: false\n }\n});\n\nconst router = useRouter();\n\nconst handleClick = () => {\n if (!props.clickable) return;\n \n router.push({\n name: 'artist',\n params: { url: props.artist.url }\n });\n};\n</script>\n\n<style scoped>\n.artist-card {\n border: 1px solid rgba(var(--grey), 0.2);\n transition: transform 0.2s ease;\n}\n\n.hover-scale-1:hover {\n transform: scale(1.02);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,UAAM,QAAQ;AAed,UAAM,SAAS,UAAS;AAExB,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,MAAM,UAAW;AAEtB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG;AAAA,MACnC,CAAG;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ArtistCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/ArtistCard.vue"],"sourcesContent":["<template>\n <div \n class=\"artist-card flex flex-column radius-medium o-hidden bg-white\"\n :class=\"{ 'cursor-pointer hover:scale-[1.05]': clickable }\"\n @click=\"handleClick\"\n >\n <div class=\"artist-image w-100 pos-relative aspect-1x1\">\n <img \n v-if=\"artist.photo\" \n :src=\"FILE_SERVER_URL + artist.photo\" \n :alt=\"artist.name\"\n class=\"w-100 h-100 object-fit-cover\"\n loading=\"lazy\"\n />\n <div v-else class=\"w-100 h-100 bg-light flex-center flex\">\n <span class=\"h3\">{{ artist.name ? artist.name.charAt(0) : '?' }}</span>\n </div>\n \n <div \n v-if=\"showStatus\" \n class=\"pos-absolute pos-t-small pos-r-small pd-micro radius-medium\"\n :class=\"{\n 'bg-second': artist.status === 'published',\n 'bg-fifth': artist.status === 'featured',\n 'bg-grey': artist.status === 'draft'\n }\"\n >\n <span class=\" p-small\">{{ artist.status }}</span>\n </div>\n </div>\n \n <div class=\"pd-small\">\n <h4 class=\"fw-medium mn-b-small truncate\">{{ artist.name }}</h4>\n <p v-if=\"artist.genres && artist.genres.length\" class=\"p-small t-transp truncate\">\n {{ artist.genres.join(', ') }}\n </p>\n </div>\n \n <slot name=\"actions\"></slot>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useRouter } from 'vue-router';\n\nconst props = defineProps({\n artist: {\n type: Object,\n required: true\n },\n clickable: {\n type: Boolean,\n default: true\n },\n showStatus: {\n type: Boolean,\n default: false\n }\n});\n\nconst router = useRouter();\n\nconst handleClick = () => {\n if (!props.clickable) return;\n \n router.push({\n name: 'artist',\n params: { url: props.artist.url }\n });\n};\n</script>\n\n<style scoped>\n.artist-card {\n border: 1px solid rgba(var(--grey), 0.2);\n transition: transform 0.2s ease;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,UAAM,QAAQ;AAed,UAAM,SAAS,UAAS;AAExB,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,MAAM,UAAW;AAEtB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG;AAAA,MACnC,CAAG;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -47,7 +47,7 @@ const _sfc_main = {
47
47
  const _component_router_link = resolveComponent("router-link");
48
48
  return openBlock(), createBlock(_component_router_link, {
49
49
  to: __props.artist.url ? { name: "artist", params: { url: __props.artist.url } } : __props.artist.to,
50
- class: "artist-card bg-light pd-medium radius-medium flex flex-v-center flex-justify-between gap-thin flex-1 hover-opacity"
50
+ class: "artist-card bg-light pd-medium radius-medium flex flex-v-center flex-justify-between gap-thin flex-child-1 hover:opacity-70"
51
51
  }, {
52
52
  default: withCtx(() => [
53
53
  createElementVNode("div", _hoisted_1, [
@@ -64,7 +64,7 @@ const _sfc_main = {
64
64
  createElementVNode("span", _hoisted_5, toDisplayString(__props.artist.name), 1),
65
65
  __props.artist.isVerified ? (openBlock(), createBlock(_sfc_main$1, {
66
66
  key: 0,
67
- class: "w-1r h-1r t-primary"
67
+ class: "w-1r h-1r t-main"
68
68
  })) : createCommentVNode("", true)
69
69
  ]),
70
70
  createElementVNode("span", _hoisted_6, toDisplayString(__props.artistType), 1)
@@ -88,7 +88,7 @@ const _sfc_main = {
88
88
  };
89
89
  }
90
90
  };
91
- const ArtistCardSmall = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-64fdf510"]]);
91
+ const ArtistCardSmall = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3ff14280"]]);
92
92
  export {
93
93
  ArtistCardSmall as default
94
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ArtistCardSmall.vue.js","sources":["../../../../../../../src/modules/music/components/cards/ArtistCardSmall.vue"],"sourcesContent":["<!-- components/cards/ArtistCard.vue -->\n<template>\n <router-link\n :to=\"artist.url ? { name: 'artist', params: { url: artist.url } } : artist.to\"\n class=\"artist-card bg-light pd-medium radius-medium flex flex-v-center flex-justify-between gap-thin flex-1 hover-opacity\"\n >\n <div\n class=\"flex flex-nowrap flex-v-center gap-thin\"\n >\n <div class=\"artist-avatar\">\n <Media \n v-if=\"artist.photoUrl\"\n :url=\"artist.photoUrl\"\n :alt=\"artist.name\"\n class=\"w-4r h-4r radius-full object-fit-cover\"\n />\n <div v-else class=\"w-4r h-4r flex flex center radius-extra radius-full bg-main flex-center\">\n {{ artist.name.charAt(0) }}\n </div>\n </div>\n\n <div>\n <div class=\"flex items-center gap-thin\">\n <span class=\"mn-b-thin\">{{ artist.name }}</span>\n <IconVerified v-if=\"artist.isVerified\" class=\"w-1r h-1r t-primary\" />\n </div>\n <span class=\"t-small t-transp\">{{ artistType }}</span>\n </div>\n </div>\n\n <Button \n v-if=\"showFollowButton\"\n @click=\"handleFollowClick\"\n :color=\"isFollowing ? 'primary' : 'transp'\"\n size=\"small\"\n class=\"bg-main\"\n >\n {{ isFollowing ? 'Following' : 'Follow' }}\n </Button>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport IconVerified from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\nconst props = defineProps({\n artist: {\n type: Object,\n required: true,\n validator: (value) => {\n return value._id && value.name && value.url;\n }\n },\n isFollowing: {\n type: Boolean,\n default: false\n },\n showFollowButton: {\n type: Boolean,\n default: true\n },\n artistType: {\n type: String,\n default: 'Artist'\n }\n});\n\nconst emit = defineEmits(['toggle-follow']);\n\nconst handleFollowClick = () => {\n emit('toggle-follow', props.artist._id);\n};\n</script>\n\n<style scoped>\n.artist-card {\n transition: all 0.2s ease;\n}\n\n.artist-card:hover {\n transform: translateY(-5px);\n}\n\n.artist-avatar img {\n transition: transform 0.2s ease;\n}\n\n.artist-card:hover .artist-avatar img {\n transform: scale(1.05);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,UAAM,QAAQ;AAsBd,UAAM,OAAO;AAEb,UAAM,oBAAoB,MAAM;AAC9B,WAAK,iBAAiB,MAAM,OAAO,GAAG;AAAA,IACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ArtistCardSmall.vue.js","sources":["../../../../../../../src/modules/music/components/cards/ArtistCardSmall.vue"],"sourcesContent":["<!-- components/cards/ArtistCard.vue -->\n<template>\n <router-link\n :to=\"artist.url ? { name: 'artist', params: { url: artist.url } } : artist.to\"\n class=\"artist-card bg-light pd-medium radius-medium flex flex-v-center flex-justify-between gap-thin flex-child-1 hover:opacity-70\"\n >\n <div\n class=\"flex flex-nowrap flex-v-center gap-thin\"\n >\n <div class=\"artist-avatar\">\n <Media \n v-if=\"artist.photoUrl\"\n :url=\"artist.photoUrl\"\n :alt=\"artist.name\"\n class=\"w-4r h-4r radius-full object-fit-cover\"\n />\n <div v-else class=\"w-4r h-4r flex flex center radius-extra radius-full bg-main flex-center\">\n {{ artist.name.charAt(0) }}\n </div>\n </div>\n\n <div>\n <div class=\"flex items-center gap-thin\">\n <span class=\"mn-b-thin\">{{ artist.name }}</span>\n <IconVerified v-if=\"artist.isVerified\" class=\"w-1r h-1r t-main\" />\n </div>\n <span class=\"t-small t-transp\">{{ artistType }}</span>\n </div>\n </div>\n\n <Button \n v-if=\"showFollowButton\"\n @click=\"handleFollowClick\"\n :color=\"isFollowing ? 'primary' : 'transp'\"\n size=\"small\"\n class=\"bg-main\"\n >\n {{ isFollowing ? 'Following' : 'Follow' }}\n </Button>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport IconVerified from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\nconst props = defineProps({\n artist: {\n type: Object,\n required: true,\n validator: (value) => {\n return value._id && value.name && value.url;\n }\n },\n isFollowing: {\n type: Boolean,\n default: false\n },\n showFollowButton: {\n type: Boolean,\n default: true\n },\n artistType: {\n type: String,\n default: 'Artist'\n }\n});\n\nconst emit = defineEmits(['toggle-follow']);\n\nconst handleFollowClick = () => {\n emit('toggle-follow', props.artist._id);\n};\n</script>\n\n<style scoped>\n.artist-card {\n transition: all 0.2s ease;\n}\n\n.artist-card:hover {\n transform: translateY(-5px);\n}\n\n.artist-avatar img {\n transition: transform 0.2s ease;\n}\n\n.artist-card:hover .artist-avatar img {\n transform: scale(1.05);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,UAAM,QAAQ;AAsBd,UAAM,OAAO;AAEb,UAAM,oBAAoB,MAAM;AAC9B,WAAK,iBAAiB,MAAM,OAAO,GAAG;AAAA,IACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,11 +9,11 @@ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js
9
9
  const _hoisted_1 = { class: "playlist-cover pos-relative" };
10
10
  const _hoisted_2 = {
11
11
  key: 0,
12
- class: "playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out"
12
+ class: "playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex ease-cubic-in-out"
13
13
  };
14
14
  const _hoisted_3 = { class: "playlist-info pd-small bg-light" };
15
- const _hoisted_4 = { class: "t-medium mn-b-small t-truncate" };
16
- const _hoisted_5 = { class: "t-transp t-small t-truncate" };
15
+ const _hoisted_4 = { class: "fw-medium mn-b-small truncate" };
16
+ const _hoisted_5 = { class: "t-transp t-small truncate" };
17
17
  const _sfc_main = {
18
18
  __name: "PlaylistCard",
19
19
  props: {
@@ -69,7 +69,7 @@ const _sfc_main = {
69
69
  __props.playlist.tracks && __props.playlist.tracks.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2, [
70
70
  createVNode(_sfc_main$1, {
71
71
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => playPlaylist(__props.playlist), ["stop", "prevent"])),
72
- class: "play-button bg-main radius-round flex-center flex aspect-1x1",
72
+ class: "play-button bg-main radius-extra flex-center flex aspect-1x1",
73
73
  showLoader: false,
74
74
  showSucces: false
75
75
  }, {
@@ -93,7 +93,7 @@ const _sfc_main = {
93
93
  };
94
94
  }
95
95
  };
96
- const PlaylistCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-be2a71af"]]);
96
+ const PlaylistCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f2da5559"]]);
97
97
  export {
98
98
  PlaylistCard as default
99
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PlaylistCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/PlaylistCard.vue"],"sourcesContent":["<!-- components/cards/PlaylistCard.vue -->\n<template>\n <router-link \n :to=\"{ name: 'playlist', params: { url: playlist.url } }\" \n class=\"playlist-card d-block radius-small o-hidden\"\n >\n <div class=\"playlist-cover pos-relative\">\n <Media \n :url=\"playlist.coverUrl || '/logo/logo-placeholder.jpg'\" \n class=\"w-100 aspect-1x1 object-fit-cover\"\n />\n <div v-if=\"playlist.tracks && playlist.tracks.length > 0\" class=\"playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out\">\n <Button \n @click.stop.prevent=\"playPlaylist(playlist)\" \n class=\"play-button bg-main radius-round flex-center flex aspect-1x1\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay class=\"i-small\" fill=\"rgb(var(--black))\" />\n </Button>\n </div>\n </div>\n <div class=\"playlist-info pd-small bg-light\">\n <h3 class=\" t-medium mn-b-small t-truncate\">{{ playlist.title }}</h3>\n <p class=\"t-transp t-small t-truncate\">{{ playlistInfo }}</p>\n </div>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\n\n// Import player store\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as playlistsState, actions as playlistsActions } from '../../store/playlists.js';\n\nconst props = defineProps({\n playlist: {\n type: Object,\n required: true\n }\n});\n\n// Computed properties\nconst playlistInfo = computed(() => {\n const trackCount = props.playlist.tracks?.length || 0;\n let creatorName = 'Unknown';\n \n if (props.playlist.creator?.target?.profile?.name) {\n creatorName = props.playlist.creator.target.profile.name;\n } else if (props.playlist.creator?.target?.name) {\n creatorName = props.playlist.creator.target.name;\n }\n \n return `${creatorName} • ${trackCount} ${trackCount === 1 ? 'track' : 'tracks'}`;\n});\n\n// Methods\nconst playPlaylist = async (playlist) => {\n if (!playlist || !playlist.url) {\n console.warn('Playlist or URL not available');\n return;\n }\n \n try {\n console.log('Loading playlist:', playlist.url);\n \n // Fetch full playlist data with populated tracks\n await playlistsActions.fetchPlaylistByUrl(playlist.url);\n \n // Get tracks from store after loading\n const tracks = playlistsState.currentPlaylistTracks || [];\n \n console.log('Loaded tracks:', tracks);\n \n if (tracks.length > 0) {\n console.log('Setting queue with tracks:', tracks);\n playerActions.setQueue(tracks);\n } else {\n console.warn('No tracks found in playlist after loading');\n }\n } catch (error) {\n console.error('Error loading playlist for playback:', error);\n }\n};\n</script>\n\n<style scoped>\n.playlist-card {\n transition: transform 0.3s ease;\n}\n\n.playlist-card:hover {\n transform: translateY(-5px);\n}\n\n.playlist-overlay {\n background: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.playlist-card:hover .playlist-overlay {\n opacity: 1;\n}\n\n.play-button {\n width: 48px;\n height: 48px;\n transform: scale(0.8);\n transition: transform 0.3s ease;\n}\n\n.playlist-card:hover .play-button {\n transform: scale(1);\n}\n</style>"],"names":["playlistsActions","playlistsState","playerActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAQd,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,aAAa,MAAM,SAAS,QAAQ,UAAU;AACpD,UAAI,cAAc;AAElB,UAAI,MAAM,SAAS,SAAS,QAAQ,SAAS,MAAM;AACjD,sBAAc,MAAM,SAAS,QAAQ,OAAO,QAAQ;AAAA,MACtD,WAAW,MAAM,SAAS,SAAS,QAAQ,MAAM;AAC/C,sBAAc,MAAM,SAAS,QAAQ,OAAO;AAAA,MAC9C;AAEA,aAAO,GAAG,WAAW,MAAM,UAAU,IAAI,eAAe,IAAI,UAAU,QAAQ;AAAA,IAChF,CAAC;AAGD,UAAM,eAAe,OAAO,aAAa;AACvC,UAAI,CAAC,YAAY,CAAC,SAAS,KAAK;AAC9B,gBAAQ,KAAK,+BAA+B;AAC5C;AAAA,MACF;AAEA,UAAI;AACF,gBAAQ,IAAI,qBAAqB,SAAS,GAAG;AAG7C,cAAMA,QAAiB,mBAAmB,SAAS,GAAG;AAGtD,cAAM,SAASC,MAAe,yBAAyB,CAAA;AAEvD,gBAAQ,IAAI,kBAAkB,MAAM;AAEpC,YAAI,OAAO,SAAS,GAAG;AACrB,kBAAQ,IAAI,8BAA8B,MAAM;AAChDC,oBAAc,SAAS,MAAM;AAAA,QAC/B,OAAO;AACL,kBAAQ,KAAK,2CAA2C;AAAA,QAC1D;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wCAAwC,KAAK;AAAA,MAC7D;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlaylistCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/PlaylistCard.vue"],"sourcesContent":["<!-- components/cards/PlaylistCard.vue -->\n<template>\n <router-link \n :to=\"{ name: 'playlist', params: { url: playlist.url } }\" \n class=\"playlist-card d-block radius-small o-hidden\"\n >\n <div class=\"playlist-cover pos-relative\">\n <Media \n :url=\"playlist.coverUrl || '/logo/logo-placeholder.jpg'\" \n class=\"w-100 aspect-1x1 object-fit-cover\"\n />\n <div v-if=\"playlist.tracks && playlist.tracks.length > 0\" class=\"playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex ease-cubic-in-out\">\n <Button \n @click.stop.prevent=\"playPlaylist(playlist)\" \n class=\"play-button bg-main radius-extra flex-center flex aspect-1x1\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay class=\"i-small\" fill=\"rgb(var(--black))\" />\n </Button>\n </div>\n </div>\n <div class=\"playlist-info pd-small bg-light\">\n <h3 class=\" fw-medium mn-b-small truncate\">{{ playlist.title }}</h3>\n <p class=\"t-transp t-small truncate\">{{ playlistInfo }}</p>\n </div>\n </router-link>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\n\n// Import player store\nimport { actions as playerActions } from '../../store/player.js';\nimport { state as playlistsState, actions as playlistsActions } from '../../store/playlists.js';\n\nconst props = defineProps({\n playlist: {\n type: Object,\n required: true\n }\n});\n\n// Computed properties\nconst playlistInfo = computed(() => {\n const trackCount = props.playlist.tracks?.length || 0;\n let creatorName = 'Unknown';\n \n if (props.playlist.creator?.target?.profile?.name) {\n creatorName = props.playlist.creator.target.profile.name;\n } else if (props.playlist.creator?.target?.name) {\n creatorName = props.playlist.creator.target.name;\n }\n \n return `${creatorName} • ${trackCount} ${trackCount === 1 ? 'track' : 'tracks'}`;\n});\n\n// Methods\nconst playPlaylist = async (playlist) => {\n if (!playlist || !playlist.url) {\n console.warn('Playlist or URL not available');\n return;\n }\n \n try {\n console.log('Loading playlist:', playlist.url);\n \n // Fetch full playlist data with populated tracks\n await playlistsActions.fetchPlaylistByUrl(playlist.url);\n \n // Get tracks from store after loading\n const tracks = playlistsState.currentPlaylistTracks || [];\n \n console.log('Loaded tracks:', tracks);\n \n if (tracks.length > 0) {\n console.log('Setting queue with tracks:', tracks);\n playerActions.setQueue(tracks);\n } else {\n console.warn('No tracks found in playlist after loading');\n }\n } catch (error) {\n console.error('Error loading playlist for playback:', error);\n }\n};\n</script>\n\n<style scoped>\n.playlist-card {\n transition: transform 0.3s ease;\n}\n\n.playlist-card:hover {\n transform: translateY(-5px);\n}\n\n.playlist-overlay {\n background: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.playlist-card:hover .playlist-overlay {\n opacity: 1;\n}\n\n.play-button {\n width: 48px;\n height: 48px;\n transform: scale(0.8);\n transition: transform 0.3s ease;\n}\n\n.playlist-card:hover .play-button {\n transform: scale(1);\n}\n</style>"],"names":["playlistsActions","playlistsState","playerActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAQd,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,aAAa,MAAM,SAAS,QAAQ,UAAU;AACpD,UAAI,cAAc;AAElB,UAAI,MAAM,SAAS,SAAS,QAAQ,SAAS,MAAM;AACjD,sBAAc,MAAM,SAAS,QAAQ,OAAO,QAAQ;AAAA,MACtD,WAAW,MAAM,SAAS,SAAS,QAAQ,MAAM;AAC/C,sBAAc,MAAM,SAAS,QAAQ,OAAO;AAAA,MAC9C;AAEA,aAAO,GAAG,WAAW,MAAM,UAAU,IAAI,eAAe,IAAI,UAAU,QAAQ;AAAA,IAChF,CAAC;AAGD,UAAM,eAAe,OAAO,aAAa;AACvC,UAAI,CAAC,YAAY,CAAC,SAAS,KAAK;AAC9B,gBAAQ,KAAK,+BAA+B;AAC5C;AAAA,MACF;AAEA,UAAI;AACF,gBAAQ,IAAI,qBAAqB,SAAS,GAAG;AAG7C,cAAMA,QAAiB,mBAAmB,SAAS,GAAG;AAGtD,cAAM,SAASC,MAAe,yBAAyB,CAAA;AAEvD,gBAAQ,IAAI,kBAAkB,MAAM;AAEpC,YAAI,OAAO,SAAS,GAAG;AACrB,kBAAQ,IAAI,8BAA8B,MAAM;AAChDC,oBAAc,SAAS,MAAM;AAAA,QAC/B,OAAO;AACL,kBAAQ,KAAK,2CAA2C;AAAA,QAC1D;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wCAAwC,KAAK;AAAA,MAC7D;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -19,7 +19,7 @@ const _hoisted_6 = { key: 1 };
19
19
  const _hoisted_7 = { key: 1 };
20
20
  const _hoisted_8 = {
21
21
  key: 0,
22
- class: "track-album w-15r mobile:w-0 mobile:hidden t-transp t-truncate"
22
+ class: "track-album w-15r mobile:w-0 mobile:hidden t-transp truncate"
23
23
  };
24
24
  const _hoisted_9 = { key: 1 };
25
25
  const _hoisted_10 = { class: "track-duration w-5r t-right t-transp" };
@@ -72,7 +72,7 @@ const _sfc_main = {
72
72
  return (_ctx, _cache) => {
73
73
  const _component_router_link = resolveComponent("router-link");
74
74
  return openBlock(), createElementBlock("div", {
75
- class: normalizeClass(["track-item pd-small hover-bg-white-transp-25 flex-v-center flex cursor-pointer", { "bg-main-transp-10": isPlaying(__props.track) }]),
75
+ class: normalizeClass(["track-item pd-small hover:bg-white-transp-25 flex-v-center flex cursor-pointer", { "bg-main-transp-10": isPlaying(__props.track) }]),
76
76
  onClick: _cache[7] || (_cache[7] = ($event) => playTrack(__props.track)),
77
77
  onDblclick: _cache[8] || (_cache[8] = ($event) => playTrack(__props.track, true)),
78
78
  onMouseenter: _cache[9] || (_cache[9] = ($event) => hoveredIndex.value = props.index),
@@ -125,7 +125,7 @@ const _sfc_main = {
125
125
  __props.track.url ? (openBlock(), createBlock(_component_router_link, {
126
126
  key: 0,
127
127
  to: "/music/tracks/" + __props.track.url,
128
- class: normalizeClass(["hover-t-main hover-t-underline", { "t-main": isPlaying(__props.track) }]),
128
+ class: normalizeClass(["hover:t-main hover:underline", { "t-main": isPlaying(__props.track) }]),
129
129
  onClick: _cache[4] || (_cache[4] = withModifiers(() => {
130
130
  }, ["stop"]))
131
131
  }, {
@@ -141,7 +141,7 @@ const _sfc_main = {
141
141
  __props.track.artist && __props.track.artist._id ? (openBlock(), createBlock(_component_router_link, {
142
142
  key: 0,
143
143
  to: "/music/artists/" + __props.track.artist.url,
144
- class: "t-transp hover-t-underline",
144
+ class: "t-transp hover:underline",
145
145
  onClick: _cache[5] || (_cache[5] = withModifiers(() => {
146
146
  }, ["stop"]))
147
147
  }, {
@@ -157,7 +157,7 @@ const _sfc_main = {
157
157
  __props.track.album && __props.track.album._id ? (openBlock(), createBlock(_component_router_link, {
158
158
  key: 0,
159
159
  to: "/music/albums/" + __props.track.album.url,
160
- class: "t-transp hover-t-underline",
160
+ class: "t-transp hover:underline",
161
161
  onClick: _cache[6] || (_cache[6] = withModifiers(() => {
162
162
  }, ["stop"]))
163
163
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"TrackListCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/TrackListCard.vue"],"sourcesContent":["<!-- components/cards/TrackListCard.vue -->\n<template>\n <div \n class=\"track-item pd-small hover-bg-white-transp-25 flex-v-center flex cursor-pointer\"\n :class=\"{'bg-main-transp-10': isPlaying(track)}\"\n @click=\"playTrack(track)\"\n @dblclick=\"playTrack(track, true)\"\n @mouseenter=\"hoveredIndex = props.index\"\n @mouseleave=\"hoveredIndex = -1\"\n >\n <div class=\"track-number w-3r t-center pos-relative\">\n <span v-if=\"!isPlaying(track) && hoveredIndex !== props.index\" class=\"t-transp\">{{ props.index + 1 }}</span>\n <Button \n v-else-if=\"!isPlaying(track) && hoveredIndex === props.index\"\n @click.stop=\"playTrack(track)\"\n class=\"bg-main pd-thin\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay @click.stop=\"playTrack(track)\" class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </Button>\n <Button \n v-else\n @click.stop=\"pauseTrack()\"\n class=\"bg-main pd-thin\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPause @click.stop=\"pauseTrack()\" class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </Button>\n </div>\n \n <div class=\"track-title flex-child-1 flex flex-v-center\">\n <div v-if=\"showCover\" class=\"track-cover mn-r-small\">\n <Media \n :url=\"track.coverUrl || (track.album && track.album.coverUrl) || '/logo/logo-placeholder.jpg'\" \n class=\"w-3r h-3r object-fit-cover o-hidden radius-small\"\n />\n </div>\n \n <div class=\"track-info\">\n <div class=\"track-name \" :class=\"{'t-main': isPlaying(track)}\">\n <router-link\n v-if=\"track.url\"\n :to=\"'/music/tracks/' + track.url\"\n class=\"hover-t-main hover-t-underline\"\n :class=\"{'t-main': isPlaying(track)}\"\n @click.stop\n >\n {{ track.title }}\n </router-link>\n <span v-else>{{ track.title }}</span>\n </div>\n <div :class=\"{'t-main': isPlaying(track)}\" class=\"track-artist t-transp t-small\">\n <router-link\n v-if=\"track.artist && track.artist._id\"\n :to=\"'/music/artists/' + track.artist.url\"\n class=\"t-transp hover-t-underline\"\n @click.stop\n >\n {{ getArtistName(track) }}\n </router-link>\n <span v-else>{{ getArtistName(track) }}</span>\n </div>\n </div>\n </div>\n \n <div v-if=\"showAlbum\" class=\"track-album w-15r mobile:w-0 mobile:hidden t-transp t-truncate\">\n <router-link\n v-if=\"track.album && track.album._id\"\n :to=\"'/music/albums/' + track.album.url\"\n class=\"t-transp hover-t-underline\"\n @click.stop\n >\n {{ track.album.title }}\n </router-link>\n <span v-else>{{ track.album?.title || 'Single' }}</span>\n </div>\n \n <div class=\"track-duration w-5r t-right t-transp\">{{ formatDuration(track.duration) }}</div>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Props\nconst props = defineProps({\n track: {\n type: Object,\n required: true\n },\n index: {\n type: Number,\n default: 0\n },\n showCover: {\n type: Boolean,\n default: true\n },\n showAlbum: {\n type: Boolean,\n default: true\n }\n});\n\n// State\nconst hoveredIndex = ref(-1);\n\n// Methods\nconst isPlaying = (track) => {\n return playerState.currentTrack && playerState.currentTrack._id === track._id && playerState.isPlaying;\n};\n\nconst playTrack = (track, force = false) => {\n if (isPlaying(track) && !force) {\n playerActions.togglePlay();\n } else {\n playerActions.playTrack(track);\n }\n};\n\nconst pauseTrack = () => {\n playerActions.togglePlay();\n};\n\nconst getArtistName = (track) => {\n if (!track || !track.artist) return 'Unknown Artist';\n return typeof track.artist === 'object' ? track.artist.name : 'Unknown Artist';\n};\n\nconst formatDuration = (duration) => {\n if (!duration) return '--:--';\n \n const minutes = Math.floor(duration / 60);\n const seconds = Math.floor(duration % 60);\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n};\n</script>"],"names":["playerState","playerActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,UAAM,QAAQ;AAoBd,UAAM,eAAe,IAAI,EAAE;AAG3B,UAAM,YAAY,CAAC,UAAU;AAC3B,aAAOA,MAAY,gBAAgBA,MAAY,aAAa,QAAQ,MAAM,OAAOA,MAAY;AAAA,IAC/F;AAEA,UAAM,YAAY,CAAC,OAAO,QAAQ,UAAU;AAC1C,UAAI,UAAU,KAAK,KAAK,CAAC,OAAO;AAC9BC,gBAAc,WAAU;AAAA,MAC1B,OAAO;AACLA,gBAAc,UAAU,KAAK;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,aAAa,MAAM;AACvBA,cAAc,WAAU;AAAA,IAC1B;AAEA,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,SAAS,CAAC,MAAM,OAAQ,QAAO;AACpC,aAAO,OAAO,MAAM,WAAW,WAAW,MAAM,OAAO,OAAO;AAAA,IAChE;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,UAAI,CAAC,SAAU,QAAO;AAEtB,YAAM,UAAU,KAAK,MAAM,WAAW,EAAE;AACxC,YAAM,UAAU,KAAK,MAAM,WAAW,EAAE;AACxC,aAAO,GAAG,OAAO,IAAI,QAAQ,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC;AAAA,IAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TrackListCard.vue.js","sources":["../../../../../../../src/modules/music/components/cards/TrackListCard.vue"],"sourcesContent":["<!-- components/cards/TrackListCard.vue -->\n<template>\n <div \n class=\"track-item pd-small hover:bg-white-transp-25 flex-v-center flex cursor-pointer\"\n :class=\"{'bg-main-transp-10': isPlaying(track)}\"\n @click=\"playTrack(track)\"\n @dblclick=\"playTrack(track, true)\"\n @mouseenter=\"hoveredIndex = props.index\"\n @mouseleave=\"hoveredIndex = -1\"\n >\n <div class=\"track-number w-3r t-center pos-relative\">\n <span v-if=\"!isPlaying(track) && hoveredIndex !== props.index\" class=\"t-transp\">{{ props.index + 1 }}</span>\n <Button \n v-else-if=\"!isPlaying(track) && hoveredIndex === props.index\"\n @click.stop=\"playTrack(track)\"\n class=\"bg-main pd-thin\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPlay @click.stop=\"playTrack(track)\" class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </Button>\n <Button \n v-else\n @click.stop=\"pauseTrack()\"\n class=\"bg-main pd-thin\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n >\n <IconPause @click.stop=\"pauseTrack()\" class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </Button>\n </div>\n \n <div class=\"track-title flex-child-1 flex flex-v-center\">\n <div v-if=\"showCover\" class=\"track-cover mn-r-small\">\n <Media \n :url=\"track.coverUrl || (track.album && track.album.coverUrl) || '/logo/logo-placeholder.jpg'\" \n class=\"w-3r h-3r object-fit-cover o-hidden radius-small\"\n />\n </div>\n \n <div class=\"track-info\">\n <div class=\"track-name \" :class=\"{'t-main': isPlaying(track)}\">\n <router-link\n v-if=\"track.url\"\n :to=\"'/music/tracks/' + track.url\"\n class=\"hover:t-main hover:underline\"\n :class=\"{'t-main': isPlaying(track)}\"\n @click.stop\n >\n {{ track.title }}\n </router-link>\n <span v-else>{{ track.title }}</span>\n </div>\n <div :class=\"{'t-main': isPlaying(track)}\" class=\"track-artist t-transp t-small\">\n <router-link\n v-if=\"track.artist && track.artist._id\"\n :to=\"'/music/artists/' + track.artist.url\"\n class=\"t-transp hover:underline\"\n @click.stop\n >\n {{ getArtistName(track) }}\n </router-link>\n <span v-else>{{ getArtistName(track) }}</span>\n </div>\n </div>\n </div>\n \n <div v-if=\"showAlbum\" class=\"track-album w-15r mobile:w-0 mobile:hidden t-transp truncate\">\n <router-link\n v-if=\"track.album && track.album._id\"\n :to=\"'/music/albums/' + track.album.url\"\n class=\"t-transp hover:underline\"\n @click.stop\n >\n {{ track.album.title }}\n </router-link>\n <span v-else>{{ track.album?.title || 'Single' }}</span>\n </div>\n \n <div class=\"track-duration w-5r t-right t-transp\">{{ formatDuration(track.duration) }}</div>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Props\nconst props = defineProps({\n track: {\n type: Object,\n required: true\n },\n index: {\n type: Number,\n default: 0\n },\n showCover: {\n type: Boolean,\n default: true\n },\n showAlbum: {\n type: Boolean,\n default: true\n }\n});\n\n// State\nconst hoveredIndex = ref(-1);\n\n// Methods\nconst isPlaying = (track) => {\n return playerState.currentTrack && playerState.currentTrack._id === track._id && playerState.isPlaying;\n};\n\nconst playTrack = (track, force = false) => {\n if (isPlaying(track) && !force) {\n playerActions.togglePlay();\n } else {\n playerActions.playTrack(track);\n }\n};\n\nconst pauseTrack = () => {\n playerActions.togglePlay();\n};\n\nconst getArtistName = (track) => {\n if (!track || !track.artist) return 'Unknown Artist';\n return typeof track.artist === 'object' ? track.artist.name : 'Unknown Artist';\n};\n\nconst formatDuration = (duration) => {\n if (!duration) return '--:--';\n \n const minutes = Math.floor(duration / 60);\n const seconds = Math.floor(duration % 60);\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n};\n</script>"],"names":["playerState","playerActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,UAAM,QAAQ;AAoBd,UAAM,eAAe,IAAI,EAAE;AAG3B,UAAM,YAAY,CAAC,UAAU;AAC3B,aAAOA,MAAY,gBAAgBA,MAAY,aAAa,QAAQ,MAAM,OAAOA,MAAY;AAAA,IAC/F;AAEA,UAAM,YAAY,CAAC,OAAO,QAAQ,UAAU;AAC1C,UAAI,UAAU,KAAK,KAAK,CAAC,OAAO;AAC9BC,gBAAc,WAAU;AAAA,MAC1B,OAAO;AACLA,gBAAc,UAAU,KAAK;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,aAAa,MAAM;AACvBA,cAAc,WAAU;AAAA,IAC1B;AAEA,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,SAAS,CAAC,MAAM,OAAQ,QAAO;AACpC,aAAO,OAAO,MAAM,WAAW,WAAW,MAAM,OAAO,OAAO;AAAA,IAChE;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,UAAI,CAAC,SAAU,QAAO;AAEtB,YAAM,UAAU,KAAK,MAAM,WAAW,EAAE;AACxC,YAAM,UAAU,KAAK,MAAM,WAAW,EAAE;AACxC,aAAO,GAAG,OAAO,IAAI,QAAQ,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC;AAAA,IAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -17,21 +17,21 @@ const _hoisted_2 = { class: "h2 mn-b-medium" };
17
17
  const _hoisted_3 = { class: "bg-light pd-medium radius-medium" };
18
18
  const _hoisted_4 = { class: "mn-b-medium" };
19
19
  const _hoisted_5 = { class: "flex-nowrap flex-v-center flex gap-thin" };
20
- const _hoisted_6 = { class: "t-medium" };
20
+ const _hoisted_6 = { class: "fw-medium" };
21
21
  const _hoisted_7 = ["onClick"];
22
22
  const _hoisted_8 = { class: "flex-nowrap flex-v-center flex" };
23
23
  const _hoisted_9 = { class: "w-100" };
24
- const _hoisted_10 = { class: "t-medium" };
24
+ const _hoisted_10 = { class: "fw-medium" };
25
25
  const _hoisted_11 = {
26
26
  key: 0,
27
27
  class: "t-small t-transp"
28
28
  };
29
29
  const _hoisted_12 = { class: "flex-nowrap flex-v-center flex gap-thin" };
30
- const _hoisted_13 = { class: "t-medium" };
30
+ const _hoisted_13 = { class: "fw-medium" };
31
31
  const _hoisted_14 = ["onClick"];
32
32
  const _hoisted_15 = { class: "flex-nowrap flex-v-center flex" };
33
33
  const _hoisted_16 = { class: "w-100" };
34
- const _hoisted_17 = { class: "t-medium" };
34
+ const _hoisted_17 = { class: "fw-medium" };
35
35
  const _hoisted_18 = {
36
36
  key: 0,
37
37
  class: "t-small t-transp"
@@ -300,7 +300,7 @@ const _sfc_main = {
300
300
  classSearch: "bg-white radius-small",
301
301
  classSelected: "bg-white pd-small radius-small",
302
302
  classDropdown: "bg-white pd-small radius-medium bs-small",
303
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
303
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
304
304
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
305
305
  }, {
306
306
  selected: withCtx(({ item, clear }) => [
@@ -308,7 +308,7 @@ const _sfc_main = {
308
308
  createElementVNode("span", _hoisted_6, toDisplayString(item?.name || item), 1),
309
309
  createElementVNode("button", {
310
310
  onClick: withModifiers(clear, ["stop"]),
311
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
311
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
312
312
  }, [
313
313
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
314
314
  ], 8, _hoisted_7)
@@ -365,7 +365,7 @@ const _sfc_main = {
365
365
  classSearch: "bg-white radius-small",
366
366
  classSelected: "bg-white pd-small radius-small",
367
367
  classDropdown: "bg-white pd-small radius-medium bs-small",
368
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
368
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
369
369
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
370
370
  }, {
371
371
  selected: withCtx(({ item, clear }) => [
@@ -373,7 +373,7 @@ const _sfc_main = {
373
373
  createElementVNode("span", _hoisted_13, toDisplayString(item?.name || item), 1),
374
374
  createElementVNode("button", {
375
375
  onClick: withModifiers(clear, ["stop"]),
376
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
376
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
377
377
  }, [
378
378
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
379
379
  ], 8, _hoisted_14)
@@ -1 +1 @@
1
- {"version":3,"file":"AlbumForm.vue.js","sources":["../../../../../../../src/modules/music/components/forms/AlbumForm.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium\">\n <h2 class=\"h2 mn-b-medium\">{{ editMode ? 'Edit Album' : 'Create Album' }}</h2>\n \n <form @submit.prevent=\"submitForm\" class=\"cols-1 gap-regular\">\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 <!-- Album Cover -->\n <div class=\"mn-b-medium\">\n <p class=\"p-medium mn-b-small\">Album Cover</p>\n <UploadImage\n v-model:photo=\"album.coverArt\"\n uploadPath=\"albums/covers\"\n class=\"w-100 h-15r radius-small o-hidden mn-b-small\"\n @error=\"handleUploadError\"\n />\n </div>\n \n <!-- Title -->\n <Field\n v-model:field=\"album.title\"\n label=\"Title\"\n placeholder=\"Enter album title\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.title\"\n />\n \n <!-- URL -->\n <Field\n v-model:field=\"album.url\"\n label=\"URL\"\n placeholder=\"Leave blank for auto-generation based on the album title\"\n class=\"bg-white radius-small pd-small mn-b-small\"\n />\n \n <!-- Description -->\n <Field\n v-model:field=\"album.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Enter album description\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.description\"\n />\n \n <!-- Release Date -->\n <Field\n v-model:field=\"album.releaseDate\"\n label=\"Release Date\"\n type=\"date\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.releaseDate\"\n />\n \n <!-- Album Type -->\n <Select\n v-model:select=\"album.type\"\n :options=\"albumTypeOptions\"\n label=\"Album Type\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Artists Section -->\n <Block title=\"Artists\">\n <BlockMultiselect\n v-model=\"album.artists\"\n placeholder=\"Search artists...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => artistsStore.actions.fetchArtists(options),\n state: artistsStore.state\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 <!-- Слот для выбранных артистов -->\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 <!-- Слот для элементов в списке -->\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 <!-- Genres Section -->\n <Block title=\"Genres\">\n <BlockMultiselect\n v-model=\"album.genres\"\n placeholder=\"Search genres...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => genresStore.actions.fetchGenres(options),\n state: genresStore.state\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 <!-- Слот для выбранных жанров -->\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 <!-- Слот для элементов в списке -->\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 <!-- 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=\"album.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!' : 'Created!'\n }\"\n >\n {{ editMode ? 'Update Album' : 'Create Album' }}\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 Select from '@martyrs/src/components/Select/Select.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.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 albumsStore from '../../store/albums';\nimport * as artistsStore from '../../store/artists';\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// 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\n// State\nconst album = reactive({\n title: '',\n description: '',\n releaseDate: new Date().toISOString().split('T')[0],\n coverArt: '',\n artists: [],\n type: 'album',\n genres: [],\n totalTracks: 0,\n url: '',\n status: 'draft'\n});\n\nconst validation = reactive({\n title: false,\n description: false,\n releaseDate: false\n});\n\n// Track if URL was manually entered\nconst urlManuallySet = ref(false);\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 album title to auto-generate URL\nwatch(() => album.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 album.url = generateSlug(newTitle);\n }\n});\n\n// Watch for manual changes to URL field\nwatch(() => album.url, (newUrl, oldUrl) => {\n // If user manually changes URL, mark as manually set\n if (newUrl !== generateSlug(album.title)) {\n urlManuallySet.value = true;\n }\n});\n\n// Options\nconst statusOptions = [\n 'draft',\n 'published',\n 'archived'\n];\n\nconst albumTypeOptions = [\n 'album',\n 'single',\n 'EP',\n 'compilation'\n];\n\nconst fetchAlbum = async () => {\n if (!props.url) return;\n \n try {\n const fetchedAlbum = await albumsStore.actions.fetchAlbumByUrl(props.url);\n \n if (!fetchedAlbum) {\n store.core.actions.setError({\n message: 'Album not found'\n });\n return;\n }\n \n // Update local album data\n Object.assign(album, {\n title: fetchedAlbum.title || '',\n description: fetchedAlbum.description || '',\n releaseDate: fetchedAlbum.releaseDate ? new Date(fetchedAlbum.releaseDate).toISOString().split('T')[0] : '',\n coverArt: fetchedAlbum.coverArt || '',\n artists: fetchedAlbum.artists || [],\n type: fetchedAlbum.type || 'album',\n genres: fetchedAlbum.genres || [],\n totalTracks: fetchedAlbum.totalTracks || 0,\n url: fetchedAlbum.url || '',\n status: fetchedAlbum.status || 'draft',\n _id: fetchedAlbum._id\n });\n \n } catch (error) {\n console.error('Error fetching album:', error);\n store.core.actions.setError({\n message: 'Failed to load album details'\n });\n }\n};\n\nconst validateForm = () => {\n let isValid = true;\n \n // Validate title\n if (!album.title.trim()) {\n validation.title = {\n message: 'Album title is required'\n };\n isValid = false;\n } else {\n validation.title = false;\n }\n \n // Validate release date\n if (!album.releaseDate) {\n validation.releaseDate = {\n message: 'Release date is required'\n };\n isValid = false;\n } else {\n validation.releaseDate = false;\n }\n \n // Validate description\n if (album.description && album.description.length > 2000) {\n validation.description = {\n message: 'Description is too long (max 2000 characters)'\n };\n isValid = false;\n } else {\n validation.description = false;\n }\n \n return isValid;\n};\n\nconst submitForm = async () => {\n if (!validateForm()) {\n return;\n }\n \n try {\n // Prepare data for submission\n const formData = {\n ...album,\n artists: album.artists.map(artist => artist._id || artist),\n genres: album.genres.map(genre => genre._id || genre)\n };\n \n // Add ownership data if creating new album\n if (!props.editMode) {\n formData.owner = {\n type: 'user',\n target: auth.state.user._id\n };\n }\n \n let result;\n if (props.editMode) {\n result = await albumsStore.actions.updateAlbum(formData);\n } else {\n result = await albumsStore.actions.createAlbum(formData);\n }\n \n // Navigate to album detail page\n setTimeout(() => {\n router.push({\n name: 'album',\n params: { url: result.url }\n });\n }, 1000);\n \n } catch (error) {\n console.error('Error saving album:', error);\n store.core.actions.setError({\n message: 'Failed to save album'\n });\n }\n};\n\nconst handleUploadError = (error) => {\n console.error('Upload error:', error);\n store.core.actions.setError({\n message: 'Error uploading image'\n });\n};\n\n// Lifecycle hooks\nonMounted(async () => {\n if (props.editMode) {\n await fetchAlbum();\n // Mark URL as manually set in edit mode to prevent auto-generation\n urlManuallySet.value = true;\n }\n});\n</script>\n"],"names":["albumsStore.actions","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"AlbumForm.vue.js","sources":["../../../../../../../src/modules/music/components/forms/AlbumForm.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium\">\n <h2 class=\"h2 mn-b-medium\">{{ editMode ? 'Edit Album' : 'Create Album' }}</h2>\n \n <form @submit.prevent=\"submitForm\" class=\"cols-1 gap-regular\">\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 <!-- Album Cover -->\n <div class=\"mn-b-medium\">\n <p class=\"p-medium mn-b-small\">Album Cover</p>\n <UploadImage\n v-model:photo=\"album.coverArt\"\n uploadPath=\"albums/covers\"\n class=\"w-100 h-15r radius-small o-hidden mn-b-small\"\n @error=\"handleUploadError\"\n />\n </div>\n \n <!-- Title -->\n <Field\n v-model:field=\"album.title\"\n label=\"Title\"\n placeholder=\"Enter album title\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.title\"\n />\n \n <!-- URL -->\n <Field\n v-model:field=\"album.url\"\n label=\"URL\"\n placeholder=\"Leave blank for auto-generation based on the album title\"\n class=\"bg-white radius-small pd-small mn-b-small\"\n />\n \n <!-- Description -->\n <Field\n v-model:field=\"album.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Enter album description\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.description\"\n />\n \n <!-- Release Date -->\n <Field\n v-model:field=\"album.releaseDate\"\n label=\"Release Date\"\n type=\"date\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n :validation=\"validation.releaseDate\"\n />\n \n <!-- Album Type -->\n <Select\n v-model:select=\"album.type\"\n :options=\"albumTypeOptions\"\n label=\"Album Type\"\n class=\"bg-white radius-small pd-small mn-b-thin\"\n />\n </div>\n \n <!-- Artists Section -->\n <Block title=\"Artists\">\n <BlockMultiselect\n v-model=\"album.artists\"\n placeholder=\"Search artists...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => artistsStore.actions.fetchArtists(options),\n state: artistsStore.state\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 <!-- Слот для выбранных артистов -->\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 <!-- Слот для элементов в списке -->\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 <!-- Genres Section -->\n <Block title=\"Genres\">\n <BlockMultiselect\n v-model=\"album.genres\"\n placeholder=\"Search genres...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => genresStore.actions.fetchGenres(options),\n state: genresStore.state\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 <!-- Слот для выбранных жанров -->\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 <!-- Слот для элементов в списке -->\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 <!-- 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=\"album.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!' : 'Created!'\n }\"\n >\n {{ editMode ? 'Update Album' : 'Create Album' }}\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 Select from '@martyrs/src/components/Select/Select.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.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 albumsStore from '../../store/albums';\nimport * as artistsStore from '../../store/artists';\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// 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\n// State\nconst album = reactive({\n title: '',\n description: '',\n releaseDate: new Date().toISOString().split('T')[0],\n coverArt: '',\n artists: [],\n type: 'album',\n genres: [],\n totalTracks: 0,\n url: '',\n status: 'draft'\n});\n\nconst validation = reactive({\n title: false,\n description: false,\n releaseDate: false\n});\n\n// Track if URL was manually entered\nconst urlManuallySet = ref(false);\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 album title to auto-generate URL\nwatch(() => album.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 album.url = generateSlug(newTitle);\n }\n});\n\n// Watch for manual changes to URL field\nwatch(() => album.url, (newUrl, oldUrl) => {\n // If user manually changes URL, mark as manually set\n if (newUrl !== generateSlug(album.title)) {\n urlManuallySet.value = true;\n }\n});\n\n// Options\nconst statusOptions = [\n 'draft',\n 'published',\n 'archived'\n];\n\nconst albumTypeOptions = [\n 'album',\n 'single',\n 'EP',\n 'compilation'\n];\n\nconst fetchAlbum = async () => {\n if (!props.url) return;\n \n try {\n const fetchedAlbum = await albumsStore.actions.fetchAlbumByUrl(props.url);\n \n if (!fetchedAlbum) {\n store.core.actions.setError({\n message: 'Album not found'\n });\n return;\n }\n \n // Update local album data\n Object.assign(album, {\n title: fetchedAlbum.title || '',\n description: fetchedAlbum.description || '',\n releaseDate: fetchedAlbum.releaseDate ? new Date(fetchedAlbum.releaseDate).toISOString().split('T')[0] : '',\n coverArt: fetchedAlbum.coverArt || '',\n artists: fetchedAlbum.artists || [],\n type: fetchedAlbum.type || 'album',\n genres: fetchedAlbum.genres || [],\n totalTracks: fetchedAlbum.totalTracks || 0,\n url: fetchedAlbum.url || '',\n status: fetchedAlbum.status || 'draft',\n _id: fetchedAlbum._id\n });\n \n } catch (error) {\n console.error('Error fetching album:', error);\n store.core.actions.setError({\n message: 'Failed to load album details'\n });\n }\n};\n\nconst validateForm = () => {\n let isValid = true;\n \n // Validate title\n if (!album.title.trim()) {\n validation.title = {\n message: 'Album title is required'\n };\n isValid = false;\n } else {\n validation.title = false;\n }\n \n // Validate release date\n if (!album.releaseDate) {\n validation.releaseDate = {\n message: 'Release date is required'\n };\n isValid = false;\n } else {\n validation.releaseDate = false;\n }\n \n // Validate description\n if (album.description && album.description.length > 2000) {\n validation.description = {\n message: 'Description is too long (max 2000 characters)'\n };\n isValid = false;\n } else {\n validation.description = false;\n }\n \n return isValid;\n};\n\nconst submitForm = async () => {\n if (!validateForm()) {\n return;\n }\n \n try {\n // Prepare data for submission\n const formData = {\n ...album,\n artists: album.artists.map(artist => artist._id || artist),\n genres: album.genres.map(genre => genre._id || genre)\n };\n \n // Add ownership data if creating new album\n if (!props.editMode) {\n formData.owner = {\n type: 'user',\n target: auth.state.user._id\n };\n }\n \n let result;\n if (props.editMode) {\n result = await albumsStore.actions.updateAlbum(formData);\n } else {\n result = await albumsStore.actions.createAlbum(formData);\n }\n \n // Navigate to album detail page\n setTimeout(() => {\n router.push({\n name: 'album',\n params: { url: result.url }\n });\n }, 1000);\n \n } catch (error) {\n console.error('Error saving album:', error);\n store.core.actions.setError({\n message: 'Failed to save album'\n });\n }\n};\n\nconst handleUploadError = (error) => {\n console.error('Upload error:', error);\n store.core.actions.setError({\n message: 'Error uploading image'\n });\n};\n\n// Lifecycle hooks\nonMounted(async () => {\n if (props.editMode) {\n await fetchAlbum();\n // Mark URL as manually set in edit mode to prevent auto-generation\n urlManuallySet.value = true;\n }\n});\n</script>\n"],"names":["albumsStore.actions","auth.state"],"mappings":"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"}
@@ -6,7 +6,7 @@ import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
6
6
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
7
7
  import Select from "../../../../components/Select/Select.vue.js";
8
8
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
9
- /* empty css */
9
+ /* empty css */
10
10
  import BlockMultiselect from "../../../core/views/components/blocks/BlockMultiselect.vue.js";
11
11
  import _sfc_main$2 from "../../../icons/navigation/IconCross.vue.js";
12
12
  import { actions as actions$1 } from "../../store/artists.js";
@@ -20,11 +20,11 @@ const _hoisted_4 = { class: "cols-2 mobile:cols-1 gap-regular" };
20
20
  const _hoisted_5 = { class: "bg-light pd-medium radius-medium" };
21
21
  const _hoisted_6 = { class: "cols-2 mobile:cols-1 gap-thin" };
22
22
  const _hoisted_7 = { class: "flex-nowrap flex-v-center flex gap-thin" };
23
- const _hoisted_8 = { class: "t-medium" };
23
+ const _hoisted_8 = { class: "fw-medium" };
24
24
  const _hoisted_9 = ["onClick"];
25
25
  const _hoisted_10 = { class: "flex-nowrap flex-v-center flex" };
26
26
  const _hoisted_11 = { class: "w-100" };
27
- const _hoisted_12 = { class: "t-medium" };
27
+ const _hoisted_12 = { class: "fw-medium" };
28
28
  const _hoisted_13 = {
29
29
  key: 0,
30
30
  class: "t-small t-transp"
@@ -337,7 +337,7 @@ const _sfc_main = {
337
337
  classSearch: "bg-white radius-small",
338
338
  classSelected: "bg-white pd-small radius-small",
339
339
  classDropdown: "bg-white pd-small radius-medium bs-small",
340
- classItem: "pd-small radius-small hover-bg-light cursor-pointer",
340
+ classItem: "pd-small radius-small hover:bg-light cursor-pointer",
341
341
  classFeed: "h-max-30r gap-thin flex-column flex o-scroll"
342
342
  }, {
343
343
  selected: withCtx(({ item, clear }) => [
@@ -345,7 +345,7 @@ const _sfc_main = {
345
345
  createElementVNode("span", _hoisted_8, toDisplayString(item?.name || item), 1),
346
346
  createElementVNode("button", {
347
347
  onClick: withModifiers(clear, ["stop"]),
348
- class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
348
+ class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
349
349
  }, [
350
350
  createVNode(_sfc_main$2, { class: "i-micro fill-white" })
351
351
  ], 8, _hoisted_9)