@ozdao/martyrs 0.2.565 → 0.2.567

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 (122) hide show
  1. package/dist/{main-B9o1iBAZ.js → main-BFvlam0J.js} +9 -6
  2. package/dist/martyrs/dist/main-BFvlam0J.js +943 -0
  3. package/dist/martyrs/dist/main-BFvlam0J.js.map +1 -0
  4. package/dist/martyrs/dist/web-CH5wzMHy.js +55 -0
  5. package/dist/martyrs/dist/web-CH5wzMHy.js.map +1 -0
  6. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +96 -0
  7. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -0
  8. package/dist/martyrs/src/components/Feed/Carousel.vue.js +2 -2
  9. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  10. package/dist/martyrs/src/components/Feed/Feed.vue.js +6 -3
  11. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  12. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  13. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  14. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  15. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
  16. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
  17. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +1 -0
  18. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  19. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  20. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  21. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +17 -1
  22. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
  23. package/dist/martyrs/src/modules/events/events.client.js +15 -12
  24. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  25. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +95 -0
  26. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -0
  27. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +5 -2
  28. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  29. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +24 -24
  30. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +3 -3
  32. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  33. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +31 -6
  34. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -1
  35. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +120 -205
  36. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  37. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +9 -13
  38. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +166 -245
  40. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +135 -220
  42. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  43. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +171 -0
  44. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -0
  45. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +31 -153
  46. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +96 -0
  48. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js.map +1 -0
  49. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +55 -27
  50. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/music/components/player/tonar.png.js +5 -0
  52. package/dist/martyrs/src/modules/music/components/player/tonar.png.js.map +1 -0
  53. package/dist/martyrs/src/modules/music/store/albums.js +8 -2
  54. package/dist/martyrs/src/modules/music/store/albums.js.map +1 -1
  55. package/dist/martyrs/src/modules/music/store/player.js +83 -65
  56. package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
  57. package/dist/martyrs/src/modules/music/store/tracks.js +4 -13
  58. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
  59. package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
  60. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  61. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  62. package/dist/martyrs.css +1 -1
  63. package/dist/martyrs.es.js +1 -1
  64. package/dist/music.server.js +33 -6
  65. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js +1 -0
  66. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js.map +1 -0
  67. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js +1 -1
  68. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js.map +1 -1
  69. package/dist/node_modules/.pnpm/{@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1 → @capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4}/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js +16 -1
  70. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js.map +1 -0
  71. package/dist/node_modules/.pnpm/{@capacitor_core@7.0.1 → @capacitor_core@7.4.4}/node_modules/@capacitor/core/dist/index.js +2 -1
  72. package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
  73. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/index.js +1 -1
  74. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/index.js.map +1 -1
  75. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/web.js +1 -1
  76. package/dist/node_modules/.pnpm/{@capacitor_device@7.0.0_@capacitor_core@7.0.1 → @capacitor_device@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/device/dist/esm/web.js.map +1 -1
  77. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/definitions.js.map +1 -1
  78. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/index.js +1 -1
  79. package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/index.js.map +1 -1
  80. package/dist/node_modules/.pnpm/{@capacitor_push-notifications@7.0.0_@capacitor_core@7.0.1 → @capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4}/node_modules/@capacitor/push-notifications/dist/esm/index.js +1 -1
  81. package/dist/node_modules/.pnpm/{@capacitor_push-notifications@7.0.0_@capacitor_core@7.0.1 → @capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4}/node_modules/@capacitor/push-notifications/dist/esm/index.js.map +1 -1
  82. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js +1 -1
  83. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js.map +1 -1
  84. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js +1 -1
  85. package/dist/node_modules/.pnpm/{capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.0.1 → capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4}/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js.map +1 -1
  86. package/dist/style.css +221 -145
  87. package/dist/{web-BF3ijvEr.js → web-CH5wzMHy.js} +1 -1
  88. package/package.json +1 -1
  89. package/src/components/BottomSheet/BottomSheet.vue +4 -4
  90. package/src/components/Feed/Carousel.vue +1 -1
  91. package/src/components/Feed/Feed.vue +3 -3
  92. package/src/modules/LAYOUT.MD +767 -0
  93. package/src/modules/community/components/sections/HotPosts.vue +8 -4
  94. package/src/modules/core/views/components/layouts/Client.vue +1 -1
  95. package/src/modules/events/components/sections/EventsHot.vue +21 -4
  96. package/src/modules/events/events.client.js +3 -0
  97. package/src/modules/music/components/blocks/ActionButtons.vue +74 -0
  98. package/src/modules/music/components/cards/AlbumCard.vue +1 -1
  99. package/src/modules/music/components/cards/ArtistCardSmall.vue +8 -6
  100. package/src/modules/music/components/cards/TrackListCard.vue +6 -6
  101. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +94 -4
  102. package/src/modules/music/components/pages/Album.vue +55 -67
  103. package/src/modules/music/components/pages/MusicHome.vue +4 -6
  104. package/src/modules/music/components/pages/Playlist.vue +61 -70
  105. package/src/modules/music/components/pages/Track.vue +54 -71
  106. package/src/modules/music/components/player/FullscreenPlayer.vue +248 -0
  107. package/src/modules/music/components/player/MusicPlayer.vue +21 -216
  108. package/src/modules/music/components/player/PlayerControls.vue +112 -0
  109. package/src/modules/music/components/player/Visualizer.vue +151 -0
  110. package/src/modules/music/components/player/VolumeControl.vue +75 -23
  111. package/src/modules/music/components/player/tonar.png +0 -0
  112. package/src/modules/music/routes/albums.routes.js +13 -12
  113. package/src/modules/music/routes/tracks.routes.js +39 -0
  114. package/src/modules/music/store/albums.js +10 -2
  115. package/src/modules/music/store/player.js +101 -89
  116. package/src/modules/music/store/tracks.js +5 -21
  117. package/src/styles/config.scss +6 -6
  118. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  119. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/definitions.js.map +0 -1
  120. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.1.0_@capacitor_core@7.0.1/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js.map +0 -1
  121. package/dist/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
  122. /package/dist/node_modules/.pnpm/{@capacitor_keyboard@7.0.0_@capacitor_core@7.0.1 → @capacitor_keyboard@7.0.1_@capacitor_core@7.4.4}/node_modules/@capacitor/keyboard/dist/esm/definitions.js +0 -0
@@ -1,24 +1,24 @@
1
- import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, createElementVNode, toDisplayString, withCtx, createTextVNode, Fragment, createBlock, renderList } from "vue";
1
+ import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, createElementVNode, toDisplayString, Fragment, renderList, createBlock, withCtx, createTextVNode } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$9 from "../../../../components/Button/Button.vue2.js";
4
4
  /* empty css */
