@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.vue2.js","sources":["../../../../../../../../src/modules/core/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex o-x-scroll scroll-hide t-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-regular\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-regular\" />\n <span class=\"t-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"closeAllFilters\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <FiltersGroup\n :filters=\"filters\"\n v-model:selected=\"tempSelected\"\n :immediate=\"false\"\n :showHeader=\"true\"\n :showApplyButton=\"true\"\n :showResetButton=\"true\"\n @update:selected=\"applyAllFilters\"\n />\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"cancelFilter(filter.value)\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n\n <!-- Checkbox Filter -->\n <FilterCheckbox\n v-if=\"filter.type === 'checkbox'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <!-- Range Filter -->\n <FilterRange\n v-else-if=\"filter.type === 'range'\"\n v-model=\"tempSelected[filter.value]\"\n :minPlaceholder=\"filter.minPlaceholder || 'Min'\"\n :maxPlaceholder=\"filter.maxPlaceholder || 'Max'\"\n :label=\"filter.label\"\n />\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <!-- Radio/Options Filter -->\n <FilterOptions\n v-else-if=\"filter.type === 'radio'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button\n @click=\"cancelFilter(filter.value)\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button\n @click=\"applyFilter(filter.value)\"\n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport FiltersGroup from './filters/FiltersGroup.vue'\nimport FilterCheckbox from './filters/FilterCheckbox.vue'\nimport FilterRange from './filters/FilterRange.vue'\nimport FilterDateRange from './filters/FilterDateRange.vue'\nimport FilterOptions from './filters/FilterOptions.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate, returnCurrency } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = (newValues) => {\n Object.entries(newValues).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst closeAllFilters = () => {\n showAllFilters.value = false\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":"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"}
@@ -29,7 +29,7 @@ const _sfc_main = {
29
29
  action.to ? (openBlock(), createBlock(_component_router_link, {
30
30
  key: action.to,
31
31
  to: action.to,
32
- class: normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex")
32
+ class: normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex")
33
33
  }, {
34
34
  default: withCtx(() => [
35
35
  createTextVNode(toDisplayString(action.label), 1)
@@ -39,7 +39,7 @@ const _sfc_main = {
39
39
  action.method ? (openBlock(), createElementBlock("button", {
40
40
  key: 1,
41
41
  onClick: action.method,
42
- class: normalizeClass(action.class || "radius-extra pd-thin uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex")
42
+ class: normalizeClass(action.class || "radius-extra pd-thin uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex")
43
43
  }, toDisplayString(action.label), 11, _hoisted_3)) : createCommentVNode("", true)
44
44
  ], 64);
45
45
  }), 256)) : createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </router-link>\n\n <button\n v-if=\"action.method\"\n @click=\"action.method\"\n :class=\"action.class || 'radius-extra pd-thin uppercase t-medium hover-scale-1 transition-ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </button>\n </template>\n </header>\n\n <Tab\n v-if=\"tabs\"\n :selected=\"tabs_current\"\n @update:selected=\"updateTabsCurrent\"\n :tabs=\"tabs\"\n class=\"mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\n\nconst emits = defineEmits([\n 'update:tabs_current'\n])\n\nconst props = defineProps({\n title: String,\n actions: Array,\n tabs: Array,\n tabs_current: [Object, String]\n});\n\nconst updateTabsCurrent = (newValue) => {\n emits('update:tabs_current', newValue); // Emitting to parent component\n}\n</script>\n\n<style scoped>\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA2CA,UAAM,QAAQ;AAWd,UAAM,oBAAoB,CAAC,aAAa;AACtC,YAAM,uBAAuB,QAAQ;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template \n v-for=\"action in actions\" \n v-if=\"actions && actions.length > 0\"\n >\n <router-link\n v-if=\"action.to\"\n :key=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </router-link>\n\n <button\n v-if=\"action.method\"\n @click=\"action.method\"\n :class=\"action.class || 'radius-extra pd-thin uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </button>\n </template>\n </header>\n\n <Tab\n v-if=\"tabs\"\n :selected=\"tabs_current\"\n @update:selected=\"updateTabsCurrent\"\n :tabs=\"tabs\"\n class=\"mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\n\nconst emits = defineEmits([\n 'update:tabs_current'\n])\n\nconst props = defineProps({\n title: String,\n actions: Array,\n tabs: Array,\n tabs_current: [Object, String]\n});\n\nconst updateTabsCurrent = (newValue) => {\n emits('update:tabs_current', newValue); // Emitting to parent component\n}\n</script>\n\n<style scoped>\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA2CA,UAAM,QAAQ;AAWd,UAAM,oBAAoB,CAAC,aAAa;AACtC,YAAM,uBAAuB,QAAQ;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import _sfc_main$1 from "../../../../icons/entities/IconBell.vue.js";
5
5
  import _sfc_main$2 from "../../../../icons/entities/IconAddress.vue.js";
6
6
  import { AppTrackingTransparency } from "../../../../../../../node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js";
7
7
  import "../../../../notifications/notifications.client.js";
8
- import { Preferences } from "../../../../../../node_modules/.pnpm/@capacitor_preferences@7.0.0_@capacitor_core@7.0.1/node_modules/@capacitor/preferences/dist/esm/index.js";
8
+ import { Preferences } from "../../../../../../node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js";
9
9
  /* empty css */
10
10
  const _hoisted_1 = { class: "embla__container w-100 z-index-1" };
11
11
  const _hoisted_2 = { class: "pos-relative flex-justify-center pd-thin t-center flex-column flex embla__slide" };
@@ -50,14 +50,14 @@ const _sfc_main = {
50
50
  label: option.label,
51
51
  value: option.value,
52
52
  mode: "checkbox",
53
- class: "br-solid br-1px br-light pd-small radius-small mn-b-micro"
53
+ class: "br-1px br-light pd-small radius-small mn-b-micro"
54
54
  }, null, 8, ["radio", "label", "value"]);
55
55
  }), 128))
56
56
  ]);
57
57
  };
58
58
  }
59
59
  };
60
- const FilterCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d3175613"]]);
60
+ const FilterCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-91444d4c"]]);
61
61
  export {
62
62
  FilterCheckbox as default
63
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCheckbox.vue2.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterCheckbox.vue"],"sourcesContent":["<!-- FilterCheckbox.vue -->\n<template>\n <div class=\"filter-checkbox\">\n <Checkbox\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"option.value\"\n v-model:radio=\"model\"\n :label=\"option.label\"\n :value=\"option.value\"\n mode=\"checkbox\"\n class=\"br-solid br-1px br-light pd-small radius-small mn-b-micro\"\n @update:radio=\"emit('apply')\"\n />\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nconst props = defineProps({\n options: {\n type: Array,\n required: true\n }\n})\n\nconst model = defineModel({\n type: Array,\n default: () => []\n})\n\nconst emit = defineEmits(['apply'])\n\n// Normalize options to always have label and value\nconst normalizedOptions = computed(() => {\n if (!props.options || !Array.isArray(props.options)) return []\n\n return props.options.map((option, index) => {\n if (typeof option === 'string') {\n return { label: option, value: option }\n }\n if (typeof option === 'object' && option !== null) {\n return {\n label: option.label || option.text || option.name || String(option.value || option),\n value: option.value || option.text || option.label || option._id || option.id || `option-${index}`\n }\n }\n return { label: String(option), value: `option-${index}` }\n })\n})\n</script>\n\n<style scoped>\n.filter-checkbox {\n max-height: 300px;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAGb,UAAM,oBAAoB,SAAS,MAAM;AACvC,UAAI,CAAC,MAAM,WAAW,CAAC,MAAM,QAAQ,MAAM,OAAO,EAAG,QAAO,CAAA;AAE5D,aAAO,MAAM,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAC1C,YAAI,OAAO,WAAW,UAAU;AAC9B,iBAAO,EAAE,OAAO,QAAQ,OAAO,OAAM;AAAA,QACvC;AACA,YAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,iBAAO;AAAA,YACL,OAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,QAAQ,OAAO,OAAO,SAAS,MAAM;AAAA,YAClF,OAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,SAAS,OAAO,OAAO,OAAO,MAAM,UAAU,KAAK;AAAA,UACxG;AAAA,QACI;AACA,eAAO,EAAE,OAAO,OAAO,MAAM,GAAG,OAAO,UAAU,KAAK,GAAE;AAAA,MAC1D,CAAC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterCheckbox.vue2.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterCheckbox.vue"],"sourcesContent":["<!-- FilterCheckbox.vue -->\n<template>\n <div class=\"filter-checkbox\">\n <Checkbox\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"option.value\"\n v-model:radio=\"model\"\n :label=\"option.label\"\n :value=\"option.value\"\n mode=\"checkbox\"\n class=\"br-1px br-light pd-small radius-small mn-b-micro\"\n @update:radio=\"emit('apply')\"\n />\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nconst props = defineProps({\n options: {\n type: Array,\n required: true\n }\n})\n\nconst model = defineModel({\n type: Array,\n default: () => []\n})\n\nconst emit = defineEmits(['apply'])\n\n// Normalize options to always have label and value\nconst normalizedOptions = computed(() => {\n if (!props.options || !Array.isArray(props.options)) return []\n\n return props.options.map((option, index) => {\n if (typeof option === 'string') {\n return { label: option, value: option }\n }\n if (typeof option === 'object' && option !== null) {\n return {\n label: option.label || option.text || option.name || String(option.value || option),\n value: option.value || option.text || option.label || option._id || option.id || `option-${index}`\n }\n }\n return { label: String(option), value: `option-${index}` }\n })\n})\n</script>\n\n<style scoped>\n.filter-checkbox {\n max-height: 300px;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAGb,UAAM,oBAAoB,SAAS,MAAM;AACvC,UAAI,CAAC,MAAM,WAAW,CAAC,MAAM,QAAQ,MAAM,OAAO,EAAG,QAAO,CAAA;AAE5D,aAAO,MAAM,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAC1C,YAAI,OAAO,WAAW,UAAU;AAC9B,iBAAO,EAAE,OAAO,QAAQ,OAAO,OAAM;AAAA,QACvC;AACA,YAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,iBAAO;AAAA,YACL,OAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,QAAQ,OAAO,OAAO,SAAS,MAAM;AAAA,YAClF,OAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,SAAS,OAAO,OAAO,OAAO,MAAM,UAAU,KAAK;AAAA,UACxG;AAAA,QACI;AACA,eAAO,EAAE,OAAO,OAAO,MAAM,GAAG,OAAO,UAAU,KAAK,GAAE;AAAA,MAC1D,CAAC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;"}
@@ -109,14 +109,14 @@ const _sfc_main = {
109
109
  return openBlock(), createElementBlock("div", {
110
110
  key: option.value,
111
111
  onClick: ($event) => selectOption(option.value),
112
- class: normalizeClass([{ "bg-light": selectedOption.value === option.value }, "pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro"])
112
+ class: normalizeClass([{ "bg-light": selectedOption.value === option.value }, "pd-small radius-small cursor-pointer hover:bg-light ease mn-b-micro"])
113
113
  }, toDisplayString(option.label), 11, _hoisted_2);
114
114
  }), 128)) : createCommentVNode("", true),
