@ozdao/martyrs 0.2.508 → 0.2.510

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 (317) hide show
  1. package/dist/{main-Dq-UfO4G.js → main-DrpgUZcn.js} +2808 -2615
  2. package/dist/main-XJQJFmgj.cjs +11 -0
  3. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
  4. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
  5. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
  6. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  7. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +1 -1
  8. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
  9. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +1 -1
  10. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +4 -3
  12. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
  13. package/dist/martyrs/src/components/Feed/Carousel.vue.js +5 -4
  14. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  15. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  16. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  17. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  18. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Field/Field.vue.cjs +1 -1
  20. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  21. package/dist/martyrs/src/components/Field/Field.vue.js +1 -1
  22. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  23. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +3 -3
  24. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  25. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +3 -3
  26. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  27. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  28. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  29. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  30. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  31. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  32. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  33. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  34. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +17 -11
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +18 -12
  42. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  49. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  53. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  55. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  57. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  59. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  61. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  63. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -0
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -0
  70. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  73. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  75. package/dist/martyrs/src/modules/globals/globals.client.js +15 -15
  76. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +8 -3
  84. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +8 -3
  86. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +121 -107
  88. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +131 -117
  90. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  92. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  94. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +112 -49
  98. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +121 -58
  100. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  103. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs +3 -3
  104. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js +3 -3
  105. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +136 -134
  106. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +136 -134
  108. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  111. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  117. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  119. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  121. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  123. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  125. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  127. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  129. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  131. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  133. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  137. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  141. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  143. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  145. package/dist/martyrs/src/modules/music/router/music.cjs +2 -1
  146. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  147. package/dist/martyrs/src/modules/music/router/music.js +2 -1
  148. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  149. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  151. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  153. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +61 -9
  154. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -1
  155. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +61 -9
  156. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  157. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  159. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  161. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  163. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  165. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  167. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  169. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  171. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -1
  172. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -1
  174. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  175. package/dist/martyrs/src/modules/orders/orders.client.cjs +36 -44
  176. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/orders/orders.client.js +36 -44
  178. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  179. package/dist/martyrs/src/modules/orders/store/models/customer.cjs +7 -0
  180. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/orders/store/models/customer.js +7 -0
  182. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  183. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  185. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  186. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  187. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  189. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  190. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  191. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  193. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  195. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  197. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  198. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  199. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +17 -28
  200. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  201. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +17 -28
  202. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  203. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  204. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  205. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  206. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  207. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  208. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  209. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs +9 -1
  210. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -1
  211. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +9 -1
  212. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  215. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -2
  216. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -2
  218. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +3 -3
  220. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  221. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +3 -3
  222. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  223. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  224. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  225. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +118 -135
  226. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +123 -140
  228. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  229. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  231. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  233. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +3 -5
  234. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -1
  235. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +4 -6
  236. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  238. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  239. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  240. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  241. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +10 -5
  242. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  243. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +10 -5
  244. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +6 -3
  246. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +6 -3
  248. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +2 -2
  250. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
  251. package/dist/martyrs/src/modules/products/store/products.cjs +5 -5
  252. package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
  253. package/dist/martyrs/src/modules/products/store/products.js +5 -5
  254. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  255. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -2
  256. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  257. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  259. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  260. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  261. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  262. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  263. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  264. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  265. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  266. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  267. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  268. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  269. package/dist/martyrs.cjs.js +1 -1
  270. package/dist/martyrs.css +1 -1
  271. package/dist/martyrs.es.js +1 -1
  272. package/dist/orders.server.cjs +58 -0
  273. package/dist/orders.server.js +58 -0
  274. package/dist/products.server.cjs +79 -45
  275. package/dist/products.server.js +79 -45
  276. package/dist/style.css +44 -52
  277. package/dist/{web-BXajFCU2.js → web-C5cmb1FH.js} +1 -1
  278. package/dist/{web-DaBwwCQ5.cjs → web-d40xcY_Y.cjs} +1 -1
  279. package/package.json +1 -1
  280. package/src/components/Checkbox/Checkbox.vue +1 -1
  281. package/src/components/Feed/Carousel.vue +3 -1
  282. package/src/components/Feed/Feed.vue +1 -1
  283. package/src/components/Field/Field.vue +5 -0
  284. package/src/components/FieldBig/FieldBig.vue +2 -2
  285. package/src/modules/auth/views/components/pages/ProfileEdit.vue +17 -10
  286. package/src/modules/globals/views/components/layouts/Client.vue +12 -1
  287. package/src/modules/globals/views/components/partials/Footer.centered.vue +338 -0
  288. package/src/modules/globals/views/components/partials/Footer.vue +104 -99
  289. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  290. package/src/modules/globals/views/components/sections/Filters.vue +73 -15
  291. package/src/modules/icons/logos/Logotype.vue +1 -1
  292. package/src/modules/inventory/components/pages/Inventory.vue +126 -119
  293. package/src/modules/orders/components/forms/FormCustomerDetails.vue +51 -0
  294. package/src/modules/orders/middlewares/customers.verifier.js +60 -0
  295. package/src/modules/orders/models/customer.model.js +18 -0
  296. package/src/modules/orders/orders.client.js +36 -44
  297. package/src/modules/orders/store/models/customer.js +7 -0
  298. package/src/modules/organizations/configs/navigation.organization.config.js +17 -26
  299. package/src/modules/products/TASKS.MD +1 -157
  300. package/src/modules/products/components/elements/QuantitySelector.vue +17 -9
  301. package/src/modules/products/components/pages/Product.vue +1 -1
  302. package/src/modules/products/components/pages/Products.vue +148 -175
  303. package/src/modules/products/components/sections/EditRecommended.vue +1 -3
  304. package/src/modules/products/components/sections/ProductsPopular.vue +9 -5
  305. package/src/modules/products/components/sections/ProductsRecommended.vue +4 -1
  306. package/src/modules/products/controllers/configs/products.lookup.config.js +31 -4
  307. package/src/modules/products/controllers/products.controller.js +14 -2
  308. package/src/modules/products/controllers/queries/products.queries.js +46 -43
  309. package/src/modules/products/models/product.model.js +4 -0
  310. package/src/modules/products/store/products.js +5 -5
  311. package/src/styles/base/all.scss +9 -4
  312. package/src/styles/config.scss +10 -0
  313. package/src/styles/responsive.scss +2 -1
  314. package/src/styles/typography.scss +0 -5
  315. package/dist/main-AWSb_d2P.cjs +0 -11
  316. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  317. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