5
5
  import Media from "../../../../components/Media/Media.vue.js";
6
- import _sfc_main$4 from "../../../../components/Dropdown/Dropdown.vue.js";
7
- import _sfc_main$9 from "../../../../components/Feed/Feed.vue.js";
8
- import _sfc_main$b from "../../../../components/Popup/Popup.vue.js";
9
- import _sfc_main$2 from "../../../icons/navigation/IconPlay.vue.js";
10
- import _sfc_main$5 from "../../../icons/navigation/IconEllipsis.vue.js";
11
- import _sfc_main$3 from "../../../icons/navigation/IconShuffle.vue.js";
12
- import _sfc_main$6 from "../../../icons/entities/IconCalendar.vue.js";
6
+ /* empty css */
7
+ import _sfc_main$7 from "../../../../components/Feed/Feed.vue.js";
8
+ import _sfc_main$a from "../../../../components/Popup/Popup.vue.js";
9
+ import _sfc_main$1 from "../../../icons/navigation/IconPlay.vue.js";
10
+ import _sfc_main$2 from "../../../icons/navigation/IconShuffle.vue.js";
11
+ import _sfc_main$4 from "../../../icons/entities/IconCalendar.vue.js";
13
12
  import IconTime from "../../../icons/entities/IconTime.vue.js";
14
- import _sfc_main$8 from "../../../icons/actions/IconShow.vue.js";
15
- import _sfc_main$7 from "../../../icons/navigation/IconRefresh.vue.js";
16
- import _sfc_main$a from "../cards/TrackListCard.vue.js";
13
+ import _sfc_main$6 from "../../../icons/actions/IconShow.vue.js";
14
+ import _sfc_main$5 from "../../../icons/navigation/IconRefresh.vue.js";
15
+ import _sfc_main$3 from "../blocks/ActionButtons.vue.js";
16
+ import _sfc_main$8 from "../cards/TrackListCard.vue.js";
17
17
  import PlaylistCard from "../cards/PlaylistCard.vue.js";
18
- import _sfc_main$c from "../forms/PlaylistForm.vue.js";
18
+ import _sfc_main$b from "../forms/PlaylistForm.vue.js";
19
19
  import ArtistCardSmall from "../cards/ArtistCardSmall.vue.js";
20
- import { state, actions } from "../../store/playlists.js";
21
- import { actions as actions$1 } from "../../store/player.js";
20
+ import { state, actions as actions$1 } from "../../store/playlists.js";
21
+ import { actions } from "../../store/player.js";
22
22
  import { state as state$1 } from "../../../auth/views/store/auth.js";
23
23
  import { useStore } from "../../../core/views/store/core.store.js";
24
24
  const _hoisted_1 = { class: "playlist-page pd-small" };
@@ -28,9 +28,9 @@ const _hoisted_2 = {
28
28
  };
29
29
  const _hoisted_3 = {
30
30
  key: 1,
31
- class: "playlist-content cols-2-fit-content mobile:cols-1 gap-big"
31
+ class: "playlist-content cols-2 mobile:cols-1 gap-big"
32
32
  };
33
- const _hoisted_4 = { class: "pos-sticky w-max-30r pos-t-0 mobile:pos-relative playlist-cover-section" };
33
+ const _hoisted_4 = { class: "pos-sticky pos-t-0 mobile:pos-relative playlist-cover-section" };
34
34
  const _hoisted_5 = { class: "cover-container relative mn-b-medium radius-big overflow-hidden shadow-big" };
35
35
  const _hoisted_6 = { class: "stats-grid grid cols-2 gap-small" };
36
36
  const _hoisted_7 = { class: "stat-card bg-light pd-medium radius-medium t-center" };
@@ -48,53 +48,51 @@ const _hoisted_14 = {
48
48
  class: "bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase"
49
49
  };
50
50
  const _hoisted_15 = { class: "h1 mn-b-medium" };