115
115
  createElementVNode("div", {
116
116
  onClick: _cache[0] || (_cache[0] = () => {
117
117
  showCalendar.value = true;
118
118
  }),
119
- class: normalizeClass([{ "bg-light": model.value }, "pd-small field-wrapper radius-small bg-light cursor-pointer hover-bg-light transition-all flex-v-center flex gap-thin"])
119
+ class: normalizeClass([{ "bg-light": model.value }, "pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin"])
120
120
  }, [
121
121
  createVNode(_sfc_main$1, { class: "i-medium" }),
122
122
  createElementVNode("span", null, toDisplayString(dateRangeLabel.value), 1)
@@ -153,7 +153,7 @@ const _sfc_main = {
153
153
  };
154
154
  }
155
155
  };
156
- const FilterDateRange = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-dbe77cee"]]);
156
+ const FilterDateRange = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-694c3529"]]);
157
157
  export {
158
158
  FilterDateRange as default
159
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterDateRange.vue2.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterDateRange.vue"],"sourcesContent":["<!-- FilterDateRange.vue -->\n<template>\n <div class=\"filter-date-range\">\n <!-- Quick options (only if provided) -->\n <div\n v-if=\"dateOptions.length > 0\"\n v-for=\"option in dateOptions\"\n :key=\"option.value\"\n @click=\"selectOption(option.value)\"\n :class=\"{ 'bg-light': selectedOption === option.value }\"\n class=\"pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro\"\n >\n {{ option.label }}\n </div>\n\n <!-- Custom dates with icon (like in Products) -->\n <div\n @click=\"() => { showCalendar = true }\"\n :class=\"{ 'bg-light': model }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover-bg-light transition-all flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span>{{ dateRangeLabel }}</span>\n </div>\n\n <!-- Calendar Popup -->\n <Popup\n :isPopupOpen=\"showCalendar\"\n @close-popup=\"showCalendar = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"applyDates\"\n class=\"button bg-main t-white flex-child-full pd-small radius-small\"\n >\n Apply\n </button>\n <button \n @click=\"showCalendar = false\"\n class=\"button bg-light flex-child-full pd-small radius-small\"\n >\n Cancel\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\n\nconst { formatDate } = useGlobalMixins()\n\nconst props = defineProps({\n dateOptions: {\n type: Array,\n default: () => []\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => null\n})\n\nconst emit = defineEmits(['update:modelValue', 'apply'])\n\nconst showCalendar = ref(false)\nconst selectedOption = ref(null)\nconst tempDates = ref(null)\n\nconst dateRangeLabel = computed(() => {\n if (!model.value || !model.value.start || !model.value.end) {\n return 'Select dates'\n }\n const start = formatDate(model.value.start, { dayMonth: true, language: 'en' })\n const end = formatDate(model.value.end, { dayMonth: true, language: 'en' })\n return `${start} - ${end}`\n})\n\nconst selectOption = (value) => {\n selectedOption.value = value\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n \n let dateRange = null\n \n switch(value) {\n case 'today':\n dateRange = {\n start: today,\n end: today\n }\n break\n case 'week':\n const weekEnd = new Date(today)\n weekEnd.setDate(today.getDate() + 7)\n dateRange = {\n start: today,\n end: weekEnd\n }\n break\n case 'month':\n const monthEnd = new Date(today)\n monthEnd.setMonth(today.getMonth() + 1)\n dateRange = {\n start: today,\n end: monthEnd\n }\n break\n }\n \n if (dateRange) {\n model.value = dateRange\n emit('apply')\n }\n}\n\nconst applyDates = () => {\n if (tempDates.value) {\n model.value = tempDates.value\n selectedOption.value = 'custom'\n emit('apply')\n }\n showCalendar.value = false\n}\n\n// Watch for model changes to update selected option\nwatch(() => model.value, (newVal) => {\n if (newVal && newVal.start && newVal.end) {\n tempDates.value = { ...newVal }\n \n // Determine which option is selected based on dates\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const start = new Date(newVal.start)\n start.setHours(0, 0, 0, 0)\n const end = new Date(newVal.end)\n end.setHours(0, 0, 0, 0)\n \n const diffDays = Math.round((end - start) / (1000 * 60 * 60 * 24))\n \n if (start.getTime() === today.getTime() && end.getTime() === today.getTime()) {\n selectedOption.value = 'today'\n } else if (start.getTime() === today.getTime() && diffDays === 7) {\n selectedOption.value = 'week'\n } else if (start.getTime() === today.getTime() && diffDays >= 28 && diffDays <= 31) {\n selectedOption.value = 'month'\n } else {\n selectedOption.value = 'custom'\n }\n } else {\n selectedOption.value = null\n }\n}, { immediate: true, deep: true })\n</script>\n\n<style scoped>\n.filter-date-range {\n width: 100%;\n}\n</style>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,UAAM,EAAE,WAAU,IAAK,gBAAe;AAStC,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAEb,UAAM,eAAe,IAAI,KAAK;AAC9B,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,YAAY,IAAI,IAAI;AAE1B,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,CAAC,MAAM,SAAS,CAAC,MAAM,MAAM,SAAS,CAAC,MAAM,MAAM,KAAK;AAC1D,eAAO;AAAA,MACT;AACA,YAAM,QAAQ,WAAW,MAAM,MAAM,OAAO,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE;AAC9E,YAAM,MAAM,WAAW,MAAM,MAAM,KAAK,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE;AAC1E,aAAO,GAAG,KAAK,MAAM,GAAG;AAAA,IAC1B,CAAC;AAED,UAAM,eAAe,CAAC,UAAU;AAC9B,qBAAe,QAAQ;AACvB,YAAM,QAAQ,oBAAI,KAAI;AACtB,YAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AAEzB,UAAI,YAAY;AAEhB,cAAO,OAAK;AAAA,QACV,KAAK;AACH,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,QACF,KAAK;AACH,gBAAM,UAAU,IAAI,KAAK,KAAK;AAC9B,kBAAQ,QAAQ,MAAM,QAAO,IAAK,CAAC;AACnC,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,QACF,KAAK;AACH,gBAAM,WAAW,IAAI,KAAK,KAAK;AAC/B,mBAAS,SAAS,MAAM,SAAQ,IAAK,CAAC;AACtC,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,MACN;AAEE,UAAI,WAAW;AACb,cAAM,QAAQ;AACd,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAEA,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,OAAO;AACnB,cAAM,QAAQ,UAAU;AACxB,uBAAe,QAAQ;AACvB,aAAK,OAAO;AAAA,MACd;AACA,mBAAa,QAAQ;AAAA,IACvB;AAGA,UAAM,MAAM,MAAM,OAAO,CAAC,WAAW;AACnC,UAAI,UAAU,OAAO,SAAS,OAAO,KAAK;AACxC,kBAAU,QAAQ,EAAE,GAAG,OAAM;AAG7B,cAAM,QAAQ,oBAAI,KAAI;AACtB,cAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AACzB,cAAM,QAAQ,IAAI,KAAK,OAAO,KAAK;AACnC,cAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AACzB,cAAM,MAAM,IAAI,KAAK,OAAO,GAAG;AAC/B,YAAI,SAAS,GAAG,GAAG,GAAG,CAAC;AAEvB,cAAM,WAAW,KAAK,OAAO,MAAM,UAAU,MAAO,KAAK,KAAK,GAAG;AAEjE,YAAI,MAAM,cAAc,MAAM,QAAO,KAAM,IAAI,QAAO,MAAO,MAAM,WAAW;AAC5E,yBAAe,QAAQ;AAAA,QACzB,WAAW,MAAM,QAAO,MAAO,MAAM,QAAO,KAAM,aAAa,GAAG;AAChE,yBAAe,QAAQ;AAAA,QACzB,WAAW,MAAM,QAAO,MAAO,MAAM,QAAO,KAAM,YAAY,MAAM,YAAY,IAAI;AAClF,yBAAe,QAAQ;AAAA,QACzB,OAAO;AACL,yBAAe,QAAQ;AAAA,QACzB;AAAA,MACF,OAAO;AACL,uBAAe,QAAQ;AAAA,MACzB;AAAA,IACF,GAAG,EAAE,WAAW,MAAM,MAAM,KAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterDateRange.vue2.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterDateRange.vue"],"sourcesContent":["<!-- FilterDateRange.vue -->\n<template>\n <div class=\"filter-date-range\">\n <!-- Quick options (only if provided) -->\n <div\n v-if=\"dateOptions.length > 0\"\n v-for=\"option in dateOptions\"\n :key=\"option.value\"\n @click=\"selectOption(option.value)\"\n :class=\"{ 'bg-light': selectedOption === option.value }\"\n class=\"pd-small radius-small cursor-pointer hover:bg-light ease mn-b-micro\"\n >\n {{ option.label }}\n </div>\n\n <!-- Custom dates with icon (like in Products) -->\n <div\n @click=\"() => { showCalendar = true }\"\n :class=\"{ 'bg-light': model }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span>{{ dateRangeLabel }}</span>\n </div>\n\n <!-- Calendar Popup -->\n <Popup\n :isPopupOpen=\"showCalendar\"\n @close-popup=\"showCalendar = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"applyDates\"\n class=\"button bg-main t-white flex-child-full pd-small radius-small\"\n >\n Apply\n </button>\n <button \n @click=\"showCalendar = false\"\n class=\"button bg-light flex-child-full pd-small radius-small\"\n >\n Cancel\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\n\nconst { formatDate } = useGlobalMixins()\n\nconst props = defineProps({\n dateOptions: {\n type: Array,\n default: () => []\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => null\n})\n\nconst emit = defineEmits(['update:modelValue', 'apply'])\n\nconst showCalendar = ref(false)\nconst selectedOption = ref(null)\nconst tempDates = ref(null)\n\nconst dateRangeLabel = computed(() => {\n if (!model.value || !model.value.start || !model.value.end) {\n return 'Select dates'\n }\n const start = formatDate(model.value.start, { dayMonth: true, language: 'en' })\n const end = formatDate(model.value.end, { dayMonth: true, language: 'en' })\n return `${start} - ${end}`\n})\n\nconst selectOption = (value) => {\n selectedOption.value = value\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n \n let dateRange = null\n \n switch(value) {\n case 'today':\n dateRange = {\n start: today,\n end: today\n }\n break\n case 'week':\n const weekEnd = new Date(today)\n weekEnd.setDate(today.getDate() + 7)\n dateRange = {\n start: today,\n end: weekEnd\n }\n break\n case 'month':\n const monthEnd = new Date(today)\n monthEnd.setMonth(today.getMonth() + 1)\n dateRange = {\n start: today,\n end: monthEnd\n }\n break\n }\n \n if (dateRange) {\n model.value = dateRange\n emit('apply')\n }\n}\n\nconst applyDates = () => {\n if (tempDates.value) {\n model.value = tempDates.value\n selectedOption.value = 'custom'\n emit('apply')\n }\n showCalendar.value = false\n}\n\n// Watch for model changes to update selected option\nwatch(() => model.value, (newVal) => {\n if (newVal && newVal.start && newVal.end) {\n tempDates.value = { ...newVal }\n \n // Determine which option is selected based on dates\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const start = new Date(newVal.start)\n start.setHours(0, 0, 0, 0)\n const end = new Date(newVal.end)\n end.setHours(0, 0, 0, 0)\n \n const diffDays = Math.round((end - start) / (1000 * 60 * 60 * 24))\n \n if (start.getTime() === today.getTime() && end.getTime() === today.getTime()) {\n selectedOption.value = 'today'\n } else if (start.getTime() === today.getTime() && diffDays === 7) {\n selectedOption.value = 'week'\n } else if (start.getTime() === today.getTime() && diffDays >= 28 && diffDays <= 31) {\n selectedOption.value = 'month'\n } else {\n selectedOption.value = 'custom'\n }\n } else {\n selectedOption.value = null\n }\n}, { immediate: true, deep: true })\n</script>\n\n<style scoped>\n.filter-date-range {\n width: 100%;\n}\n</style>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,UAAM,EAAE,WAAU,IAAK,gBAAe;AAStC,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAEb,UAAM,eAAe,IAAI,KAAK;AAC9B,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,YAAY,IAAI,IAAI;AAE1B,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,CAAC,MAAM,SAAS,CAAC,MAAM,MAAM,SAAS,CAAC,MAAM,MAAM,KAAK;AAC1D,eAAO;AAAA,MACT;AACA,YAAM,QAAQ,WAAW,MAAM,MAAM,OAAO,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE;AAC9E,YAAM,MAAM,WAAW,MAAM,MAAM,KAAK,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE;AAC1E,aAAO,GAAG,KAAK,MAAM,GAAG;AAAA,IAC1B,CAAC;AAED,UAAM,eAAe,CAAC,UAAU;AAC9B,qBAAe,QAAQ;AACvB,YAAM,QAAQ,oBAAI,KAAI;AACtB,YAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AAEzB,UAAI,YAAY;AAEhB,cAAO,OAAK;AAAA,QACV,KAAK;AACH,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,QACF,KAAK;AACH,gBAAM,UAAU,IAAI,KAAK,KAAK;AAC9B,kBAAQ,QAAQ,MAAM,QAAO,IAAK,CAAC;AACnC,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,QACF,KAAK;AACH,gBAAM,WAAW,IAAI,KAAK,KAAK;AAC/B,mBAAS,SAAS,MAAM,SAAQ,IAAK,CAAC;AACtC,sBAAY;AAAA,YACV,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AACM;AAAA,MACN;AAEE,UAAI,WAAW;AACb,cAAM,QAAQ;AACd,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAEA,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,OAAO;AACnB,cAAM,QAAQ,UAAU;AACxB,uBAAe,QAAQ;AACvB,aAAK,OAAO;AAAA,MACd;AACA,mBAAa,QAAQ;AAAA,IACvB;AAGA,UAAM,MAAM,MAAM,OAAO,CAAC,WAAW;AACnC,UAAI,UAAU,OAAO,SAAS,OAAO,KAAK;AACxC,kBAAU,QAAQ,EAAE,GAAG,OAAM;AAG7B,cAAM,QAAQ,oBAAI,KAAI;AACtB,cAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AACzB,cAAM,QAAQ,IAAI,KAAK,OAAO,KAAK;AACnC,cAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AACzB,cAAM,MAAM,IAAI,KAAK,OAAO,GAAG;AAC/B,YAAI,SAAS,GAAG,GAAG,GAAG,CAAC;AAEvB,cAAM,WAAW,KAAK,OAAO,MAAM,UAAU,MAAO,KAAK,KAAK,GAAG;AAEjE,YAAI,MAAM,cAAc,MAAM,QAAO,KAAM,IAAI,QAAO,MAAO,MAAM,WAAW;AAC5E,yBAAe,QAAQ;AAAA,QACzB,WAAW,MAAM,QAAO,MAAO,MAAM,QAAO,KAAM,aAAa,GAAG;AAChE,yBAAe,QAAQ;AAAA,QACzB,WAAW,MAAM,QAAO,MAAO,MAAM,QAAO,KAAM,YAAY,MAAM,YAAY,IAAI;AAClF,yBAAe,QAAQ;AAAA,QACzB,OAAO;AACL,yBAAe,QAAQ;AAAA,QACzB;AAAA,MACF,OAAO;AACL,uBAAe,QAAQ;AAAA,MACzB;AAAA,IACF,GAAG,EAAE,WAAW,MAAM,MAAM,KAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -72,7 +72,7 @@ const _sfc_main = {
72
72
  "onUpdate:field": _cache[0] || (_cache[0] = ($event) => localValue.value.min = $event),
73
73
  placeholder: __props.minPlaceholder,
74
74
  label: __props.label,
75
- class: "flex-1 bg-light pd-regular radius-small",
75
+ class: "flex-child-1 bg-light pd-regular radius-small",
76
76
  onBlur: updateValue
77
77
  }, null, 8, ["field", "placeholder", "label"]),