package/dist/style.css CHANGED
@@ -63,19 +63,22 @@
63
63
  .background-div {
64
64
  flex-grow: 1;
65
65
  }
66
- input[data-v-985f0e53],
67
- textarea[data-v-985f0e53],
68
- span[data-v-985f0e53] {
66
+ input[data-v-36998019],
67
+ textarea[data-v-36998019],
68
+ span[data-v-36998019] {
69
69
  color: inherit;
70
70
  line-height: 1;
71
71
  }
72
- textarea[data-v-985f0e53] {
72
+ textarea[data-v-36998019] {
73
73
  resize: none;
74
74
  overflow: hidden;
75
75
  height: 1rem;
76
76
  }
77
- input[type="date"][data-v-985f0e53]::-webkit-calendar-picker-indicator,
78
- input[type="time"][data-v-985f0e53]::-webkit-calendar-picker-indicator {
77
+ input[data-v-36998019] {
78
+ height: 1rem;
79
+ }
80
+ input[type="date"][data-v-36998019]::-webkit-calendar-picker-indicator,
81
+ input[type="time"][data-v-36998019]::-webkit-calendar-picker-indicator {
79
82
  filter: invert(1);
80
83
  opacity: 1;
81
84
  color: inherit;
@@ -779,7 +782,11 @@ button[data-v-2ba40647]:disabled {
779
782
  overflow: hidden;
780
783
  transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
781
784
  }
782
- .filters-content[data-v-e07dca8a] {
785
+ .icon-custom {
786
+ background: white;
787
+ }
788
+
789
+ .filters-content[data-v-e749b035] {
783
790
  max-height: 60vh;
784
791
  overflow-y: auto;
785
792
  }
@@ -798,10 +805,6 @@ button[data-v-2ba40647]:disabled {
798
805
  position: absolute;
799
806
  }
800
807
 
801
- .icon-custom {
802
- background: white;
803
- }
804
-
805
808
  .t-trimmed {
806
809
  font-size: 0;
807
810
  }
@@ -1123,12 +1126,12 @@ div.vue-tags-input.disabled * {
1123
1126
  font-size: .85em;
1124
1127
  }
1125
1128
 
1126
- .fade-enter-active[data-v-fe817eef],
1127
- .fade-leave-active[data-v-fe817eef] {
1129
+ .fade-enter-active[data-v-c1b1de8c],
1130
+ .fade-leave-active[data-v-c1b1de8c] {
1128
1131
  transition: opacity 0.3s ease;
1129
1132
  }
1130
- .fade-enter-from[data-v-fe817eef],
1131
- .fade-leave-to[data-v-fe817eef] {
1133
+ .fade-enter-from[data-v-c1b1de8c],
1134
+ .fade-leave-to[data-v-c1b1de8c] {
1132
1135
  opacity: 0;
1133
1136
  }
1134
1137
  .slider-hotpost :deep(.carousel__slide) {
@@ -1546,19 +1549,34 @@ to {
1546
1549
  [data-v-6db7716d]::-webkit-scrollbar-thumb:hover {
1547
1550
  background-color: var(--grey-small);
1548
1551
  }
1549
- .cols-4-footer[data-v-37ca2fe7] {
1550
- grid-template-columns: 5fr 3fr 3fr 4fr;
1552
+ .eye[data-v-4241147a] {
1553
+ animation: rotateEye-4241147a 10s linear infinite;
1554
+ transform-origin: center 55%;
1551
1555
  }
1552
- footer[data-v-37ca2fe7] {
1553
- transition: background-color 0.3s ease, color 0.3s ease;
1556
+ .mouth[data-v-4241147a] {
1557
+ animation: rotateMouth-4241147a 20s ease-in-out infinite;
1558
+ transform-origin: center 55%;
1554
1559
  }
1555
- footer a[data-v-37ca2fe7] {
1556
- text-decoration: none;
1560
+ @keyframes rotateEye-4241147a {
1561
+ from {
1562
+ transform: rotate(0deg);
1557
1563
  }
1558
- footer ul[data-v-37ca2fe7] {
1559
- list-style: none;
1560
- padding: 0;
1561
- margin: 0;
1564
+ to {
1565
+ transform: rotate(360deg);
1566
+ }
1567
+ }
1568
+ @keyframes rotateMouth-4241147a {
1569
+ 0% {
1570
+ transform: rotate(0deg);
1571
+ }
1572
+ 50% {
1573
+ transform: rotate(180deg);
1574
+ }
1575
+ 100% {
1576
+ transform: rotate(360deg);
1577
+ }
1578
+ }.cols-3-footer {
1579
+ grid-template-columns: 5fr 7fr 4fr;
1562
1580
  }
1563
1581
  fieldset[disabled] .multiselect {
1564
1582
  pointer-events: none;
@@ -2008,33 +2026,7 @@ to {
2008
2026
  opacity: 0;
2009
2027
  transform: scale(0.9);
2010
2028
  }
2011
- .eye[data-v-8ec01df7] {
2012
- animation: rotateEye-8ec01df7 10s linear infinite;
2013
- transform-origin: center 55%;
2014
- }
2015
- .mouth[data-v-8ec01df7] {
2016
- animation: rotateMouth-8ec01df7 20s ease-in-out infinite;
2017
- transform-origin: center 55%;
2018
- }
2019
- @keyframes rotateEye-8ec01df7 {
2020
- from {
2021
- transform: rotate(0deg);
2022
- }
2023
- to {
2024
- transform: rotate(360deg);
2025
- }
2026
- }
2027
- @keyframes rotateMouth-8ec01df7 {
2028
- 0% {
2029
- transform: rotate(0deg);
2030
- }
2031
- 50% {
2032
- transform: rotate(180deg);
2033
- }
2034
- 100% {
2035
- transform: rotate(360deg);
2036
- }
2037
- }
2029
+
2038
2030
  .h-60[data-v-c38b132b] {
2039
2031
  height: 60%;
2040
2032
  }
@@ -1,4 +1,4 @@
1
- import { W as p } from "./main-Dq-UfO4G.js";
1
+ import { W as p } from "./main-DrpgUZcn.js";
2
2
  class f extends p {
3
3
  constructor() {
4
4
  super(...arguments), this.group = "CapacitorStorage";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./main-AWSb_d2P.cjs");class p extends c.WebPlugin{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}exports.PreferencesWeb=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./main-XJQJFmgj.cjs");class p extends c.WebPlugin{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}exports.PreferencesWeb=p;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/martyrs",
3
- "version": "0.2.508",
3
+ "version": "0.2.510",
4
4
  "description": "Fullstack framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -53,7 +53,7 @@
53
53
  :checked="Array.isArray(radio) ? radio.includes(value) : radio"
54
54
  >
55
55
  <div
56
- class="cursor-pointer mn-l-thin flex-center"
56
+ class="cursor-pointer mn-l-thin flex-center field-wrapper"
57
57
  :class="{
58
58
  'transition-elastic pd-thin h-2r w-4r radius-extra': mode === 'switch',
59
59
  'w-2r h-2r radius-small': mode === 'checkbox',
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
  <!-- Empty State -->
8
8
  <EmptyState
9
- v-if="!isLoading && !entities.length < 1"
9
+ v-else-if="entities.length < 1"
10
10
  :title="states.empty.title"
11
11
  :description="states.empty.description"
12
12
  :action="states.empty.action"
@@ -65,9 +65,11 @@ const { t } = useI18n({
65
65
  onMounted(async() => {
66
66
  try {
67
67
  entities.value = await props.store.read(props.options)
68
+ isLoading.value = false
68
69
  } catch (error) {
69
70
  console.error('Error loading entities:', error)
70
71
  entities.value = []
72
+ isLoading.value = false
71
73
  } finally {
72
74
  isLoading.value = false
73
75
  }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="search || date || (sort && !sort.hideButton)" style="transform: scale(1);" class="mn-b-thin pos-relative flex-nowrap flex gap-thin">
2
+ <div v-if="search || date || (sort && !sort.hideButton)" style="transform: scale(1);" class="mn-b-thin pos-relative z-index-2 pos-relative flex-nowrap flex gap-thin">
3
3
 
4
4
  <BlockSearch
5
5
  v-if="search"
@@ -150,6 +150,11 @@ textarea {
150
150
  overflow: hidden;
151
151
  height: 1rem;
152
152
  }
153
+
154
+ input {
155
+ height: 1rem;
156
+ }
157
+
153
158
  input[type="date"]::-webkit-calendar-picker-indicator,
154
159
  input[type="time"]::-webkit-calendar-picker-indicator {
155
160
  filter: invert(1);
@@ -9,7 +9,7 @@
9
9
  :name="fieldName"
10
10
  :id="fieldId"
11
11
  :validation="validation"
12
- class="pd-l-medium radius-extra flex-nowrap flex w-100 p-medium t-regular uppercase pd-thin"
12
+ class="radius-medium flex-nowrap flex w-100 p-medium t-regular uppercase pd-thin"
13
13
  >
14
14
  <slot></slot>
15
15
  <Button
@@ -18,7 +18,7 @@
18
18
  :showLoader="showLoader"
19
19
  :callback="callback"
20
20
  :callbackDelay="callbackDelay"
21
- class="t-nowrap t-medium radius-big uppercase cursor-pointer flex flex-v-center pd-thin w-max hover-bg-fifth t-semi transition-linear transition-timing-1 t-black bg-main"
21
+ class="t-nowrap t-medium radius-small uppercase cursor-pointer flex flex-v-center pd-thin w-max hover-bg-fifth t-semi transition-linear transition-timing-1 t-black bg-main"
22
22
  >
23
23
  <span v-if="action" class="desktop-only mn-r-thin">{{action}}</span>
24
24
  <IconArrow class="i-medium"/>
@@ -1,15 +1,7 @@
1
1
  <template>
2
2
  <Popup
3
- :isPopupOpen="true"
4
- @close-popup="router.push({
5
- name: 'User Profile',
6
- params: {
7
- _id: auth.state.user._id
8
- },
9
- query: {
10
- afterAuth: 'true'
11
- }
12
- })"
3
+ :isPopupOpen="isOpen"
4
+ @close-popup="closeProfileEdit()"
13
5
  title="Edit Profile"
14
6
  align="center center"
15
7
  class="w-m-50r h-40r mobile:h-100 h-m-40r bg-white mobile:radius-zero radius-medium pd-medium"
@@ -42,8 +34,23 @@
42
34
 
43
35
  const loading = ref(true)
44
36
  const userData = ref(null)
37
+ const isOpen = ref(false)
38
+
39
+ function closeProfileEdit () {
40
+ isOpen.value = false
41
+ router.push({
42
+ name: 'User Profile',
43
+ params: {
44
+ _id: auth.state.user._id
45
+ },
46
+ query: {
47
+ afterAuth: 'true'
48
+ }
49
+ })
50
+ }
45
51
 
46
52
  onMounted(async () => {
53
+ isOpen.value = true
47
54
  try {
48
55
  const userId = route.params._id || auth.state.user._id
49
56
  await users.actions.read({ _id: userId, user: auth.state.user._id })
@@ -143,6 +143,7 @@
143
143
  class="w-100 h-min-100"
144
144
  @page-loading="handlePageLoading"
145
145
  @page-loaded="handlePageLoaded"
146
+ :key="componentKey"
146
147
  />
147
148
  <!-- Key пока выключил непонятно какие проблемы это вызовет -->
148
149
  <!-- :key="route.path" -->
@@ -193,7 +194,7 @@
193
194
 
194
195
 
195
196
  <script setup>
196
- import { computed, ref, onMounted, watch } from 'vue';
197
+ import { computed, ref, onMounted } from 'vue';
197
198
  // Router
198
199
  import { useRoute } from 'vue-router';
199
200
  // Store
@@ -330,6 +331,16 @@
330
331
 
331
332
  if (page.value) show.value = true
332
333
  });
334
+
335
+ const componentKey = computed(() => {
336
+ // Собираем только значимые параметры (ID сущностей)
337
+ const significantParams = ['_id', 'product', 'organization', 'categoryPath']
338
+ .map(param => route.params[param])
339
+ .filter(Boolean)
340
+ .join('-');
341
+
342
+ return significantParams || route.name;
343
+ });
333
344
  </script>
334
345
 
335
346
  <style lang="scss">
@@ -0,0 +1,338 @@
1
+ <script setup="props">
2
+ import { computed, ref } from 'vue'
3
+ import { useRouter, useRoute } from 'vue-router'
4
+ import { useI18n } from 'vue-i18n'
5
+
6
+ // Martyrs Components
7
+ import FieldSubscribeNewsletter from '@martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue'
8
+
9
+ import LabelGooglePlay from '@martyrs/src/modules/icons/labels/LabelGooglePlay.vue';
10
+ import LabelAppStore from '@martyrs/src/modules/icons/labels/LabelAppStore.vue';
11
+
12
+ import IconPhone from '@martyrs/src/modules/icons/entities/IconPhone.vue';
13
+ import IconEmail from '@martyrs/src/modules/icons/entities/IconEmail.vue';
14
+ import IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';
15
+ import IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue';
16
+
17
+ import IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'
18
+ import IconInstagram from '@martyrs/src/modules/icons/socials/instagram.vue';
19
+ import IconFacebook from '@martyrs/src/modules/icons/socials/facebook.vue';
20
+ import IconLinkedin from '@martyrs/src/modules/icons/socials/linkedin.vue'
21
+ import IconYoutube from '@martyrs/src/modules/icons/socials/youtube.vue'
22
+ import IconWhatsapp from '@martyrs/src/modules/icons/socials/whatsapp.vue'
23
+
24
+ import Logotype from '@martyrs/src/modules/icons/logos/Logotype.vue'
25
+
26
+
27
+ // Props
28
+ const props = defineProps({
29
+ theme: {
30
+ type: String,
31
+ default: "light"
32
+ },
33
+ logotype: {
34
+ type: Object
35
+ }
36
+ })
37
+
38
+ // State
39
+ const router = useRouter()
40
+ const route = useRoute()
41
+
42
+ // Localization
43
+ const text = {
44
+ locale: 'en',
45
+ messages: {
46
+ en: {
47
+ linkAppStore: '2',
48
+ linkGooglePlay: '1',
49
+ // Contact
50
+ description: "3SR – Premium Video Gear Rentals for Filmmakers and Content Creators",
51
+ contact: 'Contact',
52
+ phone: 'Phone / WhatsApp',
53
+ email: 'Email',
54
+ hours: 'Hours',
55
+ hours_text: 'Mon–Sun, 10:00–19:00',
56
+ app: 'Get Our App',
57
+
58
+ // Subscribe
59
+ subscribe: 'Subscribe',
60
+ subscribe_text: 'Get updates on new equipment and special offers',
61
+ email_placeholder: 'Enter your email',
62
+ follow: 'Follow Us',
63
+
64
+ // Footer
65
+ year: '2025 ',
66
+ heart: "❤",
67
+ copyright: 'Three Steps Studio Ltd. All Rights Reserved.',
68
+ ozdao: 'Builded in OZ DAO',
69
+
70
+ // Contact info
71
+ phoneNumber: '+44 77 7878 4893',
72
+ emailAddress: "info{'@'}3stepsprod.com",
73
+
74
+ // Navigation columns
75
+ navigationColumns: [
76
+ {
77
+ sections: [
78
+ {
79
+ title: 'Equipment',
80
+ items: [
81
+ { name: 'Cameras', url: 'products/categories/cameras' },
82
+ { name: 'Lighting', url: 'products/categories/lighting-kits' },
83
+ { name: 'Stabilizers', url: 'products/categories/stabilization-motion' },
84
+ { name: 'Accessories', url: 'products/categories/accessories' }
85
+ ]
86
+ },
87
+ {
88
+ title: 'Services',
89
+ items: [
90
+ { name: 'Kits & Packages', url: 'products/categories/kits-packages' },
91
+ { name: 'Studio Hire', url: 'products/categories/studio-hire' },
92
+ { name: 'Delivery', url: 'products/categories/delivery' },
93
+ { name: 'Production Help', url: 'products/categories/production-help' }
94
+ ]
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ sections: [
100
+ {
101
+ title: 'Company',
102
+ items: [
103
+ { name: 'About Us', url: 'pages/about' },
104
+ { name: 'Contact', url: 'pages/contact' },
105
+ { name: 'FAQ', url: 'pages/faq' },
106
+ { name: 'Blog', url: '/community' }
107
+ ]
108
+ },
109
+ {
110
+ title: 'Legal',
111
+ items: [
112
+ { name: 'Privacy Policy', url: 'pages/privacy-policy' },
113
+ { name: 'Cookie Policy', url: 'pages/cookie-policy' },
114
+ { name: 'Terms of Use', url: 'pages/terms-of-use' },
115
+ { name: 'EULA', url: 'pages/eula' }
116
+ ]
117
+ }
118
+ ]
119
+ }
120
+ ],
121
+
122
+ // Social links
123
+ socialLinks: [
124
+ {
125
+ name: 'IconInstagram',
126
+ url: 'https://www.instagram.com/3stepsprod'
127
+ },
128
+ {
129
+ name: 'IconYoutube',
130
+ url: 'https://www.youtube.com/@threestepsproduction'
131
+ },
132
+ {
133
+ name: 'IconWhatsapp',
134
+ url: 'https://api.whatsapp.com/send/?phone=447778784893&text&type=phone_number&app_absent=0'
135
+ }
136
+ ]
137
+ }
138
+ }
139
+ }
140
+
141
+ const { t, te, tm } = useI18n({
142
+ useScope: 'global',
143
+ messages: text.messages
144
+ })
145
+
146
+ // Component mapping for social icons
147
+ const iconComponents = {
148
+ IconInstagram,
149
+ IconFacebook,
150
+ IconLinkedin,
151
+ IconYoutube,
152
+ IconWhatsapp
153
+ }
154
+ </script>
155
+
156
+ <template>
157
+ <footer
158
+ class="
159
+ w-100
160
+ br-t br-solid
161
+ mobile:t-center
162
+ "
163
+ :class="{
164
+ 't-black bg-white br-light': theme === 'light',
165
+ 't-white bg-black br-dark': theme === 'dark'
166
+ }"
167
+ >
168
+ <div class="pd-medium">
169
+ <!-- Top Section -->
170
+ <component
171
+ v-if="logotype"
172
+ :is="logotype"
173
+ @click="router.push({ path: '/' })"
174
+ :theme="theme"
175
+ class="cursor-pointer h-3r mn-b-medium"
176
+ />
177
+
178
+ <div class="grid cols-3-footer tablet:cols-2 mobile:cols-1 gap-extra mobile:gap-big">
179
+
180
+ <!-- Contact Block -->
181
+ <div class="flex flex-column mobile:flex-h-center w-max-15r mobile:mn-auto">
182
+ <p class="p-semi t-medium mn-b-semi">{{ t('description') }}</p>
183
+
184
+ <div class="mn-b-semi mobile:flex-v-center flex flex-column gap-small">
185
+ <a
186
+ :href="`tel:${t('phoneNumber').replace(/\s/g, '')}`"
187
+ class="flex mn-b-micro gap-micro flex-v-center transition-opacity hover-opacity-70"
188
+ :class="theme === 'light' ? 't-black' : 't-white'"
189
+ >
190
+ <IconPhone class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
191
+ <span class="t-small">{{ t('phoneNumber') }}</span>
192
+ </a>
193
+
194
+ <a
195
+ :href="`mailto:${t('emailAddress')}`"
196
+ class="flex mn-b-micro gap-micro flex-v-center transition-opacity hover-opacity-70"
197
+ :class="theme === 'light' ? 't-black' : 't-white'"
198
+ >
199
+ <IconEmail class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
200
+ <span class="t-small">{{ t('emailAddress') }}</span>
201
+ </a>
202
+
203
+ <div class="flex mn-b-micro gap-micro flex-v-center">
204
+ <IconTime class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
205
+ <span class="t-small">{{ t('hours_text') }}</span>
206
+ </div>
207
+ </div>
208
+
209
+ <h4 class="h5 t-medium mn-b-regular">{{ t('app') }}</h4>
210
+ <div class="w-100 flex-nowrap flex gap-thin">
211
+ <a
212
+ v-if="te('linkAppStore') || te('label')"
213
+ :href="te('linkAppStore') ? t('linkAppStore') : null"
214
+ :target="te('linkAppStore') ? '_blank' : null"
215
+ class="pos-relative w-100 h-100"
216
+ >
217
+ <span
218
+ v-if="te('label')"
219
+ class="z-index-2 radius-medium bg-main t-medium uppercase pd-thin pos-absolute pos-r-10-negative pos-t-10-negative"
220
+ >
221
+ {{ t('label') }}
222
+ </span>
223
+ <LabelAppStore class="w-100 h-max" alt="Download on App Store"/>
224
+ </a>
225
+
226
+ <a
227
+ v-if="te('linkGooglePlay') || te('label')"
228
+ :href="te('linkGooglePlay') ? t('linkGooglePlay') : null"
229
+ :target="te('linkGooglePlay') ? '_blank' : null"
230
+ class="pos-relative w-100 h-100"
231
+ >
232
+ <span
233
+ v-if="te('label')"
234
+ class="z-index-2 pd-thin radius-medium bg-main t-medium uppercase pos-absolute pos-r-10-negative pos-t-10-negative"
235
+ >
236
+ {{ t('label') }}
237
+ </span>
238
+ <LabelGooglePlay class="w-100 h-max" alt="Download on Google Play"/>
239
+ </a>
240
+ </div>
241
+ </div>
242
+
243
+ <!-- Navigation Columns -->
244
+ <div class="cols-2 gap-big">
245
+ <div v-for="(column, colIndex) in tm('navigationColumns')" :key="colIndex" class="flex flex-column gap-medium">
246
+ <div v-for="(section, sectionIndex) in column.sections" :key="sectionIndex" class="">
247
+ <h4 class="h5 t-medium mn-b-regular">{{ section.title }}</h4>
248
+ <nav>
249
+ <ul class="flex flex-column gap-thin">
250
+ <li v-for="item in section.items" :key="item.url">
251
+ <router-link
252
+ :to="`/${item.url}`"
253
+ class="t-small transition-opacity hover-opacity-70"
254
+ :class="theme === 'light' ? 't-black' : 't-white'"
255
+ >
256
+ {{ item.name }}
257
+ </router-link>
258
+ </li>
259
+ </ul>
260
+ </nav>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <!-- Subscribe Block -->
266
+ <div class="col">
267
+ <h4 class="h5 t-medium mn-b-regular">{{ t('subscribe') }}</h4>
268
+ <p class="t-small mn-b-small t-transp">{{ t('subscribe_text') }}</p>
269
+
270
+ <FieldSubscribeNewsletter
271
+ :action="false"
272
+ fieldName="footer-newsletter"
273
+ fieldId="footer-newsletter-email"
274
+ class="d-inline-flex mn-b-medium bg-light t-black w-100"
275
+ />
276
+
277
+ <h4 class="h5 t-medium mn-b-regular">{{ t('follow') }}</h4>
278
+ <!-- Social Links -->
279
+ <div class="flex mobile:flex-h-center gap-thin">
280
+ <a
281
+ v-for="social in tm('socialLinks')"
282
+ :key="social.name"
283
+ :href="social.url"
284
+ target="_blank"
285
+ class="
286
+ w-3r h-3r
287
+ flex flex-center
288
+ radius-small
289
+ bg-light
290
+ transition-opacity
291
+ hover-opacity-70
292
+ "
293
+ >
294
+ <component
295
+ :is="iconComponents[social.name]"
296
+ class="i-semi"
297
+ :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'"
298
+ />
299
+ </a>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ </div>
304
+
305
+ <!-- Bottom Section -->
306
+ <div class="
307
+ pd-medium
308
+ br-t br-solid
309
+ flex flex-justify-between flex-v-center
310
+ flex-nowrap
311
+ mobile:flex-column mobile:gap-small
312
+ mobile:t-center
313
+ "
314
+ :class="{
315
+ 'br-light': theme === 'light',
316
+ 'br-dark': theme === 'dark'
317
+ }"
318
+ >
319
+ <!-- Copyright -->
320
+ <p class="t-small t-medium uppercase mobile:t-center">
321
+ {{ t('year') }}
322
+ <span class="t-main copyleft">{{ t('heart') }}</span>
323
+ {{ t('copyright') }}
324
+ </p>
325
+
326
+ <a href="https://ozdao.dev" target="_blank" rel="noopener" class="flex-nowrap flex-v-center flex t-medium gap-thin br-1px br-light pd-thin radius-thin">
327
+ <Logotype class="h-1r w-auto"/>
328
+ <span>{{ t('ozdao') }}</span>
329
+ </a>
330
+ </div>
331
+ </footer>
332
+ </template>
333
+
334
+ <style lang="scss">
335
+ .cols-3-footer {
336
+ grid-template-columns: 5fr 7fr 4fr;
337
+ }
338
+ </style>