51
- const _hoisted_16 = { class: "flex gap-small mn-b-medium" };
52
- const _hoisted_17 = { class: "dropdown-menu bg-white pd-small radius-medium shadow-big mn-t-thin" };
53
- const _hoisted_18 = { class: "artists-section mn-b-medium" };
54
- const _hoisted_19 = { class: "flex flex-column gap-small" };
55
- const _hoisted_20 = {
51
+ const _hoisted_16 = { class: "artists-section mn-b-medium" };
52
+ const _hoisted_17 = { class: "flex flex-column gap-small" };
53
+ const _hoisted_18 = {
56
54
  key: 0,
57
55
  class: "collaborators-section mn-b-big"
58
56
  };
59
- const _hoisted_21 = { class: "flex flex-wrap gap-small" };
60
- const _hoisted_22 = { class: "t-small" };
61
- const _hoisted_23 = { class: "metadata-grid grid cols-2 gap-small mn-b-medium" };
57
+ const _hoisted_19 = { class: "flex flex-wrap gap-small" };
58
+ const _hoisted_20 = { class: "t-small" };
59
+ const _hoisted_21 = { class: "metadata-grid grid cols-2 gap-small mn-b-medium" };
60
+ const _hoisted_22 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
61
+ const _hoisted_23 = { class: "t-medium" };
62
62
  const _hoisted_24 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
63
63
  const _hoisted_25 = { class: "t-medium" };
64
64
  const _hoisted_26 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
65
65
  const _hoisted_27 = { class: "t-medium" };
66
66
  const _hoisted_28 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
67
67
  const _hoisted_29 = { class: "t-medium" };
68
- const _hoisted_30 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-regular" };
69
- const _hoisted_31 = { class: "t-medium" };
70
- const _hoisted_32 = {
68
+ const _hoisted_30 = {
71
69
  key: 1,
72
70
  class: "tags-section mn-b-medium"
73
71
  };
74
- const _hoisted_33 = { class: "flex gap-thin flex-wrap" };
75
- const _hoisted_34 = {
72
+ const _hoisted_31 = { class: "flex gap-thin flex-wrap" };
73
+ const _hoisted_32 = {
76
74
  key: 2,
77
75
  class: "description-section bg-light pd-medium radius-medium mn-b-medium"
78
76
  };
79
- const _hoisted_35 = { class: "t-transp" };
80
- const _hoisted_36 = {
77
+ const _hoisted_33 = { class: "t-transp" };
78
+ const _hoisted_34 = {
81
79
  key: 2,
82
80
  class: "tracks-section mn-t-big"
83
81
  };
84
- const _hoisted_37 = { class: "bg-light radius-medium o-hidden" };
85
- const _hoisted_38 = {
82
+ const _hoisted_35 = { class: "bg-light radius-medium o-hidden" };
83
+ const _hoisted_36 = {
86
84
  key: 3,
87
85
  class: "empty-section mn-t-big"
88
86
  };
89
- const _hoisted_39 = { class: "empty-tracks t-center pd-big bg-light radius-medium" };
90
- const _hoisted_40 = {
87
+ const _hoisted_37 = { class: "empty-tracks t-center pd-big bg-light radius-medium" };
88
+ const _hoisted_38 = {
91
89
  key: 4,
92
90
  class: "more-playlists-section mn-t-big"
93
91
  };
94
- const _hoisted_41 = { class: "flex justify-between items-center mn-b-medium" };
95
- const _hoisted_42 = { class: "flex flex-nowrap gap-small o-x-scroll overscroll-behavior-x-contain scroll-behavior-smooth scroll-snap-type-x-mandatory scroll-hide" };
96
- const _hoisted_43 = { class: "t-transp mn-b-medium" };
97
- const _hoisted_44 = { class: "flex justify-end gap-small" };
92
+ const _hoisted_39 = { class: "flex justify-between items-center mn-b-medium" };
93
+ const _hoisted_40 = { class: "flex flex-nowrap gap-small o-x-scroll overscroll-behavior-x-contain scroll-behavior-smooth scroll-snap-type-x-mandatory scroll-hide" };
94
+ const _hoisted_41 = { class: "t-transp mn-b-medium" };
95
+ const _hoisted_42 = { class: "flex justify-end gap-small" };
98
96
  const _sfc_main = {
99
97
  __name: "Playlist",
100
98
  emits: ["page-loading", "page-loaded"],
@@ -105,7 +103,6 @@ const _sfc_main = {
105
103
  const emits = __emit;
106
104
  const hasLoaded = ref(false);
107
105
  const isFollowing = ref(false);
108
- const showDropdown = ref(false);
109
106
  const showEditModal = ref(false);
110
107
  const showDeleteModal = ref(false);
111
108
  const followedUsers = ref([]);
@@ -130,6 +127,58 @@ const _sfc_main = {
130
127
  const totalSeconds = playlistTracks.value.reduce((sum, track) => sum + (track.duration || 0), 0);
131
128
  return formatDuration(totalSeconds);
132
129
  });
130
+ const actionButtons = computed(() => {
131
+ const buttons = [
132
+ {
133
+ type: "button",
134
+ class: "t-white bg-black",
135
+ icon: _sfc_main$1,
136
+ iconFill: "rgb(var(--white))",
137
+ text: "Play All",
138
+ action: playPlaylist
139
+ },
140
+ {
141
+ type: "button",
142
+ class: "bg-light",
143
+ icon: _sfc_main$2,
144
+ text: "Shuffle",
145
+ action: shufflePlay
146
+ },
147
+ {
148
+ type: "button",
149
+ class: "bg-light",
150
+ icon: null,
151
+ text: isFollowing.value ? "Unfollow" : "Follow",
152
+ action: toggleFollow
153
+ },
154
+ {
155
+ type: "dropdown",
156
+ items: [
157
+ { text: "Add to Queue", action: addToQueue, class: "t-nowrap" },
158
+ { text: "Copy Link", action: copyLink, class: "t-nowrap" }
159
+ ]
160
+ }
161
+ ];
162
+ if (isOwner.value || isCollaborator.value) {
163
+ const items = buttons[3].items;
164
+ items.push({ separator: true });
165
+ items.push({ text: "Edit Playlist", action: editPlaylist, class: "t-nowrap" });
166
+ if (isOwner.value) {
167
+ items.push({
168
+ text: playlist.value?.isCollaborative ? "Make Private" : "Make Collaborative",
169
+ action: toggleCollaborative,
170
+ class: "t-nowrap"
171
+ });
172
+ items.push({
173
+ text: "Delete Playlist",
174
+ action: deletePlaylist,
175
+ color: "danger",
176
+ class: "t-nowrap"
177
+ });
178
+ }
179
+ }
180
+ return buttons;
181
+ });
133
182
  const getOwnerProfileLink = (owner) => {
134
183
  if (!owner || !owner.target) return { name: "music-home" };
135
184
  const targetId = typeof owner.target === "object" ? owner.target._id : owner.target;
@@ -169,22 +218,22 @@ const _sfc_main = {
169
218
  };
170
219
  const playPlaylist = () => {
171
220
  if (playlistTracks.value && playlistTracks.value.length > 0) {
172
- actions$1.setQueue(playlistTracks.value);
221
+ actions.setQueue(playlistTracks.value);
173
222
  }
174
223
  };
175
224
  const shufflePlay = () => {
176
225
  if (playlistTracks.value && playlistTracks.value.length > 0) {
177
226
  const shuffled = [...playlistTracks.value].sort(() => Math.random() - 0.5);
178
- actions$1.setQueue(shuffled);
227
+ actions.setQueue(shuffled);
179
228
  }
180
229
  };
181
230
  const toggleFollow = async () => {
182
231
  isFollowing.value = !isFollowing.value;
183
232
  try {
184
233
  if (isFollowing.value) {
185
- await actions.followPlaylist(playlist.value._id);
234
+ await actions$1.followPlaylist(playlist.value._id);
186
235
  } else {
187
- await actions.unfollowPlaylist(playlist.value._id);
236
+ await actions$1.unfollowPlaylist(playlist.value._id);
188
237
  }
189
238
  } catch (error) {
190
239
  console.error("Error toggling follow:", error);
@@ -202,14 +251,12 @@ const _sfc_main = {
202
251
  const addToQueue = () => {
203
252
  if (playlistTracks.value && playlistTracks.value.length > 0) {
204
253
  playlistTracks.value.forEach((track) => {
205
- actions$1.addToQueue(track);
254
+ actions.addToQueue(track);
206
255
  });
207
- showDropdown.value = false;
208
256
  }
209
257
  };
210
258
  const editPlaylist = () => {
211
259
  showEditModal.value = true;
212
- showDropdown.value = false;
213
260
  };
214
261
  const toggleCollaborative = async () => {
215
262
  try {
@@ -217,19 +264,17 @@ const _sfc_main = {
217
264
  _id: playlist.value._id,
218
265
  isCollaborative: !playlist.value.isCollaborative
219
266
  };
220
- await actions.updatePlaylist(updatedData);
221
- showDropdown.value = false;
267
+ await actions$1.updatePlaylist(updatedData);
222
268
  } catch (error) {
223
269
  console.error("Error updating playlist:", error);
224
270
  }
225
271
  };
226
272
  const deletePlaylist = () => {
227
273
  showDeleteModal.value = true;
228
- showDropdown.value = false;
229
274
  };
230
275
  const confirmDelete = async () => {
231
276
  try {
232
- await actions.deletePlaylist(playlist.value._id);
277
+ await actions$1.deletePlaylist(playlist.value._id);
233
278
  router.push({ name: "music-library" });
234
279
  } catch (error) {
235
280
  console.error("Error deleting playlist:", error);
@@ -240,7 +285,7 @@ const _sfc_main = {
240
285
  };
241
286
  const removeTrack = async (trackId) => {
242
287
  try {
243
- await actions.removeTrackFromPlaylist(playlist.value._id, trackId);
288
+ await actions$1.removeTrackFromPlaylist(playlist.value._id, trackId);
244
289
  await fetchPlaylistData();
245
290
  } catch (error) {
246
291
  console.error("Error removing track:", error);
@@ -251,7 +296,6 @@ const _sfc_main = {
251
296
  };
252
297
  const copyLink = () => {
253
298
  navigator.clipboard.writeText(window.location.href);
254
- showDropdown.value = false;
255
299
  };
256
300
  const handlePlaylistUpdated = () => {
257
301
  showEditModal.value = false;
@@ -259,12 +303,12 @@ const _sfc_main = {
259
303
  };
260
304
  const fetchPlaylistData = async () => {
261
305
  try {
262
- await actions.fetchPlaylistByUrl(route.params.url);
306
+ await actions$1.fetchPlaylistByUrl(route.params.url);
263
307
  if (state$1.user && playlist.value) {
264
308
  }
265
309
  if (playlist.value?.creator?.target) {
266
310
  const creatorId = typeof playlist.value.creator.target === "object" ? playlist.value.creator.target._id : playlist.value.creator.target;
267
- const playlists = await actions.fetchPlaylists({
311
+ const playlists = await actions$1.fetchPlaylists({
268
312
  "creator.target": creatorId,
269
313
  isPublic: true,
270
314
  limit: 6
@@ -284,7 +328,7 @@ const _sfc_main = {
284
328
  return (_ctx, _cache) => {
285
329
  const _component_router_link = resolveComponent("router-link");
286
330
  return openBlock(), createElementBlock("div", _hoisted_1, [
287
- hasLoaded.value && !playlist.value ? (openBlock(), createElementBlock("div", _hoisted_2, _cache[7] || (_cache[7] = [
331
+ hasLoaded.value && !playlist.value ? (openBlock(), createElementBlock("div", _hoisted_2, _cache[6] || (_cache[6] = [
288
332
  createElementVNode("h2", { class: "" }, "Playlist not found", -1),
289
333
  createElementVNode("p", { class: "t-transp t-medium" }, "The playlist you're looking for doesn't exist or has been removed.", -1)
290
334
  ]))) : createCommentVNode("", true),
@@ -300,148 +344,25 @@ const _sfc_main = {
300
344
  createElementVNode("div", _hoisted_6, [
301
345
  createElementVNode("div", _hoisted_7, [
302
346
  createElementVNode("div", _hoisted_8, toDisplayString(playlistTracks.value.length), 1),
303
- _cache[8] || (_cache[8] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Tracks", -1))
347
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Tracks", -1))
304
348
  ]),
305
349
  createElementVNode("div", _hoisted_9, [
306
350
  createElementVNode("div", _hoisted_10, toDisplayString(formatNumber(playlist.value.followers || 0)), 1),
307
- _cache[9] || (_cache[9] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Followers", -1))
351
+ _cache[8] || (_cache[8] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Followers", -1))
308
352
  ])
309
353
  ])
310
354
  ]),
311
355
  createElementVNode("div", _hoisted_11, [
312
356
  createElementVNode("div", _hoisted_12, [
313
- _cache[10] || (_cache[10] = createElementVNode("span", { class: "bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase" }, " Playlist ", -1)),
357
+ _cache[9] || (_cache[9] = createElementVNode("span", { class: "bg-light t-medium pd-thin radius-thin uppercase t-small t-uppercase" }, " Playlist ", -1)),
314
358
  playlist.value.isCollaborative ? (openBlock(), createElementBlock("span", _hoisted_13, " Collaborative ")) : createCommentVNode("", true),
315
359
  playlist.value.status === "published" ? (openBlock(), createElementBlock("span", _hoisted_14, " Published ")) : createCommentVNode("", true)
316
360
  ]),
317
361
  createElementVNode("h1", _hoisted_15, toDisplayString(playlist.value.title), 1),
362
+ createVNode(_sfc_main$3, { buttons: actionButtons.value }, null, 8, ["buttons"]),
318
363
  createElementVNode("div", _hoisted_16, [
319
- createVNode(_sfc_main$1, {
320
- onClick: playPlaylist,
321
- color: "primary",
322
- size: "medium",
323
- class: "flex-1 t-white bg-black radius-thin flex-center gap-thin"
324
- }, {
325
- default: withCtx(() => [
326
- createVNode(_sfc_main$2, {
327
- fill: "rgb(var(--white))",
328
- class: "i-medium"
329
- }),
330
- _cache[11] || (_cache[11] = createTextVNode(" Play All "))
331
- ]),
332
- _: 1
333
- }),
334
- createVNode(_sfc_main$1, {
335
- onClick: shufflePlay,
336
- color: "primary",
337
- size: "medium",
338
- class: "flex-1 bg-light radius-thin flex-center gap-thin"
339
- }, {
340
- default: withCtx(() => [
341
- createVNode(_sfc_main$3, { class: "i-medium" }),
342
- _cache[12] || (_cache[12] = createTextVNode(" Shuffle "))
343
- ]),
344
- _: 1
345
- }),
346
- createVNode(_sfc_main$1, {
347
- onClick: toggleFollow,
348
- color: "primary",
349
- size: "medium",
350
- class: "flex-1 bg-light radius-thin flex-center gap-thin"
351
- }, {
352
- default: withCtx(() => [
353
- createTextVNode(toDisplayString(isFollowing.value ? "Follow" : "Unfollow"), 1)
354
- ]),
355
- _: 1
356
- }),
357
- createVNode(_sfc_main$4, {
358
- label: { component: _sfc_main$5, class: "bg-light radius-thin pd-thin i-big" },
359
- modelValue: showDropdown.value,
360
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showDropdown.value = $event),
361
- class: "relative"
362
- }, {
363
- trigger: withCtx(() => [
364
- createVNode(_sfc_main$1, {
365
- color: "transp",
366
- size: "medium",
367
- class: "w-3r h-3r radius-full"
368
- }, {
369
- default: withCtx(() => [
370
- createVNode(_sfc_main$5, { class: "w-1-25r h-1-25r" })
371
- ]),
372
- _: 1
373
- })
374
- ]),
375
- default: withCtx(() => [
376
- createElementVNode("div", _hoisted_17, [
377
- createVNode(_sfc_main$1, {
378
- onClick: addToQueue,
379
- color: "transp",
380
- size: "small",
381
- class: "w-100 t-nowrap justify-start"
382
- }, {
383
- default: withCtx(() => _cache[13] || (_cache[13] = [
384
- createTextVNode(" Add to Queue ")
385
- ])),
386
- _: 1
387
- }),
388
- createVNode(_sfc_main$1, {
389
- onClick: copyLink,
390
- color: "transp",
391
- size: "small",
392
- class: "w-100 t-nowrap justify-start"
393
- }, {
394
- default: withCtx(() => _cache[14] || (_cache[14] = [
395
- createTextVNode(" Copy Link ")
396
- ])),
397
- _: 1
398
- }),
399
- isOwner.value || isCollaborator.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
400
- _cache[17] || (_cache[17] = createElementVNode("hr", { class: "mn-v-thin border-dark-transp-10" }, null, -1)),
401
- createVNode(_sfc_main$1, {
402
- onClick: editPlaylist,
403
- color: "transp",
404
- size: "small",
405
- class: "w-100 t-nowrap justify-start"
406
- }, {
407
- default: withCtx(() => _cache[15] || (_cache[15] = [
408
- createTextVNode(" Edit Playlist ")
409
- ])),
410
- _: 1
411
- }),
412
- isOwner.value ? (openBlock(), createBlock(_sfc_main$1, {
413
- key: 0,
414
- onClick: toggleCollaborative,
415
- color: "transp",
416
- size: "small",
417
- class: "t-nowrap w-100 justify-start"
418
- }, {
419
- default: withCtx(() => [
420
- createTextVNode(toDisplayString(playlist.value.isCollaborative ? "Make Private" : "Make Collaborative"), 1)
421
- ]),
422
- _: 1
423
- })) : createCommentVNode("", true),
424
- isOwner.value ? (openBlock(), createBlock(_sfc_main$1, {
425
- key: 1,
426
- onClick: deletePlaylist,
427
- color: "danger",
428
- size: "small",
429
- class: "t-nowrap w-100 justify-start"
430
- }, {
431
- default: withCtx(() => _cache[16] || (_cache[16] = [
432
- createTextVNode(" Delete Playlist ")
433
- ])),
434
- _: 1
435
- })) : createCommentVNode("", true)
436
- ], 64)) : createCommentVNode("", true)
437
- ])
438
- ]),
439
- _: 1
440
- }, 8, ["label", "modelValue"])
441
- ]),
442
- createElementVNode("div", _hoisted_18, [
443
- _cache[18] || (_cache[18] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Created by", -1)),
444
- createElementVNode("div", _hoisted_19, [
364
+ _cache[10] || (_cache[10] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Created by", -1)),
365
+ createElementVNode("div", _hoisted_17, [
445
366
  createVNode(ArtistCardSmall, {
446
367
  artist: {
447
368
  _id: playlist.value.creator.target,
@@ -452,13 +373,13 @@ const _sfc_main = {
452
373
  },
453
374
  "is-following": followedUsers.value.includes(playlist.value.creator.target),
454
375
  "show-follow-button": !isOwner.value,
455
- onToggleFollow: _cache[1] || (_cache[1] = ($event) => toggleFollowUser(playlist.value.creator.target))
376
+ onToggleFollow: _cache[0] || (_cache[0] = ($event) => toggleFollowUser(playlist.value.creator.target))
456
377
  }, null, 8, ["artist", "is-following", "show-follow-button"])
457
378
  ])
458
379
  ]),
459
- playlist.value.collaborators && playlist.value.collaborators.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_20, [
460
- _cache[19] || (_cache[19] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Collaborators", -1)),
461
- createElementVNode("div", _hoisted_21, [
380
+ playlist.value.collaborators && playlist.value.collaborators.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_18, [
381
+ _cache[11] || (_cache[11] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Collaborators", -1)),
382
+ createElementVNode("div", _hoisted_19, [
462
383
  (openBlock(true), createElementBlock(Fragment, null, renderList(playlist.value.collaborators, (collaborator) => {
463
384
  return openBlock(), createElementBlock("div", {
464
385
  key: collaborator._id || collaborator,
@@ -469,45 +390,45 @@ const _sfc_main = {
469
390
  url: collaborator.photoUrl,
470
391
  class: "i-medium radius-full object-cover"
471
392
  }, null, 8, ["url"])) : createCommentVNode("", true),
472
- createElementVNode("span", _hoisted_22, toDisplayString(collaborator.name || collaborator.profile?.name || "User"), 1)
393
+ createElementVNode("span", _hoisted_20, toDisplayString(collaborator.name || collaborator.profile?.name || "User"), 1)
473
394
  ]);
474
395
  }), 128))
475
396
  ])
476
397
  ])) : createCommentVNode("", true),
477
- _cache[26] || (_cache[26] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Metadata", -1)),
478
- createElementVNode("div", _hoisted_23, [
479
- createElementVNode("div", _hoisted_24, [
480
- createVNode(_sfc_main$6, { class: "i-medium t-primary" }),
398
+ _cache[18] || (_cache[18] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Metadata", -1)),
399
+ createElementVNode("div", _hoisted_21, [
400
+ createElementVNode("div", _hoisted_22, [
401
+ createVNode(_sfc_main$4, { class: "i-medium t-primary" }),
481
402
  createElementVNode("div", null, [
482
- _cache[20] || (_cache[20] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Created", -1)),
483
- createElementVNode("div", _hoisted_25, toDisplayString(formatDate(playlist.value.createdAt)), 1)
403
+ _cache[12] || (_cache[12] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Created", -1)),
404
+ createElementVNode("div", _hoisted_23, toDisplayString(formatDate(playlist.value.createdAt)), 1)
484
405
  ])
485
406
  ]),
486
- createElementVNode("div", _hoisted_26, [
407
+ createElementVNode("div", _hoisted_24, [
487
408
  createVNode(IconTime, { class: "i-medium t-primary" }),
488
409
  createElementVNode("div", null, [
489
- _cache[21] || (_cache[21] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Duration", -1)),
490
- createElementVNode("div", _hoisted_27, toDisplayString(totalDuration.value), 1)
410
+ _cache[13] || (_cache[13] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Duration", -1)),
411
+ createElementVNode("div", _hoisted_25, toDisplayString(totalDuration.value), 1)
491
412
  ])
492
413
  ]),
493
- createElementVNode("div", _hoisted_28, [
494
- createVNode(_sfc_main$7, { class: "i-medium t-primary" }),
414
+ createElementVNode("div", _hoisted_26, [
415
+ createVNode(_sfc_main$5, { class: "i-medium t-primary" }),
495
416
  createElementVNode("div", null, [
496
- _cache[22] || (_cache[22] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Updated", -1)),
497
- createElementVNode("div", _hoisted_29, toDisplayString(formatDate(playlist.value.updatedAt)), 1)
417
+ _cache[14] || (_cache[14] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Updated", -1)),
418
+ createElementVNode("div", _hoisted_27, toDisplayString(formatDate(playlist.value.updatedAt)), 1)
498
419
  ])
499
420
  ]),
500
- createElementVNode("div", _hoisted_30, [
501
- createVNode(_sfc_main$8, { class: "i-medium t-primary" }),
421
+ createElementVNode("div", _hoisted_28, [
422
+ createVNode(_sfc_main$6, { class: "i-medium t-primary" }),
502
423
  createElementVNode("div", null, [
503
- _cache[23] || (_cache[23] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Visibility", -1)),
504
- createElementVNode("div", _hoisted_31, toDisplayString(playlist.value.isPublic ? "Public" : "Private"), 1)
424
+ _cache[15] || (_cache[15] = createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Visibility", -1)),
425
+ createElementVNode("div", _hoisted_29, toDisplayString(playlist.value.isPublic ? "Public" : "Private"), 1)
505
426
  ])
506
427
  ])
507
428
  ]),
508
- playlist.value.tags && playlist.value.tags.length ? (openBlock(), createElementBlock("div", _hoisted_32, [
509
- _cache[24] || (_cache[24] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Tags", -1)),
510
- createElementVNode("div", _hoisted_33, [
429
+ playlist.value.tags && playlist.value.tags.length ? (openBlock(), createElementBlock("div", _hoisted_30, [
430
+ _cache[16] || (_cache[16] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "Tags", -1)),
431
+ createElementVNode("div", _hoisted_31, [
511
432
  (openBlock(true), createElementBlock(Fragment, null, renderList(playlist.value.tags, (tag) => {
512
433
  return openBlock(), createElementBlock("span", {
513
434
  key: tag,
@@ -516,15 +437,15 @@ const _sfc_main = {
516
437
  }), 128))
517
438
  ])
518
439
  ])) : createCommentVNode("", true),
519
- playlist.value.description ? (openBlock(), createElementBlock("div", _hoisted_34, [
520
- _cache[25] || (_cache[25] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "About", -1)),
521
- createElementVNode("p", _hoisted_35, toDisplayString(playlist.value.description), 1)
440
+ playlist.value.description ? (openBlock(), createElementBlock("div", _hoisted_32, [
441
+ _cache[17] || (_cache[17] = createElementVNode("h3", { class: "t-medium mn-b-small" }, "About", -1)),
442
+ createElementVNode("p", _hoisted_33, toDisplayString(playlist.value.description), 1)
522
443
  ])) : createCommentVNode("", true)
523
444
  ])
524
445
  ])) : createCommentVNode("", true),
525
- !_ctx.isLoading && playlist.value && playlistTracks.value.length ? (openBlock(), createElementBlock("section", _hoisted_36, [
526
- _cache[27] || (_cache[27] = createElementVNode("h2", { class: "h2 mn-b-medium" }, "Tracklist", -1)),
527
- createVNode(_sfc_main$9, {
446
+ !_ctx.isLoading && playlist.value && playlistTracks.value.length ? (openBlock(), createElementBlock("section", _hoisted_34, [
447
+ _cache[19] || (_cache[19] = createElementVNode("h2", { class: "h2 mn-b-medium" }, "Tracklist", -1)),
448
+ createVNode(_sfc_main$7, {
528
449
  store: {
529
450
  read: () => _ctx.Promise.resolve(playlistTracks.value),
530
451
  state: { isLoading: false }
@@ -540,9 +461,9 @@ const _sfc_main = {
540
461
  }
541
462
  }, {
542
463
  default: withCtx(({ items }) => [
543
- createElementVNode("div", _hoisted_37, [
464
+ createElementVNode("div", _hoisted_35, [
544
465
  (openBlock(true), createElementBlock(Fragment, null, renderList(items, (track, index) => {
545
- return openBlock(), createBlock(_sfc_main$a, {
466
+ return openBlock(), createBlock(_sfc_main$8, {
546
467
  key: track._id,
547
468
  track,
548
469
  index: index + 1,
@@ -556,38 +477,38 @@ const _sfc_main = {
556
477
  ]),
557
478
  _: 1
558
479
  }, 8, ["store", "items"])
559
- ])) : !_ctx.isLoading && playlist.value && !playlistTracks.value.length ? (openBlock(), createElementBlock("section", _hoisted_38, [
560
- createElementVNode("div", _hoisted_39, [
561
- _cache[29] || (_cache[29] = createElementVNode("h3", { class: "mn-b-small" }, "This playlist is empty", -1)),
562
- _cache[30] || (_cache[30] = createElementVNode("p", { class: "t-transp t-medium mn-b-medium" }, "Add some tracks to get started", -1)),
563
- isOwner.value || isCollaborator.value ? (openBlock(), createBlock(_sfc_main$1, {
480
+ ])) : !_ctx.isLoading && playlist.value && !playlistTracks.value.length ? (openBlock(), createElementBlock("section", _hoisted_36, [
481
+ createElementVNode("div", _hoisted_37, [
482
+ _cache[21] || (_cache[21] = createElementVNode("h3", { class: "mn-b-small" }, "This playlist is empty", -1)),
483
+ _cache[22] || (_cache[22] = createElementVNode("p", { class: "t-transp t-medium mn-b-medium" }, "Add some tracks to get started", -1)),
484
+ isOwner.value || isCollaborator.value ? (openBlock(), createBlock(_sfc_main$9, {
564
485
  key: 0,
565
- onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$router.push({ name: "music-search" })),
486
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$router.push({ name: "music-search" })),
566
487
  color: "primary",
567
488
  size: "medium"
568
489
  }, {
569
- default: withCtx(() => _cache[28] || (_cache[28] = [
490
+ default: withCtx(() => _cache[20] || (_cache[20] = [
570
491
  createTextVNode(" Find Tracks ")
571
492
  ])),
572
493
  _: 1
573
494
  })) : createCommentVNode("", true)
574
495
  ])
575
496
  ])) : createCommentVNode("", true),
576
- !_ctx.isLoading && playlist.value && morePlaylists.value.length ? (openBlock(), createElementBlock("section", _hoisted_40, [
577
- createElementVNode("div", _hoisted_41, [
578
- _cache[32] || (_cache[32] = createElementVNode("h2", { class: "h2" }, "More Playlists", -1)),
497
+ !_ctx.isLoading && playlist.value && morePlaylists.value.length ? (openBlock(), createElementBlock("section", _hoisted_38, [
498
+ createElementVNode("div", _hoisted_39, [
499
+ _cache[24] || (_cache[24] = createElementVNode("h2", { class: "h2" }, "More Playlists", -1)),
579
500
  playlist.value.creator ? (openBlock(), createBlock(_component_router_link, {
580
501
  key: 0,
581
502
  to: getOwnerProfileLink(playlist.value.creator),
582
503
  class: "t-primary hover-opacity"
583
504
  }, {
584
- default: withCtx(() => _cache[31] || (_cache[31] = [
505
+ default: withCtx(() => _cache[23] || (_cache[23] = [
585
506
  createTextVNode(" See all ")
586
507
  ])),
587
508
  _: 1
588
509
  }, 8, ["to"])) : createCommentVNode("", true)
589
510
  ]),
590
- createElementVNode("div", _hoisted_42, [
511
+ createElementVNode("div", _hoisted_40, [
591
512
  (openBlock(true), createElementBlock(Fragment, null, renderList(morePlaylists.value, (relatedPlaylist) => {
592
513
  return openBlock(), createElementBlock("li", {
593
514
  key: relatedPlaylist._id,
@@ -601,46 +522,46 @@ const _sfc_main = {
601
522
  }), 128))
602
523
  ])
603
524
  ])) : createCommentVNode("", true),
604
- createVNode(_sfc_main$b, {
525
+ createVNode(_sfc_main$a, {
605
526
  isPopupOpen: showEditModal.value && (isOwner.value || isCollaborator.value),
606
- onClosePopup: _cache[4] || (_cache[4] = ($event) => showEditModal.value = false),
527
+ onClosePopup: _cache[3] || (_cache[3] = ($event) => showEditModal.value = false),
607
528
  class: "bg-white pd-medium w-m-30r radius-medium"
608
529
  }, {
609
530
  default: withCtx(() => [
610
- createVNode(_sfc_main$c, {
531
+ createVNode(_sfc_main$b, {
611
532
  editMode: true,
612
533
  url: playlist.value.url,
613
- onCancel: _cache[3] || (_cache[3] = ($event) => showEditModal.value = false),
534
+ onCancel: _cache[2] || (_cache[2] = ($event) => showEditModal.value = false),
614
535
  onUpdated: handlePlaylistUpdated
615
536
  }, null, 8, ["url"])
616
537
  ]),
617
538
  _: 1
618
539
  }, 8, ["isPopupOpen"]),
619
- createVNode(_sfc_main$b, {
540
+ createVNode(_sfc_main$a, {
620
541
  isPopupOpen: showDeleteModal.value,
621
- onClosePopup: _cache[6] || (_cache[6] = ($event) => showDeleteModal.value = false),
542
+ onClosePopup: _cache[5] || (_cache[5] = ($event) => showDeleteModal.value = false),
622
543
  class: "bg-white pd-medium w-m-25r radius-medium"
623
544
  }, {
624
545
  default: withCtx(() => [
625
- _cache[35] || (_cache[35] = createElementVNode("h3", { class: "mn-b-medium" }, "Delete Playlist", -1)),
626
- createElementVNode("p", _hoisted_43, 'Are you sure you want to delete "' + toDisplayString(playlist.value.title) + '"? This action cannot be undone.', 1),
627
- createElementVNode("div", _hoisted_44, [
628
- createVNode(_sfc_main$1, {
629
- onClick: _cache[5] || (_cache[5] = ($event) => showDeleteModal.value = false),
546
+ _cache[27] || (_cache[27] = createElementVNode("h3", { class: "mn-b-medium" }, "Delete Playlist", -1)),
547
+ createElementVNode("p", _hoisted_41, 'Are you sure you want to delete "' + toDisplayString(playlist.value.title) + '"? This action cannot be undone.', 1),
548
+ createElementVNode("div", _hoisted_42, [
549
+ createVNode(_sfc_main$9, {
550
+ onClick: _cache[4] || (_cache[4] = ($event) => showDeleteModal.value = false),
630
551
  color: "transp",
631
552
  size: "medium"
632
553
  }, {
633
- default: withCtx(() => _cache[33] || (_cache[33] = [
554
+ default: withCtx(() => _cache[25] || (_cache[25] = [
634
555
  createTextVNode(" Cancel ")
635
556
  ])),
636
557
  _: 1
637
558
  }),
638
- createVNode(_sfc_main$1, {
559
+ createVNode(_sfc_main$9, {
639
560
  onClick: confirmDelete,
640
561
  color: "danger",
641
562
  size: "medium"
642
563
  }, {
643
- default: withCtx(() => _cache[34] || (_cache[34] = [
564
+ default: withCtx(() => _cache[26] || (_cache[26] = [
644
565
  createTextVNode(" Delete Playlist ")
645
566
  ])),
646
567
  _: 1