78
78
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "t-small" }, "—", -1)),
@@ -82,7 +82,7 @@ const _sfc_main = {
82
82
  "onUpdate:field": _cache[1] || (_cache[1] = ($event) => localValue.value.max = $event),
83
83
  placeholder: __props.maxPlaceholder,
84
84
  label: __props.label,
85
- class: "flex-1 bg-light pd-regular radius-small",
85
+ class: "flex-child-1 bg-light pd-regular radius-small",
86
86
  onBlur: updateValue
87
87
  }, null, 8, ["field", "placeholder", "label"])
88
88
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"FilterRange.vue.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterRange.vue"],"sourcesContent":["<!-- filters/FilterPrice.vue -->\n<template>\n <div class=\"filter-price\">\n <div class=\"flex flex-v-center gap-thin\">\n <Field\n type=\"number\"\n v-model:field=\"localValue.min\"\n :placeholder=\"minPlaceholder\"\n :label=\"label\"\n class=\"flex-1 bg-light pd-regular radius-small\"\n @blur=\"updateValue\"\n />\n <span class=\"t-small\">—</span>\n <Field\n type=\"number\"\n v-model:field=\"localValue.max\"\n :placeholder=\"maxPlaceholder\"\n :label=\"label\"\n class=\"flex-1 bg-light pd-regular radius-small\"\n @blur=\"updateValue\"\n />\n </div>\n \n <div v-if=\"config?.presets\" class=\"mt-thin\">\n <button\n v-for=\"preset in config.presets\"\n :key=\"preset.label\"\n @click=\"applyPreset(preset)\"\n class=\"btn btn-small mr-thin mb-thin\"\n :class=\"isPresetActive(preset) ? 'btn-primary' : 'btn-secondary'\"\n >\n {{ preset.label }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n config: {\n type: Object,\n default: () => ({})\n },\n minPlaceholder: {\n type: String,\n default: 'Min'\n },\n maxPlaceholder: {\n type: String,\n default: 'Max'\n },\n label: {\n type: String,\n default: undefined\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => ({ min: null, max: null })\n})\n\nconst emit = defineEmits(['update:modelValue', 'apply'])\n\nconst localValue = ref({ \n min: model.value?.min || null, \n max: model.value?.max || null \n})\n\nwatch(model, (val) => {\n if (val) {\n localValue.value = { \n min: val.min || null, \n max: val.max || null \n }\n }\n}, { deep: true })\n\nconst updateValue = () => {\n model.value = { ...localValue.value }\n emit('apply')\n}\n\nconst applyPreset = (preset) => {\n localValue.value = { \n min: preset.min || null, \n max: preset.max || null \n }\n updateValue()\n}\n\nconst isPresetActive = (preset) => {\n return localValue.value.min === preset.min && localValue.value.max === preset.max\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAEb,UAAM,aAAa,IAAI;AAAA,MACrB,KAAK,MAAM,OAAO,OAAO;AAAA,MACzB,KAAK,MAAM,OAAO,OAAO;AAAA,IAC3B,CAAC;AAED,UAAM,OAAO,CAAC,QAAQ;AACpB,UAAI,KAAK;AACP,mBAAW,QAAQ;AAAA,UACjB,KAAK,IAAI,OAAO;AAAA,UAChB,KAAK,IAAI,OAAO;AAAA,QACtB;AAAA,MACE;AAAA,IACF,GAAG,EAAE,MAAM,KAAI,CAAE;AAEjB,UAAM,cAAc,MAAM;AACxB,YAAM,QAAQ,EAAE,GAAG,WAAW,MAAK;AACnC,WAAK,OAAO;AAAA,IACd;AAEA,UAAM,cAAc,CAAC,WAAW;AAC9B,iBAAW,QAAQ;AAAA,QACjB,KAAK,OAAO,OAAO;AAAA,QACnB,KAAK,OAAO,OAAO;AAAA,MACvB;AACE,kBAAW;AAAA,IACb;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,aAAO,WAAW,MAAM,QAAQ,OAAO,OAAO,WAAW,MAAM,QAAQ,OAAO;AAAA,IAChF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterRange.vue.js","sources":["../../../../../../../../../src/modules/core/views/components/sections/filters/FilterRange.vue"],"sourcesContent":["<!-- filters/FilterPrice.vue -->\n<template>\n <div class=\"filter-price\">\n <div class=\"flex flex-v-center gap-thin\">\n <Field\n type=\"number\"\n v-model:field=\"localValue.min\"\n :placeholder=\"minPlaceholder\"\n :label=\"label\"\n class=\"flex-child-1 bg-light pd-regular radius-small\"\n @blur=\"updateValue\"\n />\n <span class=\"t-small\">—</span>\n <Field\n type=\"number\"\n v-model:field=\"localValue.max\"\n :placeholder=\"maxPlaceholder\"\n :label=\"label\"\n class=\"flex-child-1 bg-light pd-regular radius-small\"\n @blur=\"updateValue\"\n />\n </div>\n \n <div v-if=\"config?.presets\" class=\"mt-thin\">\n <button\n v-for=\"preset in config.presets\"\n :key=\"preset.label\"\n @click=\"applyPreset(preset)\"\n class=\"btn btn-small mr-thin mb-thin\"\n :class=\"isPresetActive(preset) ? 'btn-primary' : 'btn-secondary'\"\n >\n {{ preset.label }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n config: {\n type: Object,\n default: () => ({})\n },\n minPlaceholder: {\n type: String,\n default: 'Min'\n },\n maxPlaceholder: {\n type: String,\n default: 'Max'\n },\n label: {\n type: String,\n default: undefined\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => ({ min: null, max: null })\n})\n\nconst emit = defineEmits(['update:modelValue', 'apply'])\n\nconst localValue = ref({ \n min: model.value?.min || null, \n max: model.value?.max || null \n})\n\nwatch(model, (val) => {\n if (val) {\n localValue.value = { \n min: val.min || null, \n max: val.max || null \n }\n }\n}, { deep: true })\n\nconst updateValue = () => {\n model.value = { ...localValue.value }\n emit('apply')\n}\n\nconst applyPreset = (preset) => {\n localValue.value = { \n min: preset.min || null, \n max: preset.max || null \n }\n updateValue()\n}\n\nconst isPresetActive = (preset) => {\n return localValue.value.min === preset.min && localValue.value.max === preset.max\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,UAAM,QAAQA,SAAW,SAAA,YAGxB;AAED,UAAM,OAAO;AAEb,UAAM,aAAa,IAAI;AAAA,MACrB,KAAK,MAAM,OAAO,OAAO;AAAA,MACzB,KAAK,MAAM,OAAO,OAAO;AAAA,IAC3B,CAAC;AAED,UAAM,OAAO,CAAC,QAAQ;AACpB,UAAI,KAAK;AACP,mBAAW,QAAQ;AAAA,UACjB,KAAK,IAAI,OAAO;AAAA,UAChB,KAAK,IAAI,OAAO;AAAA,QACtB;AAAA,MACE;AAAA,IACF,GAAG,EAAE,MAAM,KAAI,CAAE;AAEjB,UAAM,cAAc,MAAM;AACxB,YAAM,QAAQ,EAAE,GAAG,WAAW,MAAK;AACnC,WAAK,OAAO;AAAA,IACd;AAEA,UAAM,cAAc,CAAC,WAAW;AAC9B,iBAAW,QAAQ;AAAA,QACjB,KAAK,OAAO,OAAO;AAAA,QACnB,KAAK,OAAO,OAAO;AAAA,MACvB;AACE,kBAAW;AAAA,IACb;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,aAAO,WAAW,MAAM,QAAQ,OAAO,OAAO,WAAW,MAAM,QAAQ,OAAO;AAAA,IAChF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { Preferences } from "../../../../../node_modules/.pnpm/@capacitor_preferences@7.0.0_@capacitor_core@7.0.1/node_modules/@capacitor/preferences/dist/esm/index.js";
1
+ import { Preferences } from "../../../../../node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js";
2
2
  import { reactive, isReactive } from "vue";
3
3
  import SessionManager from "../classes/session.manager.js";
4
4
  let asyncLocalStorage = null;
@@ -9,23 +9,6 @@ async function getAsyncLocalStorage() {
9
9
  }
10
10
  return asyncLocalStorage;
11
11
  }
12
- function invertColors(variableNames, originalColors, isDarkMode) {
13
- variableNames.forEach((variableName) => {
14
- const baseColor = originalColors[variableName];
15
- const colorArray = baseColor.split(",").map(Number);
16
- let invertedColor;
17
- if (variableName === "--white") {
18
- invertedColor = colorArray.map((value) => 255 - value / 1.075);
19
- } else if (variableName === "--black") {
20
- invertedColor = colorArray.map((value) => 255 - value);
21
- } else if (variableName === "--grey") {
22
- invertedColor = colorArray.map((value) => 255 - value * 2);
23
- } else {
24
- invertedColor = colorArray.map((value) => 255 - value / 1.075);
25
- }
26
- document.documentElement.style.setProperty(variableName, isDarkMode ? invertedColor.join(", ") : baseColor);
27
- });
28
- }
29
12
  function setError(error) {
30
13
  const state = useStore().core.state;
31
14
  state.error.show = true;
@@ -103,7 +86,8 @@ function createStore() {
103
86
  position: null,
104
87
  search: null,
105
88
  theme: {
106
- darkmode: false
89
+ mode: "system"
90
+ // 'light' | 'dark' | 'system'
107
91
  },
108
92
  navigation_bar: {
109
93
  name: null,
@@ -135,40 +119,38 @@ function createStore() {
135
119
  setLoading(status) {
136
120
  state.loading = status;
137
121
  },
138
- // Black/White Theme
139
- async setTheme(isDarkMode) {
140
- if (!state.theme.rootElement) {
141
- state.theme.rootElement = document.documentElement;
142
- }
143
- const root = state.theme.rootElement;
144
- state.theme.darkmode = isDarkMode;
145
- await Preferences.set({
146
- key: "darkmode",
147
- value: JSON.stringify(state.theme.darkmode)
148
- });
149
- if (isDarkMode) {
150
- root.classList.add("dark-theme");
122
+ // Theme: 'light' | 'dark' | 'system'
123
+ async setTheme(mode) {
124
+ state.theme.mode = mode;
125
+ if (mode === "light" || mode === "dark") {
126
+ if (typeof document !== "undefined") {
127
+ document.cookie = `theme=${mode}; path=/; max-age=31536000; SameSite=Lax`;
128
+ }
129
+ await Preferences.set({ key: "theme", value: mode });
151
130
  } else {
152
- root.classList.remove("dark-theme");
153
- }
154
- const variableNames = ["--white", "--light", "--grey", "--dark", "--black"];
155
- if (!state.theme.originalColors) {
156
- state.theme.originalColors = {};
157
- const computedStyle = getComputedStyle(root);
158
- variableNames.forEach((variableName) => {
159
- state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();
160
- });
131
+ if (typeof document !== "undefined") {
132
+ document.cookie = `theme=; path=/; max-age=0`;
133
+ }
134
+ await Preferences.remove({ key: "theme" });
161
135
  }
162
- if (isDarkMode) {
163
- invertColors(variableNames, state.theme.originalColors, isDarkMode);
136
+ const root = document.documentElement;
137
+ root.classList.remove("dark-theme", "light-theme");
138
+ root.removeAttribute("data-theme");
139
+ if (mode === "dark") {
140
+ root.classList.add("dark-theme");
141
+ root.setAttribute("data-theme", "dark");
142
+ root.setAttribute("color-scheme", "dark");
143
+ } else if (mode === "light") {
144
+ root.classList.add("light-theme");
145
+ root.setAttribute("data-theme", "light");
146
+ root.setAttribute("color-scheme", "light");
164
147
  } else {
165
- variableNames.forEach((variableName) => {
166
- root.style.setProperty(variableName, state.theme.originalColors[variableName]);
167
- });
148
+ root.setAttribute("color-scheme", "light dark");
168
149
  }
169
150
  },
170
151
  toggleTheme() {
171
- this.setTheme(!state.theme.darkmode);
152
+ const isDark = state.theme.mode === "dark" || state.theme.mode === "system" && typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches;
153
+ this.setTheme(isDark ? "light" : "dark");
172
154
  },
173
155
  add(array, item) {
174
156
  const existingItemIndex = array.findIndex((i) => i._id === item._id);
@@ -1 +1 @@
1
- {"version":3,"file":"core.store.js","sources":["../../../../../../../src/modules/core/views/store/core.store.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { isReactive, reactive } from 'vue';\n\nimport SessionManager from '../classes/session.manager.js';\n\n// AsyncLocalStorage для изоляции SSR store per-request (только Node.js)\nlet asyncLocalStorage = null;\n\nasync function getAsyncLocalStorage() {\n if (!asyncLocalStorage && typeof window === 'undefined') {\n const { AsyncLocalStorage } = await import('async_hooks');\n asyncLocalStorage = new AsyncLocalStorage();\n }\n return asyncLocalStorage;\n}\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\nfunction invertColors(variableNames, originalColors, isDarkMode) {\n variableNames.forEach(variableName => {\n const baseColor = originalColors[variableName];\n const colorArray = baseColor.split(',').map(Number);\n\n let invertedColor;\n\n if (variableName === '--white') {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n } else if (variableName === '--black') {\n invertedColor = colorArray.map(value => 255 - value);\n } else if (variableName === '--grey') {\n invertedColor = colorArray.map(value => 255 - value * 2);\n } else {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n }\n // Устанавливаем новые значения переменных CSS\n document.documentElement.style.setProperty(variableName, isDarkMode ? invertedColor.join(', ') : baseColor);\n });\n}\n\n// ============================================================================\n// GLOBAL FUNCTIONS (используют useStore() для доступа к state)\n// ============================================================================\n\n// Mutations\nexport function setError(error) {\n const state = useStore().core.state;\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n\n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if ((errorData?.error === 'VALIDATION_ERROR' || errorData?.errors) && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || errorData.message || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n } else {\n setTimeout(() => (state.error.show = false), 5000);\n }\n}\n\nexport function setSnack(data) {\n const state = useStore().core.state;\n\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n } else {\n setTimeout(() => {state.snack.show = false }, duration)\n }\n}\n\n// ============================================================================\n// GLOBAL STORE FACTORY\n// ============================================================================\n\n// Фабрика для создания store\nexport function createStore() {\n // State создается для каждого store instance (изоляция SSR)\n const state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n darkmode: false,\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n },\n\n // Session state - данные сессии хранятся здесь\n session: {\n token: null,\n userId: null,\n roles: null,\n accesses: []\n },\n });\n\n // Actions с closure на локальный state\n const actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Black/White Theme\n async setTheme(isDarkMode) {\n // Cache root element\n if (!state.theme.rootElement) {\n state.theme.rootElement = document.documentElement;\n }\n const root = state.theme.rootElement;\n\n state.theme.darkmode = isDarkMode;\n\n await Preferences.set({\n key: 'darkmode',\n value: JSON.stringify(state.theme.darkmode),\n });\n\n if (isDarkMode) {\n root.classList.add('dark-theme');\n } else {\n root.classList.remove('dark-theme');\n }\n\n const variableNames = ['--white', '--light', '--grey', '--dark', '--black'];\n\n // Проверяем, сохранены ли оригинальные цвета\n if (!state.theme.originalColors) {\n // Сохраняем оригинальные цвета один раз\n state.theme.originalColors = {};\n const computedStyle = getComputedStyle(root);\n variableNames.forEach(variableName => {\n state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();\n });\n }\n\n if (isDarkMode) {\n invertColors(variableNames, state.theme.originalColors, isDarkMode);\n } else {\n // Восстанавливаем оригинальные цвета батчем\n variableNames.forEach(variableName => {\n root.style.setProperty(variableName, state.theme.originalColors[variableName]);\n });\n }\n },\n\n toggleTheme() {\n this.setTheme(!state.theme.darkmode);\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n };\n\n // SessionManager создается внутри createStore для правильной изоляции в SSR\n const sessionManager = new SessionManager(state.session);\n\n const store = reactive({\n modules: [],\n\n // Core module registered by default\n core: { state, actions, session: sessionManager },\n\n addStore(name, storage) {\n this[name] = storage;\n this.modules.push(name);\n },\n\n async getInitialState() {\n const initialState = {};\n for (const [moduleName, moduleStore] of Object.entries(this)) {\n if (moduleName !== 'modules' && moduleName !== 'addStore' && moduleName !== 'getInitialState' && moduleName !== 'setInitialState') {\n if (moduleStore.state) {\n initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));\n }\n }\n }\n return initialState;\n },\n\n async setInitialState(initialState, isHydration = false) {\n const modules = Object.entries(initialState);\n\n for (const [moduleName, moduleState] of modules) {\n if (this[moduleName] && this[moduleName].state) {\n // При гидратации просто заменяем state целиком для скорости\n if (isHydration) {\n Object.assign(this[moduleName].state, moduleState);\n } else {\n mergeReactive(this[moduleName].state, moduleState);\n }\n }\n }\n }\n });\n\n function mergeReactive(target, source) {\n // Оптимизированная версия слияния\n const keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const sourceValue = source[key];\n\n if (sourceValue !== null && typeof sourceValue === 'object' && !Array.isArray(sourceValue)) {\n if (isReactive(target[key])) {\n mergeReactive(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n } else {\n target[key] = sourceValue;\n }\n }\n }\n\n return store;\n}\n\n// ============================================================================\n// SSR AND SINGLETON\n// ============================================================================\n\n// Синглтон для клиента\nlet clientStore = null;\n\n// AsyncLocalStorage для SSR (изоляция per-request)\nexport async function setSSRStore(store) {\n if (typeof window === 'undefined') {\n const als = await getAsyncLocalStorage();\n als?.enterWith(store);\n }\n}\n\nexport async function clearSSRStore() {\n if (typeof window === 'undefined') {\n const als = await getAsyncLocalStorage();\n als?.enterWith(null);\n }\n}\n\nexport function useStore() {\n if (typeof window === 'undefined') {\n // SSR: используем store из AsyncLocalStorage (может быть null если не инициализирован)\n const store = asyncLocalStorage?.getStore();\n if (store) {\n return store;\n }\n // Fallback для обратной совместимости\n console.warn('[WARN] SSR store not in AsyncLocalStorage, creating new store instance');\n return createStore();\n }\n // Client: синглтон\n if (!clientStore) {\n clientStore = createStore();\n }\n return clientStore;\n}\n\n// ============================================================================\n// SESSION ACCESSOR\n// ============================================================================\n\n/**\n * Получить текущий экземпляр SessionManager\n * Использовать вместо прямого импорта session для правильной работы с SSR\n */\nexport function useSession() {\n const store = useStore();\n return store.core.session;\n}\n\n// ============================================================================\n// EXPORTS\n// ============================================================================\n\n// Не экспортируем singleton state/actions - теперь используется useStore()\nexport default useStore();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.store.js","sources":["../../../../../../../src/modules/core/views/store/core.store.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { isReactive, reactive } from 'vue';\n\nimport SessionManager from '../classes/session.manager.js';\n\n// AsyncLocalStorage для изоляции SSR store per-request (только Node.js)\nlet asyncLocalStorage = null;\n\nasync function getAsyncLocalStorage() {\n if (!asyncLocalStorage && typeof window === 'undefined') {\n const { AsyncLocalStorage } = await import('async_hooks');\n asyncLocalStorage = new AsyncLocalStorage();\n }\n return asyncLocalStorage;\n}\n\n// ============================================================================\n// GLOBAL FUNCTIONS (используют useStore() для доступа к state)\n// ============================================================================\n\n// Mutations\nexport function setError(error) {\n const state = useStore().core.state;\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n\n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if ((errorData?.error === 'VALIDATION_ERROR' || errorData?.errors) && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || errorData.message || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n } else {\n setTimeout(() => (state.error.show = false), 5000);\n }\n}\n\nexport function setSnack(data) {\n const state = useStore().core.state;\n\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n } else {\n setTimeout(() => {state.snack.show = false }, duration)\n }\n}\n\n// ============================================================================\n// GLOBAL STORE FACTORY\n// ============================================================================\n\n// Фабрика для создания store\nexport function createStore() {\n // State создается для каждого store instance (изоляция SSR)\n const state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n mode: 'system', // 'light' | 'dark' | 'system'\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n },\n\n // Session state - данные сессии хранятся здесь\n session: {\n token: null,\n userId: null,\n roles: null,\n accesses: []\n },\n });\n\n // Actions с closure на локальный state\n const actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Theme: 'light' | 'dark' | 'system'\n async setTheme(mode) {\n state.theme.mode = mode;\n\n // Cookie/Preferences ТОЛЬКО для явного выбора light/dark\n // system — не сохраняем, пусть работает CSS media query\n if (mode === 'light' || mode === 'dark') {\n if (typeof document !== 'undefined') {\n document.cookie = `theme=${mode}; path=/; max-age=31536000; SameSite=Lax`;\n }\n await Preferences.set({ key: 'theme', value: mode });\n } else {\n // system — удаляем cookie чтобы SSR не фиксировал тему\n if (typeof document !== 'undefined') {\n document.cookie = `theme=; path=/; max-age=0`;\n }\n await Preferences.remove({ key: 'theme' });\n }\n\n const root = document.documentElement;\n\n // Убираем старые атрибуты\n root.classList.remove('dark-theme', 'light-theme');\n root.removeAttribute('data-theme');\n\n if (mode === 'dark') {\n root.classList.add('dark-theme');\n root.setAttribute('data-theme', 'dark');\n root.setAttribute('color-scheme', 'dark');\n } else if (mode === 'light') {\n root.classList.add('light-theme');\n root.setAttribute('data-theme', 'light');\n root.setAttribute('color-scheme', 'light');\n } else {\n // system - без классов, CSS media query сработает\n root.setAttribute('color-scheme', 'light dark');\n }\n\n },\n\n toggleTheme() {\n // Прямое переключение между light и dark\n const isDark = state.theme.mode === 'dark' ||\n (state.theme.mode === 'system' && typeof window !== 'undefined' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches);\n this.setTheme(isDark ? 'light' : 'dark');\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n };\n\n // SessionManager создается внутри createStore для правильной изоляции в SSR\n const sessionManager = new SessionManager(state.session);\n\n const store = reactive({\n modules: [],\n\n // Core module registered by default\n core: { state, actions, session: sessionManager },\n\n addStore(name, storage) {\n this[name] = storage;\n this.modules.push(name);\n },\n\n async getInitialState() {\n const initialState = {};\n for (const [moduleName, moduleStore] of Object.entries(this)) {\n if (moduleName !== 'modules' && moduleName !== 'addStore' && moduleName !== 'getInitialState' && moduleName !== 'setInitialState') {\n if (moduleStore.state) {\n initialState[moduleName] = JSON.parse(JSON.stringify(moduleStore.state));\n }\n }\n }\n return initialState;\n },\n\n async setInitialState(initialState, isHydration = false) {\n const modules = Object.entries(initialState);\n\n for (const [moduleName, moduleState] of modules) {\n if (this[moduleName] && this[moduleName].state) {\n // При гидратации просто заменяем state целиком для скорости\n if (isHydration) {\n Object.assign(this[moduleName].state, moduleState);\n } else {\n mergeReactive(this[moduleName].state, moduleState);\n }\n }\n }\n }\n });\n\n function mergeReactive(target, source) {\n // Оптимизированная версия слияния\n const keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const sourceValue = source[key];\n\n if (sourceValue !== null && typeof sourceValue === 'object' && !Array.isArray(sourceValue)) {\n if (isReactive(target[key])) {\n mergeReactive(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n } else {\n target[key] = sourceValue;\n }\n }\n }\n\n return store;\n}\n\n// ============================================================================\n// SSR AND SINGLETON\n// ============================================================================\n\n// Синглтон для клиента\nlet clientStore = null;\n\n// AsyncLocalStorage для SSR (изоляция per-request)\nexport async function setSSRStore(store) {\n if (typeof window === 'undefined') {\n const als = await getAsyncLocalStorage();\n als?.enterWith(store);\n }\n}\n\nexport async function clearSSRStore() {\n if (typeof window === 'undefined') {\n const als = await getAsyncLocalStorage();\n als?.enterWith(null);\n }\n}\n\nexport function useStore() {\n if (typeof window === 'undefined') {\n // SSR: используем store из AsyncLocalStorage (может быть null если не инициализирован)\n const store = asyncLocalStorage?.getStore();\n if (store) {\n return store;\n }\n // Fallback для обратной совместимости\n console.warn('[WARN] SSR store not in AsyncLocalStorage, creating new store instance');\n return createStore();\n }\n // Client: синглтон\n if (!clientStore) {\n clientStore = createStore();\n }\n return clientStore;\n}\n\n// ============================================================================\n// SESSION ACCESSOR\n// ============================================================================\n\n/**\n * Получить текущий экземпляр SessionManager\n * Использовать вместо прямого импорта session для правильной работы с SSR\n */\nexport function useSession() {\n const store = useStore();\n return store.core.session;\n}\n\n// ============================================================================\n// EXPORTS\n// ============================================================================\n\n// Не экспортируем singleton state/actions - теперь используется useStore()\nexport default useStore();\n"],"names":[],"mappings":";;;AAOA,IAAI,oBAAoB;AAExB,eAAe,uBAAuB;AACpC,MAAI,CAAC,qBAAqB,OAAO,WAAW,aAAa;AACvD,UAAM,EAAE,kBAAiB,IAAK,MAAM,OAAO,aAAa;AACxD,wBAAoB,IAAI,kBAAiB;AAAA,EAC3C;AACA,SAAO;AACT;AAOO,SAAS,SAAS,OAAO;AAC9B,QAAM,QAAQ,WAAW,KAAK;AAC9B,QAAM,MAAM,OAAO;AACnB,MAAI;AAEJ,cAAY;AAGZ,MAAI,OAAO,KAAM,aAAY,MAAM;AAGnC,MAAI,OAAO,UAAU,KAAM,aAAY,MAAM,SAAS;AAGtD,OAAK,WAAW,UAAU,sBAAsB,WAAW,WAAW,WAAW,QAAQ;AAEvF,UAAM,gBAAgB,CAAA;AACtB,eAAW,SAAS,UAAU,QAAQ;AACpC,YAAM,cAAc,UAAU,OAAO,KAAK;AAC1C,UAAI,MAAM,QAAQ,WAAW,GAAG;AAC9B,sBAAc,KAAK,GAAG,WAAW;AAAA,MACnC,WAAW,OAAO,gBAAgB,UAAU;AAC1C,sBAAc,KAAK,WAAW;AAAA,MAChC;AAAA,IACF;AACA,UAAM,MAAM,UAAU,cAAc,KAAK,IAAI,KAAK,UAAU,WAAW;AAAA,EACzE,WAAW,SAAS,UAAU,WAAW;AAEvC,UAAM,MAAM,UAAU,UAAU;AAAA,EAClC,OAAO;AACL,UAAM,MAAM,UAAU,UAAU,WAAW,MAAM,WAAW;AAAA,EAC9D;AAEA,QAAM,MAAM,OAAO;AAEnB,MAAI,OAAO,WAAW,eAAe,OAAO,uBAAuB;AACjE,0BAAsB,MAAM;AAC1B,iBAAW,MAAO,MAAM,MAAM,OAAO,OAAQ,GAAI;AAAA,IACnD,CAAC;AAAA,EACH,OAAO;AACL,eAAW,MAAO,MAAM,MAAM,OAAO,OAAQ,GAAI;AAAA,EACnD;AACF;AAEO,SAAS,SAAS,MAAM;AAC7B,QAAM,QAAQ,WAAW,KAAK;AAG9B,MAAI,OAAO;AACX,MAAI,UAAU;AACd,MAAI,WAAW;AAEf,MAAI,OAAO,SAAS,UAAU;AAC5B,cAAU;AAAA,EACZ,WAAW,gBAAgB,OAAO;AAChC,WAAO;AACP,cAAU,KAAK;AAAA,EACjB,WAAW,MAAM,UAAU,MAAM;AAE/B,WAAO;AACP,UAAM,YAAY,KAAK,SAAS;AAChC,cAAU,UAAU,aAAa,UAAU,WAAW;AAAA,EACxD,WAAW,OAAO,SAAS,UAAU;AACnC,WAAO,KAAK,QAAQ;AACpB,cAAU,KAAK,WAAW;AAC1B,eAAW,KAAK,YAAY;AAAA,EAC9B;AAGA,QAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAGE,MAAI,OAAO,WAAW,eAAe,OAAO,uBAAuB;AACjE,0BAAsB,MAAM;AAC1B,iBAAW,MAAM;AAAC,cAAM,MAAM,OAAO;AAAA,MAAM,GAAG,QAAQ;AAAA,IACxD,CAAC;AAAA,EACH,OAAO;AACL,eAAW,MAAM;AAAC,YAAM,MAAM,OAAO;AAAA,IAAM,GAAG,QAAQ;AAAA,EACxD;AACF;AAOO,SAAS,cAAc;AAE5B,QAAM,QAAQ,SAAS;AAAA,IACrB,SAAS;AAAA,IAET,qBAAqB;AAAA,IACrB,eAAe;AAAA,IAEf,UAAU;AAAA,IACV,QAAQ;AAAA,IAER,OAAO;AAAA,MACL,MAAM;AAAA;AAAA,IACZ;AAAA,IAEI,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IAEI,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACf;AAAA,IACI,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IAChB;AAAA;AAAA,IAGI,SAAS;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU,CAAA;AAAA,IAChB;AAAA,EACA,CAAG;AAGD,QAAM,UAAU;AAAA,IACd,WAAW,QAAQ;AACjB,YAAM,UAAU;AAAA,IAClB;AAAA;AAAA,IAGA,MAAM,SAAS,MAAM;AACnB,YAAM,MAAM,OAAO;AAInB,UAAI,SAAS,WAAW,SAAS,QAAQ;AACvC,YAAI,OAAO,aAAa,aAAa;AACnC,mBAAS,SAAS,SAAS,IAAI;AAAA,QACjC;AACA,cAAM,YAAY,IAAI,EAAE,KAAK,SAAS,OAAO,MAAM;AAAA,MACrD,OAAO;AAEL,YAAI,OAAO,aAAa,aAAa;AACnC,mBAAS,SAAS;AAAA,QACpB;AACA,cAAM,YAAY,OAAO,EAAE,KAAK,QAAO,CAAE;AAAA,MAC3C;AAEA,YAAM,OAAO,SAAS;AAGtB,WAAK,UAAU,OAAO,cAAc,aAAa;AACjD,WAAK,gBAAgB,YAAY;AAEjC,UAAI,SAAS,QAAQ;AACnB,aAAK,UAAU,IAAI,YAAY;AAC/B,aAAK,aAAa,cAAc,MAAM;AACtC,aAAK,aAAa,gBAAgB,MAAM;AAAA,MAC1C,WAAW,SAAS,SAAS;AAC3B,aAAK,UAAU,IAAI,aAAa;AAChC,aAAK,aAAa,cAAc,OAAO;AACvC,aAAK,aAAa,gBAAgB,OAAO;AAAA,MAC3C,OAAO;AAEL,aAAK,aAAa,gBAAgB,YAAY;AAAA,MAChD;AAAA,IAEF;AAAA,IAEA,cAAc;AAEZ,YAAM,SAAS,MAAM,MAAM,SAAS,UACjC,MAAM,MAAM,SAAS,YAAY,OAAO,WAAW,eACnD,OAAO,WAAW,8BAA8B,EAAE;AACrD,WAAK,SAAS,SAAS,UAAU,MAAM;AAAA,IACzC;AAAA,IAEA,IAAI,OAAO,MAAM;AACf,YAAM,oBAAoB,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,GAAG;AAEjE,UAAI,sBAAsB,IAAI;AAC5B,cAAM,KAAK,IAAI;AAAA,MACjB,OAAO;AACL,cAAM,iBAAiB,IAAI;AAAA,MAC7B;AAAA,IACF;AAAA,IAEA,OAAO,OAAO,MAAM;AAClB,YAAM,oBAAoB,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,GAAG;AACjE,UAAI,sBAAsB,IAAI;AAE5B,cAAM,KAAK,IAAI;AAAA,MACjB,OAAO;AAEL,eAAO,OAAO,MAAM,iBAAiB,GAAG,IAAI;AAAA,MAC9C;AAAA,IACF;AAAA,IAEA,OAAO,OAAO,MAAM;AAClB,YAAM,oBAAoB,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,GAAG;AAEjE,UAAI,sBAAsB,IAAI;AAC5B,cAAM,OAAO,mBAAmB,CAAC;AAAA,MACnC;AAAA,IACF;AAAA,IAEA,UAAU,OAAO,MAAM;AACrB,cAAQ,IAAI,KAAK;AACjB,cAAQ,IAAI,IAAI;AAChB,YAAM,YAAY,MAAM,KAAK,OAAK,EAAE,QAAQ,KAAK,GAAG;AAEpD,UAAI,WAAW;AACb,kBAAU;AAAA,MACZ;AAAA,IACF;AAAA,IAEA,UAAU,OAAO,MAAM;AACrB,YAAM,YAAY,MAAM,KAAK,OAAK,EAAE,QAAQ,KAAK,GAAG;AAEpD,YAAM,iBAAiB,MAAM,QAAQ,SAAS;AAE9C,UAAI,iBAAiB,IAAI;AACvB,kBAAU;AAEV,YAAI,UAAU,WAAW,EAAG,OAAM,OAAO,gBAAgB,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,IAEA,MAAM,OAAO;AAAA,IAEb;AAAA,EACJ;AAGE,QAAM,iBAAiB,IAAI,eAAe,MAAM,OAAO;AAEvD,QAAM,QAAQ,SAAS;AAAA,IACrB,SAAS,CAAA;AAAA;AAAA,IAGT,MAAM,EAAE,OAAO,SAAS,SAAS,eAAc;AAAA,IAE/C,SAAS,MAAM,SAAS;AACtB,WAAK,IAAI,IAAI;AACb,WAAK,QAAQ,KAAK,IAAI;AAAA,IACxB;AAAA,IAEA,MAAM,kBAAkB;AACtB,YAAM,eAAe,CAAA;AACrB,iBAAW,CAAC,YAAY,WAAW,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC5D,YAAI,eAAe,aAAa,eAAe,cAAc,eAAe,qBAAqB,eAAe,mBAAmB;AACjI,cAAI,YAAY,OAAO;AACrB,yBAAa,UAAU,IAAI,KAAK,MAAM,KAAK,UAAU,YAAY,KAAK,CAAC;AAAA,UACzE;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,gBAAgB,cAAc,cAAc,OAAO;AACvD,YAAM,UAAU,OAAO,QAAQ,YAAY;AAE3C,iBAAW,CAAC,YAAY,WAAW,KAAK,SAAS;AAC/C,YAAI,KAAK,UAAU,KAAK,KAAK,UAAU,EAAE,OAAO;AAE9C,cAAI,aAAa;AACf,mBAAO,OAAO,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD,OAAO;AACL,0BAAc,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,UACnD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACJ,CAAG;AAED,WAAS,cAAc,QAAQ,QAAQ;AAErC,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,cAAc,OAAO,GAAG;AAE9B,UAAI,gBAAgB,QAAQ,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAAG;AAC1F,YAAI,WAAW,OAAO,GAAG,CAAC,GAAG;AAC3B,wBAAc,OAAO,GAAG,GAAG,WAAW;AAAA,QACxC,OAAO;AACL,iBAAO,GAAG,IAAI;AAAA,QAChB;AAAA,MACF,OAAO;AACL,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAOA,IAAI,cAAc;AAGX,eAAe,YAAY,OAAO;AACvC,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,MAAM,MAAM,qBAAoB;AACtC,SAAK,UAAU,KAAK;AAAA,EACtB;AACF;AAEO,eAAe,gBAAgB;AACpC,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,MAAM,MAAM,qBAAoB;AACtC,SAAK,UAAU,IAAI;AAAA,EACrB;AACF;AAEO,SAAS,WAAW;AACzB,MAAI,OAAO,WAAW,aAAa;AAEjC,UAAM,QAAQ,mBAAmB,SAAQ;AACzC,QAAI,OAAO;AACT,aAAO;AAAA,IACT;AAEA,YAAQ,KAAK,wEAAwE;AACrF,WAAO,YAAW;AAAA,EACpB;AAEA,MAAI,CAAC,aAAa;AAChB,kBAAc,YAAW;AAAA,EAC3B;AACA,SAAO;AACT;AAUO,SAAS,aAAa;AAC3B,QAAM,QAAQ,SAAQ;AACtB,SAAO,MAAM,KAAK;AACpB;AAOA,MAAA,aAAe,SAAQ;"}
@@ -1,6 +1,6 @@
1
1
  import { setAuthToken } from "./axios-instance.js";
2
2
  import { renderSSRHead } from "../../../../../../node_modules/.pnpm/@unhead_ssr@1.11.20/node_modules/@unhead/ssr/dist/index.js";
3
- import { renderToString } from "../../../../../../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";
3
+ import { renderToString } from "../../../../../node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js";
4
4
  function renderAndMountApp({ createApp, hooks = {} }) {
5
5
  const start = async () => {
6
6
  performance.mark("loading-22-start");
@@ -95,7 +95,7 @@ function renderAndMountApp({ createApp, hooks = {} }) {
95
95
  };
96
96
  return start();
97
97
  }
98
- async function render({ url, cookies, ssrContext, createApp }) {
98
+ async function render({ url, cookies, headers, ssrContext, createApp }) {
99
99
  performance.mark("loading-26-start");
100
100
  console.log("[LOADING 26] SSR render starting...");
101
101
  const { app, router, store, meta } = createApp();
@@ -143,6 +143,25 @@ async function render({ url, cookies, ssrContext, createApp }) {
143
143
  performance.mark("loading-28-start");
144
144
  console.log("[LOADING 28] SSR renderToString starting...");
145
145
  const html = await renderToString(app, ctx);
146
+ let theme = cookies?.theme;
147
+ if (!theme) {
148
+ const prefersColorScheme = headers?.["sec-ch-prefers-color-scheme"];
149
+ theme = prefersColorScheme === "dark" ? "system-dark" : "system";
150
+ }
151
+ const themeAttrs = {};
152
+ if (theme === "dark") {
153
+ themeAttrs.class = "dark-theme";
154
+ themeAttrs["data-theme"] = "dark";
155
+ themeAttrs["color-scheme"] = "dark";
156
+ } else if (theme === "light") {
157
+ themeAttrs.class = "light-theme";
158
+ themeAttrs["data-theme"] = "light";
159
+ themeAttrs["color-scheme"] = "light";
160
+ } else {
161
+ themeAttrs["color-scheme"] = "light dark";
162
+ }
163
+ meta.push({ htmlAttrs: themeAttrs });
164
+ store.core.state.theme.mode = theme === "dark" ? "dark" : theme === "light" ? "light" : "system";
146
165
  const payload = await renderSSRHead(meta, {});
147
166
  const initialState = await store.getInitialState();
148
167
  performance.mark("loading-28-end");
@@ -1 +1 @@
1
- {"version":3,"file":"vue-app-renderer.js","sources":["../../../../../../../src/modules/core/views/utils/vue-app-renderer.js"],"sourcesContent":["import { setAuthToken } from '@martyrs/src/modules/core/views/utils/axios-instance.js';\nimport { renderSSRHead } from '@unhead/ssr';\nimport { renderToString } from '@vue/server-renderer';\n\nexport function renderAndMountApp({ createApp, hooks = {} }) {\n const start = async () => {\n // [LOADING 22] Starting client-side hydration\n performance.mark('loading-22-start');\n console.log('[LOADING 22] Starting client-side hydration...');\n\n const { app, router, store, moduleManager, config } = await createApp();\n \n let serverModules = [];\n \n // Загружаем модули которые были загружены на сервере\n if (typeof window !== 'undefined') {\n try {\n const modulesElement = document.querySelector('[data-loaded-modules]');\n if (modulesElement) {\n serverModules = JSON.parse(modulesElement.innerHTML);\n }\n } catch (e) {\n console.error('Failed to parse loaded modules', e);\n }\n \n const context = { app, store, router, config };\n\n // [LOADING 23] Loading server modules for hydration\n performance.mark('loading-23-start');\n console.log(`[LOADING 23] Loading ${serverModules.length} server modules for hydration...`);\n\n for (const moduleName of serverModules) {\n try {\n await moduleManager.load(moduleName, context);\n await moduleManager.initialize(moduleName, context);\n } catch (error) {\n console.error(`Failed to load module ${moduleName}:`, error);\n }\n }\n\n performance.mark('loading-23-end');\n performance.measure('loading-23', 'loading-23-start', 'loading-23-end');\n const measure23 = performance.getEntriesByName('loading-23')[0];\n console.log(`[LOADING 23] Server modules loaded in ${measure23?.duration?.toFixed(2)}ms`);\n }\n \n // Call beforeHydration hook if provided\n if (hooks.beforeHydration) {\n hooks.beforeHydration({ app, router, store, moduleManager });\n }\n\n // [LOADING 24] Parsing and applying initialState\n performance.mark('loading-24-start');\n console.log('[LOADING 24] Parsing and applying initialState...');\n\n let initialState;\n\n try {\n const initialStateElement = document.querySelector('[data-state]');\n\n if (initialStateElement && initialStateElement.innerHTML.trim() !== '') {\n const stateContent = initialStateElement.innerHTML.trim();\n \n // Validate JSON format before parsing\n if (stateContent.startsWith('{') && stateContent.endsWith('}')) {\n initialState = JSON.parse(stateContent);\n \n // Basic validation of state structure\n if (typeof initialState !== 'object' || initialState === null) {\n throw new Error('Invalid state format');\n }\n } else {\n throw new Error('Invalid JSON format');\n }\n }\n } catch (error) {\n console.error('Failed to parse user state', error);\n initialState = null;\n }\n\n\n\n\n if (initialState) {\n console.log('[AUTH COOKIE DEBUG] Browser initialState.auth:', initialState.auth);\n console.log('[AUTH COOKIE DEBUG] Has token?', !!initialState?.auth?.access?.token);\n console.log('[AUTH COOKIE DEBUG] Has auth but no status?', !!initialState?.auth && !initialState.auth.access?.status);\n\n // Применяем начальное состояние ко всем модулям (true = гидратация)\n store.setInitialState(initialState, true);\n\n if (initialState?.auth?.access?.token) {\n console.log('[AUTH COOKIE DEBUG] Setting auth token from initialState');\n\n setAuthToken(initialState.auth.access.token);\n } else if (initialState?.auth && !initialState.auth.access?.status) {\n // Если SSR сбросил auth (из-за ошибки), удаляем куку в браузере\n console.log('[AUTH COOKIE DEBUG] SSR reset auth, removing cookie in browser');\n if (store.auth && store.auth.removeCookie) {\n await store.auth.removeCookie('user');\n }\n }\n } else {\n // Если нет initialState, сбрасываем авторизацию (если модуль auth загружен)\n if (store.auth && store.auth.actions) {\n store.auth.actions.resetState();\n // await store.auth.removeCookie('user');\n await store.auth.actions.logout();\n }\n }\n\n const savedPosition = localStorage.getItem('position');\n\n if (savedPosition) {\n store.core.state.position = JSON.parse(savedPosition);\n }\n\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n // If user browser locae supported then change locale\n // if (i18n.global.availableLocales.includes(browserLocale)) {\n // app.config.globalProperties.$i18n.locale = browserLocale;\n // }\n\n performance.mark('loading-24-end');\n performance.measure('loading-24', 'loading-24-start', 'loading-24-end');\n const measure24 = performance.getEntriesByName('loading-24')[0];\n console.log(`[LOADING 24] InitialState parsed and applied in ${measure24?.duration?.toFixed(2)}ms`);\n\n await router.isReady();\n\n // [LOADING 25] Mounting the application\n performance.mark('loading-25-start');\n console.log('[LOADING 25] Mounting the application...');\n\n app.mount('#app');\n\n performance.mark('loading-25-end');\n performance.measure('loading-25', 'loading-25-start', 'loading-25-end');\n const measure25 = performance.getEntriesByName('loading-25')[0];\n console.log(`[LOADING 25] Application mounted in ${measure25?.duration?.toFixed(2)}ms`);\n\n // Return the objects for further use\n return { app, router, store, moduleManager };\n };\n return start();\n}\n\nexport async function render({ url, cookies, ssrContext, createApp}) {\n // [LOADING 26] SSR render starting\n performance.mark('loading-26-start');\n console.log('[LOADING 26] SSR render starting...');\n\n const { app, router, store, meta } = createApp();\n\n await router.push(url);\n await router.isReady();\n\n // If user's language is supported, change the locale\n // if (language === 'en' || language === 'ru') {\n // app.config.globalProperties.$i18n.locale = language\n // }\n\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n\n const ctx = ssrContext || {};\n\n if (router.currentRoute.value.name?.toLowerCase() === 'notfound') {\n ctx.notFound = true;\n }\n\n let user = null;\n\n if (cookies.user) {\n try {\n user = JSON.parse(cookies.user);\n } catch (error) {\n console.error('Failed to parse user cookie', error);\n user = null;\n }\n }\n\n \n\n\n if (user) {\n // [LOADING 27] SSR auth initialization\n performance.mark('loading-27-start');\n console.log('[LOADING 27] SSR auth initialization...');\n\n if (store.auth && store.auth.actions) {\n try {\n await store.auth.actions.initialize(user);\n } catch (error) {\n console.error('[SSR] Auth initialization failed, continuing without auth:', error);\n // Сбрасываем состояние если инициализация упала\n if (store.auth.actions.resetState) {\n store.auth.actions.resetState();\n }\n }\n } else {\n console.warn('[SSR] Auth module not loaded, cannot initialize user');\n }\n\n performance.mark('loading-27-end');\n performance.measure('loading-27', 'loading-27-start', 'loading-27-end');\n const measure27 = performance.getEntriesByName('loading-27')[0];\n console.log(`[LOADING 27] SSR auth initialized in ${measure27?.duration?.toFixed(2)}ms`);\n } else {\n if (store.auth && store.auth.actions) {\n store.auth.actions.resetState();\n } else {\n console.warn('[SSR] Auth module not loaded, cannot reset state');\n }\n }\n\n // [LOADING 28] SSR renderToString\n performance.mark('loading-28-start');\n console.log('[LOADING 28] SSR renderToString starting...');\n\n // After render, ctx.modules will be populated with used module identifiers\n const html = await renderToString(app, ctx);\n const payload = await renderSSRHead(meta, {});\n const initialState = await store.getInitialState();\n\n performance.mark('loading-28-end');\n performance.measure('loading-28', 'loading-28-start', 'loading-28-end');\n const measure28 = performance.getEntriesByName('loading-28')[0];\n console.log(`[LOADING 28] SSR renderToString completed in ${measure28?.duration?.toFixed(2)}ms`);\n\n // Total SSR render time\n performance.measure('loading-26-total', 'loading-26-start', 'loading-28-end');\n const measure26Total = performance.getEntriesByName('loading-26-total')[0];\n console.log(`[LOADING 26] Total SSR render completed in ${measure26Total?.duration?.toFixed(2)}ms`);\n\n return {\n html,\n meta: payload,\n state: initialState,\n statusCode: router.currentRoute?.value?.name?.toLowerCase() === 'notfound' ? 404 : 200,\n usedModules: Array.from(ctx.modules || new Set()), // Return used modules\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue-app-renderer.js","sources":["../../../../../../../src/modules/core/views/utils/vue-app-renderer.js"],"sourcesContent":["import { setAuthToken } from '@martyrs/src/modules/core/views/utils/axios-instance.js';\nimport { renderSSRHead } from '@unhead/ssr';\nimport { renderToString } from '@vue/server-renderer';\n\nexport function renderAndMountApp({ createApp, hooks = {} }) {\n const start = async () => {\n // [LOADING 22] Starting client-side hydration\n performance.mark('loading-22-start');\n console.log('[LOADING 22] Starting client-side hydration...');\n\n const { app, router, store, moduleManager, config } = await createApp();\n \n let serverModules = [];\n \n // Загружаем модули которые были загружены на сервере\n if (typeof window !== 'undefined') {\n try {\n const modulesElement = document.querySelector('[data-loaded-modules]');\n if (modulesElement) {\n serverModules = JSON.parse(modulesElement.innerHTML);\n }\n } catch (e) {\n console.error('Failed to parse loaded modules', e);\n }\n \n const context = { app, store, router, config };\n\n // [LOADING 23] Loading server modules for hydration\n performance.mark('loading-23-start');\n console.log(`[LOADING 23] Loading ${serverModules.length} server modules for hydration...`);\n\n for (const moduleName of serverModules) {\n try {\n await moduleManager.load(moduleName, context);\n await moduleManager.initialize(moduleName, context);\n } catch (error) {\n console.error(`Failed to load module ${moduleName}:`, error);\n }\n }\n\n performance.mark('loading-23-end');\n performance.measure('loading-23', 'loading-23-start', 'loading-23-end');\n const measure23 = performance.getEntriesByName('loading-23')[0];\n console.log(`[LOADING 23] Server modules loaded in ${measure23?.duration?.toFixed(2)}ms`);\n }\n \n // Call beforeHydration hook if provided\n if (hooks.beforeHydration) {\n hooks.beforeHydration({ app, router, store, moduleManager });\n }\n\n // [LOADING 24] Parsing and applying initialState\n performance.mark('loading-24-start');\n console.log('[LOADING 24] Parsing and applying initialState...');\n\n let initialState;\n\n try {\n const initialStateElement = document.querySelector('[data-state]');\n\n if (initialStateElement && initialStateElement.innerHTML.trim() !== '') {\n const stateContent = initialStateElement.innerHTML.trim();\n \n // Validate JSON format before parsing\n if (stateContent.startsWith('{') && stateContent.endsWith('}')) {\n initialState = JSON.parse(stateContent);\n \n // Basic validation of state structure\n if (typeof initialState !== 'object' || initialState === null) {\n throw new Error('Invalid state format');\n }\n } else {\n throw new Error('Invalid JSON format');\n }\n }\n } catch (error) {\n console.error('Failed to parse user state', error);\n initialState = null;\n }\n\n\n\n\n if (initialState) {\n console.log('[AUTH COOKIE DEBUG] Browser initialState.auth:', initialState.auth);\n console.log('[AUTH COOKIE DEBUG] Has token?', !!initialState?.auth?.access?.token);\n console.log('[AUTH COOKIE DEBUG] Has auth but no status?', !!initialState?.auth && !initialState.auth.access?.status);\n\n // Применяем начальное состояние ко всем модулям (true = гидратация)\n store.setInitialState(initialState, true);\n\n if (initialState?.auth?.access?.token) {\n console.log('[AUTH COOKIE DEBUG] Setting auth token from initialState');\n\n setAuthToken(initialState.auth.access.token);\n } else if (initialState?.auth && !initialState.auth.access?.status) {\n // Если SSR сбросил auth (из-за ошибки), удаляем куку в браузере\n console.log('[AUTH COOKIE DEBUG] SSR reset auth, removing cookie in browser');\n if (store.auth && store.auth.removeCookie) {\n await store.auth.removeCookie('user');\n }\n }\n } else {\n // Если нет initialState, сбрасываем авторизацию (если модуль auth загружен)\n if (store.auth && store.auth.actions) {\n store.auth.actions.resetState();\n // await store.auth.removeCookie('user');\n await store.auth.actions.logout();\n }\n }\n\n const savedPosition = localStorage.getItem('position');\n\n if (savedPosition) {\n store.core.state.position = JSON.parse(savedPosition);\n }\n\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n // If user browser locae supported then change locale\n // if (i18n.global.availableLocales.includes(browserLocale)) {\n // app.config.globalProperties.$i18n.locale = browserLocale;\n // }\n\n performance.mark('loading-24-end');\n performance.measure('loading-24', 'loading-24-start', 'loading-24-end');\n const measure24 = performance.getEntriesByName('loading-24')[0];\n console.log(`[LOADING 24] InitialState parsed and applied in ${measure24?.duration?.toFixed(2)}ms`);\n\n await router.isReady();\n\n // [LOADING 25] Mounting the application\n performance.mark('loading-25-start');\n console.log('[LOADING 25] Mounting the application...');\n\n app.mount('#app');\n\n performance.mark('loading-25-end');\n performance.measure('loading-25', 'loading-25-start', 'loading-25-end');\n const measure25 = performance.getEntriesByName('loading-25')[0];\n console.log(`[LOADING 25] Application mounted in ${measure25?.duration?.toFixed(2)}ms`);\n\n // Return the objects for further use\n return { app, router, store, moduleManager };\n };\n return start();\n}\n\nexport async function render({ url, cookies, headers, ssrContext, createApp }) {\n // [LOADING 26] SSR render starting\n performance.mark('loading-26-start');\n console.log('[LOADING 26] SSR render starting...');\n\n const { app, router, store, meta } = createApp();\n\n await router.push(url);\n await router.isReady();\n\n // If user's language is supported, change the locale\n // if (language === 'en' || language === 'ru') {\n // app.config.globalProperties.$i18n.locale = language\n // }\n\n // app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale\n\n const ctx = ssrContext || {};\n\n if (router.currentRoute.value.name?.toLowerCase() === 'notfound') {\n ctx.notFound = true;\n }\n\n let user = null;\n\n if (cookies.user) {\n try {\n user = JSON.parse(cookies.user);\n } catch (error) {\n console.error('Failed to parse user cookie', error);\n user = null;\n }\n }\n\n \n\n\n if (user) {\n // [LOADING 27] SSR auth initialization\n performance.mark('loading-27-start');\n console.log('[LOADING 27] SSR auth initialization...');\n\n if (store.auth && store.auth.actions) {\n try {\n await store.auth.actions.initialize(user);\n } catch (error) {\n console.error('[SSR] Auth initialization failed, continuing without auth:', error);\n // Сбрасываем состояние если инициализация упала\n if (store.auth.actions.resetState) {\n store.auth.actions.resetState();\n }\n }\n } else {\n console.warn('[SSR] Auth module not loaded, cannot initialize user');\n }\n\n performance.mark('loading-27-end');\n performance.measure('loading-27', 'loading-27-start', 'loading-27-end');\n const measure27 = performance.getEntriesByName('loading-27')[0];\n console.log(`[LOADING 27] SSR auth initialized in ${measure27?.duration?.toFixed(2)}ms`);\n } else {\n if (store.auth && store.auth.actions) {\n store.auth.actions.resetState();\n } else {\n console.warn('[SSR] Auth module not loaded, cannot reset state');\n }\n }\n\n // [LOADING 28] SSR renderToString\n performance.mark('loading-28-start');\n console.log('[LOADING 28] SSR renderToString starting...');\n\n // After render, ctx.modules will be populated with used module identifiers\n const html = await renderToString(app, ctx);\n\n // Добавляем атрибуты темы через meta API перед renderSSRHead\n let theme = cookies?.theme;\n if (!theme) {\n // Fallback на sec-ch-prefers-color-scheme если нет cookie\n const prefersColorScheme = headers?.['sec-ch-prefers-color-scheme'];\n theme = prefersColorScheme === 'dark' ? 'system-dark' : 'system';\n }\n\n const themeAttrs = {};\n if (theme === 'dark') {\n themeAttrs.class = 'dark-theme';\n themeAttrs['data-theme'] = 'dark';\n themeAttrs['color-scheme'] = 'dark';\n } else if (theme === 'light') {\n themeAttrs.class = 'light-theme';\n themeAttrs['data-theme'] = 'light';\n themeAttrs['color-scheme'] = 'light';\n } else {\n // system/system-dark - без класса, CSS media query сработает\n themeAttrs['color-scheme'] = 'light dark';\n }\n\n meta.push({ htmlAttrs: themeAttrs });\n\n // Синхронизируем store state с определённой темой для SSR\n store.core.state.theme.mode = (theme === 'dark') ? 'dark'\n : (theme === 'light') ? 'light'\n : 'system';\n\n const payload = await renderSSRHead(meta, {});\n const initialState = await store.getInitialState();\n\n performance.mark('loading-28-end');\n performance.measure('loading-28', 'loading-28-start', 'loading-28-end');\n const measure28 = performance.getEntriesByName('loading-28')[0];\n console.log(`[LOADING 28] SSR renderToString completed in ${measure28?.duration?.toFixed(2)}ms`);\n\n // Total SSR render time\n performance.measure('loading-26-total', 'loading-26-start', 'loading-28-end');\n const measure26Total = performance.getEntriesByName('loading-26-total')[0];\n console.log(`[LOADING 26] Total SSR render completed in ${measure26Total?.duration?.toFixed(2)}ms`);\n\n return {\n html,\n meta: payload,\n state: initialState,\n statusCode: router.currentRoute?.value?.name?.toLowerCase() === 'notfound' ? 404 : 200,\n usedModules: Array.from(ctx.modules || new Set()), // Return used modules\n };\n}\n"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ const _hoisted_2 = { class: "o-hidden flex-child-default pos-relative bg-black-t
7
7
  const _hoisted_3 = ["src"];
8
8
  const _hoisted_4 = ["src"];
9
9
  const _hoisted_5 = { class: "pd-t-small h-100 pd-medium pos-relative w-100" };
10
- const _hoisted_6 = { class: "mn-b-regular t-trim" };
11
- const _hoisted_7 = { class: "mn-b-medium p-regular t-trim-3" };
12
- const _hoisted_8 = { class: "flex-wrap mn-micro-negative flex-child-default gap-thin t-zero justify-start align-center t-trim-2" };
10
+ const _hoisted_6 = { class: "mn-b-regular truncate" };
11
+ const _hoisted_7 = { class: "mn-b-medium p-regular line-clamp-3" };
12
+ const _hoisted_8 = { class: "flex-wrap mn-micro-negative flex-child-default gap-thin t-zero justify-start align-center line-clamp-2" };
13
13
  const _sfc_main = {
14
14
  __name: "CardEvent",
15
15
  props: ["event", "user", "actions"],
@@ -113,12 +113,12 @@ const _sfc_main = {
113
113
  createElementVNode("div", _hoisted_8, [
114
114
  __props.event.date?.start ? (openBlock(), createElementBlock("span", {
115
115
  key: _ctx.index,
116
- class: "d-inline-flex mn-nano pd-thin radius-small p-regular t-medium bg-white"
116
+ class: "d-inline-flex mn-nano pd-thin radius-small p-regular fw-medium bg-white"
117
117
  }, toDisplayString(formattedDate.value) + " | " + toDisplayString(formattedTimeRange.value), 1)) : createCommentVNode("", true),
118
118
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.event.tags, (chip, index) => {
119
119
  return openBlock(), createElementBlock("span", {
120
120
  key: index,
121
- class: "d-inline-flex mn-nano pd-thin radius-small p-regular t-medium bg-main"
121
+ class: "d-inline-flex mn-nano pd-thin radius-small p-regular fw-medium bg-main"
122
122
  }, toDisplayString(chip), 1);
123
123
  }), 128))
124
124
  ])