@evershop/evershop 1.1.0 → 1.2.0

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 (390) hide show
  1. package/bin/build/index.js +24 -0
  2. package/bin/extension/index.js +2 -2
  3. package/bin/lib/addDefaultMiddlewareFuncs.js +7 -2
  4. package/bin/lib/buildEntry.js +15 -0
  5. package/bin/lib/onListening.js +7 -4
  6. package/bin/lib/startUp.js +6 -0
  7. package/package.json +9 -1
  8. package/src/components/admin/catalog/productEdit/category/CategoryItem.jsx +2 -7
  9. package/src/components/admin/catalog/productEdit/category/CategoryTree.jsx +14 -7
  10. package/src/components/admin/catalog/productEdit/category/CategoryTree.scss +10 -0
  11. package/src/components/admin/catalog/productEdit/variants/CreateVariant.jsx +2 -2
  12. package/src/components/admin/catalog/productEdit/variants/CreateVariantGroup.jsx +1 -1
  13. package/src/components/admin/catalog/productEdit/variants/EditVariant.jsx +1 -1
  14. package/src/components/admin/catalog/productEdit/variants/New.jsx +2 -2
  15. package/src/components/admin/catalog/productEdit/variants/Search.jsx +1 -1
  16. package/src/components/admin/catalog/productEdit/variants/SearchModal.jsx +1 -1
  17. package/src/components/admin/catalog/productEdit/variants/VariantModal.jsx +6 -6
  18. package/src/components/admin/catalog/productGrid/rows/ThumbnailRow.jsx +1 -1
  19. package/src/components/admin/checkout/shippingSetting/Method.jsx +6 -6
  20. package/src/components/admin/checkout/shippingSetting/MethodForm.jsx +4 -4
  21. package/src/components/admin/checkout/shippingSetting/Methods.jsx +3 -3
  22. package/src/components/admin/checkout/shippingSetting/PriceBasedPrice.jsx +2 -2
  23. package/src/components/admin/checkout/shippingSetting/WeightBasedPrice.jsx +2 -2
  24. package/src/components/admin/checkout/shippingSetting/Zone.jsx +7 -7
  25. package/src/components/admin/checkout/shippingSetting/ZoneForm.jsx +1 -1
  26. package/src/components/admin/cms/Card.jsx +3 -3
  27. package/src/components/admin/cms/PageHeading.jsx +3 -3
  28. package/src/components/admin/cms/widget/WidgetTypes.jsx +28 -0
  29. package/src/components/admin/cms/widget/grid/WidgetTypeRow.jsx +29 -0
  30. package/src/components/admin/oms/orderEdit/items/ItemVariantOptions.jsx +1 -1
  31. package/src/components/admin/oms/orderEdit/items/Name.jsx +1 -1
  32. package/src/components/admin/oms/orderGrid/headers/OrderDateColumnHeader.jsx +1 -1
  33. package/src/components/admin/promotion/couponEdit/AttributeGroupSelector.jsx +3 -3
  34. package/src/components/admin/promotion/couponEdit/BuyXGetY.jsx +2 -2
  35. package/src/components/admin/promotion/couponEdit/CategorySelector.jsx +6 -6
  36. package/src/components/admin/promotion/couponEdit/CollectionSelector.jsx +3 -3
  37. package/src/components/admin/promotion/couponEdit/ProductSkuSelector.jsx +4 -4
  38. package/src/components/admin/promotion/couponEdit/RequireProducts.jsx +2 -2
  39. package/src/components/admin/promotion/couponEdit/Setting.jsx +1 -1
  40. package/src/components/admin/promotion/couponEdit/TargetProducts.jsx +4 -4
  41. package/src/components/admin/tax/taxSetting/Rate.jsx +6 -6
  42. package/src/components/admin/tax/taxSetting/RateForm.jsx +5 -5
  43. package/src/components/admin/tax/taxSetting/Rates.jsx +6 -6
  44. package/src/components/admin/tax/taxSetting/TaxClass.jsx +3 -3
  45. package/src/components/admin/tax/taxSetting/TaxClassForm.jsx +1 -1
  46. package/src/components/admin/widgets/BasicMenuSetting.jsx +614 -0
  47. package/src/components/admin/widgets/BasicMenuSetting.scss +19 -0
  48. package/src/components/admin/widgets/CollectionProductsSetting.jsx +203 -0
  49. package/src/components/admin/widgets/TextBlockSetting.jsx +70 -0
  50. package/src/components/common/Area.jsx +31 -8
  51. package/src/components/common/Badge.jsx +1 -1
  52. package/src/components/common/Editor.jsx +191 -0
  53. package/src/components/common/Notification.scss +1 -0
  54. package/src/components/common/SimplePagination.jsx +2 -2
  55. package/src/components/common/form/Form.jsx +1 -1
  56. package/src/components/common/form/fields/Checkbox.jsx +1 -1
  57. package/src/components/common/form/fields/Ckeditor.jsx +11 -11
  58. package/src/components/common/form/fields/Editor.jsx +326 -0
  59. package/src/components/common/form/fields/Editor.scss +29 -0
  60. package/src/components/common/form/fields/Radio.jsx +1 -1
  61. package/src/components/common/form/fields/editor/FileBrowser.jsx +419 -0
  62. package/src/components/common/form/fields/editor/FileBrowser.scss +37 -0
  63. package/src/components/common/form/fields/editor/GetColumnClasses.jsx +14 -0
  64. package/src/components/common/form/fields/editor/GetRowClasses.jsx +18 -0
  65. package/src/components/common/form/fields/editor/RowTemplates.jsx +154 -0
  66. package/src/components/common/grid/Pagination.jsx +4 -4
  67. package/src/components/common/grid/headers/FromTo.jsx +1 -1
  68. package/src/components/common/grid/headers/Sortable.jsx +1 -1
  69. package/src/components/common/grid/rows/ThumbnailRow.jsx +1 -1
  70. package/src/components/common/list/Filter.jsx +1 -1
  71. package/src/components/common/modal/Alert.jsx +1 -1
  72. package/src/components/common/modal/Modal.jsx +1 -1
  73. package/src/components/frontStore/catalog/categoryView/filter/AttributeFilter.jsx +2 -2
  74. package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.jsx +3 -2
  75. package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.scss +5 -0
  76. package/src/components/frontStore/catalog/product/list/List.jsx +4 -4
  77. package/src/components/frontStore/catalog/product/list/Pagination.jsx +1 -1
  78. package/src/components/frontStore/catalog/product/list/Sorting.jsx +2 -2
  79. package/src/components/frontStore/catalog/product/list/item/Name.jsx +1 -1
  80. package/src/components/frontStore/checkout/cart/Empty.jsx +3 -3
  81. package/src/components/frontStore/checkout/cart/items/ItemOptions.jsx +1 -1
  82. package/src/components/frontStore/checkout/cart/items/ItemVariantOptions.jsx +1 -1
  83. package/src/components/frontStore/checkout/cart/items/Items.jsx +20 -21
  84. package/src/components/frontStore/checkout/cart/items/Items.scss +47 -0
  85. package/src/components/frontStore/checkout/cart/items/Quantity.jsx +154 -0
  86. package/src/components/frontStore/checkout/checkout/StepTitle.jsx +1 -1
  87. package/src/components/frontStore/checkout/checkout/payment/paymentStep/StepContent.jsx +5 -5
  88. package/src/components/frontStore/checkout/checkout/shipment/StepContent.jsx +1 -1
  89. package/src/components/frontStore/checkout/checkout/summary/Cart.jsx +10 -12
  90. package/src/components/frontStore/checkout/checkout/summary/Items.jsx +9 -9
  91. package/src/components/frontStore/checkout/checkout/summary/cart/Total.jsx +6 -6
  92. package/src/components/frontStore/checkout/success/summary/items/ItemOptions.jsx +1 -1
  93. package/src/components/frontStore/checkout/success/summary/items/Items.jsx +9 -6
  94. package/src/components/frontStore/checkout/success/summary/order/OrderSummary.jsx +9 -13
  95. package/src/components/frontStore/checkout/success/summary/order/Total.jsx +5 -5
  96. package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.jsx +2 -2
  97. package/src/components/frontStore/customer/address/addressForm/NameAndTelephone.jsx +1 -1
  98. package/src/components/frontStore/customer/address/addressForm/ProvinceAndPostcode.jsx +1 -1
  99. package/src/components/frontStore/customer/checkout/Edit.jsx +2 -2
  100. package/src/components/frontStore/customer/detail/Order.jsx +4 -4
  101. package/src/components/frontStore/stripe/checkout/CheckoutForm.jsx +2 -2
  102. package/src/components/frontStore/stripe/checkout/TestCards.jsx +1 -1
  103. package/src/components/frontStore/widgets/BasicMenu.jsx +129 -0
  104. package/src/{modules/catalog/pages/frontStore/homepage/FeaturedProducts.jsx → components/frontStore/widgets/CollectionProducts.jsx} +40 -32
  105. package/src/components/frontStore/widgets/TextBlock.jsx +46 -0
  106. package/src/lib/componee/getComponentsByRoute.js +15 -2
  107. package/src/lib/event/event-manager.js +1 -1
  108. package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/route.json +2 -1
  109. package/src/lib/middlewares/static.js +3 -1
  110. package/src/lib/response/render.js +5 -6
  111. package/src/lib/router/Router.js +1 -1
  112. package/src/lib/router/loadModuleRoutes.js +3 -0
  113. package/src/lib/router/registerAdminRoute.js +9 -1
  114. package/src/lib/router/registerFrontStoreRoute.js +2 -0
  115. package/src/lib/router/scanForRoutes.js +1 -0
  116. package/src/lib/router/tests/unit/unit.validateRoute.test.js +7 -1
  117. package/src/lib/util/defaultPaginationFilters.js +19 -17
  118. package/src/lib/util/getEnabledWidgets.js +28 -0
  119. package/src/lib/util/merge.js +67 -14
  120. package/src/lib/util/tests/unit/util.merge.test.js +21 -4
  121. package/src/lib/util/validateConfiguration.js +83 -0
  122. package/src/lib/webpack/createBaseConfig.js +4 -1
  123. package/src/lib/webpack/dev/createConfigClient.js +10 -2
  124. package/src/lib/webpack/loaders/AreaLoader.js +14 -3
  125. package/src/lib/webpack/util/parseGraphql.js +29 -16
  126. package/src/lib/webpack/util/parseGraphqlByFile.js +16 -2
  127. package/src/modules/auth/pages/admin/adminLogin/LoginForm.jsx +54 -21
  128. package/src/modules/auth/pages/admin/all/AdminUser.jsx +3 -3
  129. package/src/modules/base/bootstrap.js +79 -0
  130. package/src/modules/base/graphql/types/Route/Route.admin.graphql +15 -0
  131. package/src/modules/base/graphql/types/Route/Route.admin.resolvers.js +10 -0
  132. package/src/modules/base/pages/global/response[errorHandler].js +23 -0
  133. package/src/modules/catalog/bootstrap.js +125 -5
  134. package/src/modules/catalog/graphql/types/Category/Category.graphql +4 -3
  135. package/src/modules/catalog/graphql/types/Category/Category.resolvers.js +34 -0
  136. package/src/modules/catalog/graphql/types/Collection/Collection.graphql +2 -2
  137. package/src/modules/catalog/graphql/types/Collection/Collection.resolvers.js +34 -0
  138. package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.resolvers.js +1 -0
  139. package/src/modules/catalog/graphql/types/Product/Product.graphql +1 -1
  140. package/src/modules/catalog/graphql/types/Product/Product.resolvers.js +34 -0
  141. package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.graphql +11 -0
  142. package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.resolvers.js +8 -0
  143. package/src/modules/catalog/migration/Version-1.0.0.js +1 -0
  144. package/src/modules/catalog/migration/Version-1.0.7.js +10 -0
  145. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.jsx +4 -4
  146. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/General.jsx +5 -5
  147. package/src/modules/catalog/pages/admin/attributeGrid/Grid.jsx +2 -2
  148. package/src/modules/catalog/pages/admin/categoryEdit/Products.jsx +4 -4
  149. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.jsx +4 -4
  150. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/General.jsx +16 -18
  151. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.jsx +1 -2
  152. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Status.jsx +16 -1
  153. package/src/modules/catalog/pages/admin/categoryGrid/Grid.jsx +3 -3
  154. package/src/modules/catalog/pages/admin/collectionEdit/Products.jsx +4 -4
  155. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.jsx +2 -2
  156. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/General.jsx +2 -2
  157. package/src/modules/catalog/pages/admin/collectionGrid/Grid.jsx +3 -3
  158. package/src/modules/catalog/pages/admin/productEdit/Collection.jsx +7 -7
  159. package/src/modules/catalog/pages/admin/productEdit+productNew/Attributes.jsx +1 -1
  160. package/src/modules/catalog/pages/admin/productEdit+productNew/CustomOptions.jsss +4 -4
  161. package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.jsx +4 -4
  162. package/src/modules/catalog/pages/admin/productEdit+productNew/General.jsx +15 -17
  163. package/src/modules/catalog/pages/admin/productGrid/Grid.jsx +3 -3
  164. package/src/modules/catalog/pages/frontStore/catalogSearch/General.jsx +2 -2
  165. package/src/modules/catalog/pages/frontStore/catalogSearch/Products.jsx +1 -1
  166. package/src/modules/catalog/pages/frontStore/catalogSearch/route.json +2 -1
  167. package/src/modules/catalog/pages/frontStore/categoryView/CategoryView.jsx +19 -2
  168. package/src/modules/catalog/pages/frontStore/categoryView/Filter.scss +1 -0
  169. package/src/modules/catalog/pages/frontStore/categoryView/General.jsx +6 -8
  170. package/src/modules/catalog/pages/frontStore/categoryView/General.scss +0 -2
  171. package/src/modules/catalog/pages/frontStore/categoryView/Pagination.jsx +6 -0
  172. package/src/modules/catalog/pages/frontStore/categoryView/Products.jsx +8 -1
  173. package/src/modules/catalog/pages/frontStore/categoryView/route.json +2 -1
  174. package/src/modules/catalog/pages/frontStore/productView/Description.jsx +3 -3
  175. package/src/modules/catalog/pages/frontStore/productView/Form.jsx +4 -4
  176. package/src/modules/catalog/pages/frontStore/productView/Form.scss +1 -0
  177. package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.jsx +1 -1
  178. package/src/modules/catalog/pages/frontStore/productView/Images.jsx +1 -1
  179. package/src/modules/catalog/pages/frontStore/productView/Layout.jsx +1 -1
  180. package/src/modules/catalog/pages/frontStore/productView/Options.jsx +2 -2
  181. package/src/modules/catalog/pages/frontStore/productView/Variants.jsx +4 -4
  182. package/src/modules/catalog/pages/frontStore/productView/route.json +2 -1
  183. package/src/modules/catalog/services/AttributeCollection.js +10 -10
  184. package/src/modules/catalog/services/AttributeGroupCollection.js +10 -10
  185. package/src/modules/catalog/services/CategoryCollection.js +10 -10
  186. package/src/modules/catalog/services/CollectionCollection.js +10 -10
  187. package/src/modules/catalog/services/registerCartItemProductUrlField.js +35 -0
  188. package/src/modules/catalog/services/registerCartItemVariantOptionsField.js +51 -0
  189. package/src/modules/catalog/services/registerDefaultCategoryCollectionFilters.js +16 -0
  190. package/src/modules/checkout/api/addShippingNote/[context]bodyParser[auth].js +5 -0
  191. package/src/modules/checkout/api/addShippingNote/payloadSchema.json +15 -0
  192. package/src/modules/checkout/api/addShippingNote/route.json +5 -0
  193. package/src/modules/checkout/api/addShippingNote/saveShippingNote.js +50 -0
  194. package/src/modules/checkout/api/createCart/createNewCart.js +28 -1
  195. package/src/modules/checkout/api/updateCartItemQty/[bodyParser]updateQty.js +49 -0
  196. package/src/modules/checkout/api/updateCartItemQty/[context]bodyParser[auth].js +5 -0
  197. package/src/modules/checkout/api/updateCartItemQty/payloadSchema.json +21 -0
  198. package/src/modules/checkout/api/updateCartItemQty/route.json +5 -0
  199. package/src/modules/checkout/api/updateMineCartItemQty/[context]bodyParser[auth].js +5 -0
  200. package/src/modules/checkout/api/updateMineCartItemQty/[detectCurrentCart]updateQty.js +51 -0
  201. package/src/modules/checkout/api/updateMineCartItemQty/[getCurrentCustomer]detectCurrentCart.js +32 -0
  202. package/src/modules/checkout/api/updateMineCartItemQty/payloadSchema.json +21 -0
  203. package/src/modules/checkout/api/updateMineCartItemQty/route.json +5 -0
  204. package/src/modules/checkout/bootstrap.js +27 -0
  205. package/src/modules/checkout/graphql/types/Cart/Cart.graphql +22 -3
  206. package/src/modules/checkout/graphql/types/Cart/Cart.resolvers.js +18 -2
  207. package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.graphql +3 -0
  208. package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.resolvers.js +7 -0
  209. package/src/modules/checkout/migration/Version-1.0.0.js +14 -0
  210. package/src/modules/checkout/migration/Version-1.0.6.js +201 -0
  211. package/src/modules/checkout/pages/admin/shippingSetting/ShippingSetting.jsx +2 -2
  212. package/src/modules/checkout/pages/frontStore/all/[context]detectCurrentCart[auth].js +5 -0
  213. package/src/modules/checkout/pages/frontStore/cart/ShoppingCart.jsx +17 -8
  214. package/src/modules/checkout/pages/frontStore/cart/Summary.jsx +18 -19
  215. package/src/modules/checkout/pages/frontStore/cart/route.json +2 -1
  216. package/src/modules/checkout/pages/frontStore/checkout/Checkout.jsx +5 -5
  217. package/src/modules/checkout/pages/frontStore/checkout/Checkout.scss +4 -0
  218. package/src/modules/checkout/pages/frontStore/checkout/ShippingMethods.jsx +2 -2
  219. package/src/modules/checkout/pages/frontStore/checkout/ShippingNote.jsx +105 -0
  220. package/src/modules/checkout/pages/frontStore/checkout/Summary.jsx +14 -14
  221. package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.jsx +12 -15
  222. package/src/modules/checkout/pages/frontStore/checkout/route.json +2 -1
  223. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.jsx +1 -1
  224. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.scss +4 -0
  225. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CustomerInfo.jsx +30 -32
  226. package/src/modules/checkout/pages/frontStore/checkoutSuccess/ShippingNote.jsx +47 -0
  227. package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.jsx +12 -15
  228. package/src/modules/checkout/pages/frontStore/checkoutSuccess/route.json +2 -1
  229. package/src/modules/checkout/services/cart/Cart.js +31 -27
  230. package/src/modules/checkout/services/cart/registerCartBaseFields.js +133 -41
  231. package/src/modules/checkout/services/cart/registerCartItemBaseFields.js +300 -374
  232. package/src/modules/checkout/services/toPrice.js +1 -1
  233. package/src/modules/checkout/tests/basicSetup.js +85 -0
  234. package/src/modules/checkout/tests/coupons.js +82 -0
  235. package/src/modules/checkout/tests/products.js +67 -0
  236. package/src/modules/checkout/tests/taxRates.js +3 -0
  237. package/src/modules/checkout/tests/unit/discountAmount.test.js +60 -0
  238. package/src/modules/checkout/tests/unit/grandTotal.test.js +83 -0
  239. package/src/modules/checkout/tests/unit/lineTotal.test.js +90 -0
  240. package/src/modules/checkout/tests/unit/lineTotalWithDiscount.test.js +103 -0
  241. package/src/modules/checkout/tests/unit/productPrice.test.js +67 -0
  242. package/src/modules/checkout/tests/unit/subTotal.test.js +85 -0
  243. package/src/modules/checkout/tests/unit/subTotalWithDiscount.test.js +117 -0
  244. package/src/modules/checkout/tests/unit/taxAmount.test.js +67 -0
  245. package/src/modules/checkout/tests/unit/taxAmountRounding.test.js +277 -0
  246. package/src/modules/cms/api/createWidget/[context]bodyParser[auth].js +5 -0
  247. package/src/modules/cms/api/createWidget/createWidget[finish].js +17 -0
  248. package/src/modules/cms/api/createWidget/finish[apiResponse].js +27 -0
  249. package/src/modules/cms/api/createWidget/payloadSchema.json +18 -0
  250. package/src/modules/cms/api/createWidget/route.json +5 -0
  251. package/src/modules/cms/api/deleteWidget/deleteWidget.js +27 -0
  252. package/src/modules/cms/api/deleteWidget/route.json +5 -0
  253. package/src/modules/cms/api/updateWidget/[context]bodyParser[auth].js +5 -0
  254. package/src/modules/cms/api/updateWidget/finish[apiResponse].js +27 -0
  255. package/src/modules/cms/api/updateWidget/payloadSchema.json +18 -0
  256. package/src/modules/cms/api/updateWidget/route.json +5 -0
  257. package/src/modules/cms/api/updateWidget/updateWidget[finish].js +17 -0
  258. package/src/modules/cms/bootstrap.js +223 -3
  259. package/src/modules/cms/graphql/types/CmsPage/CmsPage.graphql +1 -2
  260. package/src/modules/cms/graphql/types/CmsPage/CmsPage.resolvers.js +35 -1
  261. package/src/modules/cms/graphql/types/Widget/Widget.graphql +91 -0
  262. package/src/modules/cms/graphql/types/Widget/Widget.resolvers.js +142 -0
  263. package/src/modules/cms/migration/Version-1.1.0.js +22 -0
  264. package/src/modules/cms/migration/Version-1.1.1.js +103 -0
  265. package/src/modules/cms/pages/admin/adminNotFound/NotFound.jsx +4 -4
  266. package/src/modules/cms/pages/admin/all/CmsMenuGroup.jsx +12 -4
  267. package/src/modules/cms/pages/admin/all/Notification.scss +1 -1
  268. package/src/modules/cms/pages/admin/all/search/NoResult.jsx +2 -2
  269. package/src/modules/cms/pages/admin/all/search/Results.jsx +3 -3
  270. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.jsx +7 -9
  271. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/General.jsx +3 -3
  272. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Seo.jsx +1 -1
  273. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Status.jsx +40 -0
  274. package/src/modules/cms/pages/admin/cmsPageGrid/Grid.jsx +3 -4
  275. package/src/modules/cms/pages/admin/dashboard/Layout.jsx +3 -3
  276. package/src/modules/cms/pages/admin/widgetEdit/WidgetForm.jsx +52 -0
  277. package/src/modules/cms/pages/admin/widgetEdit/index.js +36 -0
  278. package/src/modules/cms/pages/admin/widgetEdit/route.json +4 -0
  279. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.jsx +69 -0
  280. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.scss +7 -0
  281. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/General.jsx +185 -0
  282. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/PageHeading.jsx +37 -0
  283. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/Setting.jsx +55 -0
  284. package/src/modules/cms/pages/admin/widgetGrid/Grid.jsx +415 -0
  285. package/src/modules/cms/pages/admin/widgetGrid/Heading.jsx +11 -0
  286. package/src/modules/cms/pages/admin/widgetGrid/NewWidgetButton.jsx +52 -0
  287. package/src/modules/cms/pages/admin/widgetGrid/index.js +15 -0
  288. package/src/modules/cms/pages/admin/widgetGrid/route.json +4 -0
  289. package/src/modules/cms/pages/admin/widgetNew/WidgetNewForm.jsx +60 -0
  290. package/src/modules/cms/pages/admin/widgetNew/index.js +11 -0
  291. package/src/modules/cms/pages/admin/widgetNew/route.json +4 -0
  292. package/src/modules/cms/pages/admin/widgetNew/typeValidate.js +21 -0
  293. package/src/modules/cms/pages/frontStore/all/Breadcrumb.jsx +1 -1
  294. package/src/modules/cms/pages/frontStore/all/Footer.jsx +2 -2
  295. package/src/modules/cms/pages/frontStore/all/Layout.jsx +3 -3
  296. package/src/modules/cms/pages/frontStore/all/Layout.scss +13 -0
  297. package/src/modules/cms/pages/frontStore/all/Logo.jsx +2 -2
  298. package/src/modules/cms/pages/frontStore/all/Logo.scss +2 -4
  299. package/src/modules/cms/pages/frontStore/all/Notification.scss +1 -1
  300. package/src/modules/cms/pages/frontStore/cmsPageView/Layout.jsx +2 -2
  301. package/src/modules/cms/pages/frontStore/cmsPageView/View.jsx +5 -3
  302. package/src/modules/cms/pages/frontStore/cmsPageView/index.js +6 -12
  303. package/src/modules/cms/pages/frontStore/cmsPageView/route.json +2 -1
  304. package/src/modules/cms/pages/frontStore/homepage/route.json +2 -1
  305. package/src/modules/cms/pages/frontStore/notFound/NotFound.jsx +4 -4
  306. package/src/modules/cms/pages/frontStore/notFound/route.json +2 -1
  307. package/src/modules/cms/pages/frontStore/staticAsset/[context]staticAssets[auth].js +1 -1
  308. package/src/modules/cms/services/CMSPageCollection.js +10 -10
  309. package/src/modules/cms/services/WidgetCollection.js +62 -0
  310. package/src/modules/cms/services/getWidgetsBaseQuery.js +7 -0
  311. package/src/modules/cms/services/page/createPage.js +1 -2
  312. package/src/modules/cms/services/page/pageDataSchema.json +0 -4
  313. package/src/modules/cms/services/registerDefaultWidgetCollectionFilters.js +62 -0
  314. package/src/modules/cms/services/tailwind.admin.config.js +22 -107
  315. package/src/modules/cms/services/tailwind.frontStore.config.js +23 -108
  316. package/src/modules/cms/services/widget/createWidget.js +73 -0
  317. package/src/modules/cms/services/widget/deleteWidget.js +49 -0
  318. package/src/modules/cms/services/widget/loadWidgetInstances.js +54 -0
  319. package/src/modules/cms/services/widget/updateWidget.js +86 -0
  320. package/src/modules/cms/services/widget/widgetDataSchema.json +29 -0
  321. package/src/modules/cod/pages/admin/paymentSetting/CODSetting.jsx +2 -2
  322. package/src/modules/cod/pages/frontStore/checkout/CashOnDelivery.jsx +1 -1
  323. package/src/modules/customer/bootstrap.js +21 -4
  324. package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.jsx +3 -3
  325. package/src/modules/customer/pages/admin/customerEdit+customerNew/OrderHistory.jsx +1 -1
  326. package/src/modules/customer/pages/admin/customerGrid/Grid.jsx +3 -3
  327. package/src/modules/customer/pages/frontStore/account/AccountDetails.jsx +3 -3
  328. package/src/modules/customer/pages/frontStore/account/Layout.jsx +3 -3
  329. package/src/modules/customer/pages/frontStore/account/OrderHistory.jsx +1 -1
  330. package/src/modules/customer/pages/frontStore/account/route.json +2 -1
  331. package/src/modules/customer/pages/frontStore/login/LoginForm.jsx +2 -2
  332. package/src/modules/customer/pages/frontStore/login/route.json +2 -1
  333. package/src/modules/customer/pages/frontStore/register/RegisterForm.jsx +2 -2
  334. package/src/modules/customer/pages/frontStore/register/route.json +2 -1
  335. package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.jsx +2 -2
  336. package/src/modules/customer/pages/frontStore/resetPasswordPage/route.json +2 -1
  337. package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.jsx +3 -3
  338. package/src/modules/customer/pages/frontStore/updatePasswordPage/route.json +2 -1
  339. package/src/modules/customer/services/CustomerCollection.js +10 -10
  340. package/src/modules/customer/services/CustomerGroupCollection.js +10 -10
  341. package/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +238 -6
  342. package/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js +12 -8
  343. package/src/modules/oms/bootstrap.js +87 -3
  344. package/src/modules/oms/graphql/types/Order/Order.graphql +11 -2
  345. package/src/modules/oms/graphql/types/Order/Order.resolvers.js +7 -1
  346. package/src/modules/oms/pages/admin/dashboard/Bestsellers.jsx +2 -2
  347. package/src/modules/oms/pages/admin/dashboard/Lifetimesales.jsx +5 -5
  348. package/src/modules/oms/pages/admin/orderEdit/AddTrackingButton.jsx +1 -1
  349. package/src/modules/oms/pages/admin/orderEdit/Items.jsx +7 -7
  350. package/src/modules/oms/pages/admin/orderEdit/Layout.jsx +3 -3
  351. package/src/modules/oms/pages/admin/orderEdit/Payment.jsx +6 -6
  352. package/src/modules/oms/pages/admin/orderEdit/ShipButton.jsx +1 -1
  353. package/src/modules/oms/pages/admin/orderGrid/Grid.jsx +3 -3
  354. package/src/modules/oms/services/OrderCollection.js +10 -10
  355. package/src/modules/paypal/api/paypalCreateOrder/[bodyParser]createOrder.js +55 -24
  356. package/src/modules/paypal/pages/admin/paymentSetting/PaypalSetting.jsx +6 -6
  357. package/src/modules/paypal/pages/frontStore/checkout/Paypal.jsx +3 -4
  358. package/src/modules/promotion/bootstrap.js +19 -101
  359. package/src/modules/promotion/pages/admin/couponEdit+couponNew/DiscountType.jsx +1 -1
  360. package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.jsx +5 -5
  361. package/src/modules/promotion/pages/admin/couponGrid/Grid.jsx +3 -3
  362. package/src/modules/promotion/pages/frontStore/cart/Coupon.jsx +2 -2
  363. package/src/modules/promotion/services/CouponCollection.js +10 -10
  364. package/src/modules/promotion/services/couponValidator.js +4 -7
  365. package/src/modules/promotion/services/discountCalculator.js +2 -7
  366. package/src/modules/promotion/services/registerCartItemPromotionFields.js +80 -0
  367. package/src/modules/promotion/services/registerCartPromotionFields.js +128 -0
  368. package/src/modules/promotion/services/registerDefaultCalculators.js +48 -20
  369. package/src/modules/promotion/services/registerDefaultValidators.js +16 -4
  370. package/src/modules/setting/pages/admin/paymentSetting/PaymentSetting.jsx +2 -2
  371. package/src/modules/setting/pages/admin/storeSetting/StoreSetting.jsx +98 -35
  372. package/src/modules/stripe/pages/admin/paymentSetting/StripePayment.jsx +5 -5
  373. package/src/modules/stripe/pages/frontStore/checkout/Stripe.jsx +1 -1
  374. package/src/modules/tax/bootstrap.js +40 -5
  375. package/src/modules/tax/graphql/types/Product/Price/ProductPrice.resolvers.js +6 -39
  376. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.graphql +1 -2
  377. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.resolvers.js +1 -8
  378. package/src/modules/tax/pages/admin/taxSetting/TaxSetting.jsx +4 -4
  379. package/src/modules/tax/services/TaxClassCollection.js +10 -10
  380. package/src/modules/tax/services/calculateTaxAmount.js +12 -9
  381. package/src/modules/tax/services/registerCartItemTaxPercentField.js +76 -0
  382. package/src/modules/auth/services/adminSessionMiddleware.js +0 -0
  383. package/src/modules/catalog/pages/frontStore/homepage/FeaturedCategories.jsx +0 -58
  384. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/StatusAndLayout.jsx +0 -61
  385. package/src/modules/cms/pages/frontStore/all/Menu.jsx +0 -46
  386. package/src/modules/cms/pages/frontStore/all/Menu.scss +0 -7
  387. package/src/modules/cms/pages/frontStore/all/MobileMenu.jsx +0 -73
  388. package/src/modules/cms/pages/frontStore/all/MobileMenu.scss +0 -35
  389. package/src/modules/cms/pages/frontStore/homepage/MainBanner.jsx +0 -31
  390. package/src/modules/cms/pages/frontStore/homepage/MainBanner.scss +0 -48
@@ -1,3 +1,5 @@
1
+ process.env.ALLOW_CONFIG_MUTATIONS = true;
2
+ const config = require('config');
1
3
  const { existsSync, rmSync, mkdirSync } = require('fs');
2
4
  const path = require('path');
3
5
  const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers');
@@ -11,8 +13,14 @@ const {
11
13
  const { buildEntry } = require('@evershop/evershop/bin/lib/buildEntry');
12
14
  const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules');
13
15
  const { error } = require('@evershop/evershop/src/lib/log/logger');
16
+ const { lockHooks } = require('@evershop/evershop/src/lib/util/hookable');
17
+ const { lockRegistry } = require('@evershop/evershop/src/lib/util/registry');
18
+ const {
19
+ validateConfiguration
20
+ } = require('@evershop/evershop/src/lib/util/validateConfiguration');
14
21
  const { compile } = require('./complie');
15
22
  const { getEnabledExtensions } = require('../extension');
23
+ const { loadBootstrapScript } = require('../lib/bootstrap/bootstrap');
16
24
  require('dotenv').config();
17
25
  /* Loading modules and initilize routes, components */
18
26
  const modules = [...getCoreModules(), ...getEnabledExtensions()];
@@ -38,6 +46,22 @@ if (existsSync(path.resolve(CONSTANTS.BUILDPATH))) {
38
46
  }
39
47
 
40
48
  (async () => {
49
+ /** Loading bootstrap script from modules */
50
+ try {
51
+ // eslint-disable-next-line no-restricted-syntax
52
+ for (const module of modules) {
53
+ await loadBootstrapScript(module);
54
+ }
55
+ lockHooks();
56
+ lockRegistry();
57
+ // Get the configuration (nodeconfig)
58
+ validateConfiguration(config);
59
+ } catch (e) {
60
+ error(e);
61
+ process.exit(0);
62
+ }
63
+ process.env.ALLOW_CONFIG_MUTATIONS = false;
64
+
41
65
  const routes = getRoutes();
42
66
  await buildEntry(routes.filter((r) => isBuildRequired(r)));
43
67
 
@@ -5,7 +5,7 @@ const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig');
5
5
  const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules');
6
6
  const { warning } = require('@evershop/evershop/src/lib/log/logger');
7
7
 
8
- let extensions = [];
8
+ let extensions;
9
9
 
10
10
  function loadExtensions() {
11
11
  const coreModules = getCoreModules();
@@ -42,7 +42,7 @@ function loadExtensions() {
42
42
  }
43
43
 
44
44
  module.exports.getEnabledExtensions = function getEnabledExtensions() {
45
- if (extensions.length === 0) {
45
+ if (extensions === undefined) {
46
46
  extensions = loadExtensions();
47
47
  }
48
48
  return extensions;
@@ -78,10 +78,10 @@ exports.addDefaultMiddlewareFuncs = function addDefaultMiddlewareFuncs(
78
78
  }),
79
79
  secret: cookieSecret,
80
80
  cookie: {
81
- maxAge: 24 * 60 * 60 * 1000
81
+ maxAge: getConfig('system.session.maxAge', 24 * 60 * 60 * 1000)
82
82
  },
83
83
  resave: getConfig('system.session.resave', false),
84
- saveUninitialized: true
84
+ saveUninitialized: getConfig('system.session.saveUninitialized', true)
85
85
  };
86
86
 
87
87
  if (isProductionMode()) {
@@ -261,6 +261,11 @@ exports.addDefaultMiddlewareFuncs = function addDefaultMiddlewareFuncs(
261
261
  } else {
262
262
  middlewareFunc = route.webpackMiddleware;
263
263
  }
264
+ middlewareFunc.waitUntilValid(() => {
265
+ const { stats } = middlewareFunc.context;
266
+ const jsonWebpackStats = stats.toJson();
267
+ response.locals.jsonWebpackStats = jsonWebpackStats;
268
+ });
264
269
  // We need to run build for notFound route
265
270
  const notFoundRoute = routes.find((r) => r.id === 'notFound');
266
271
  const notFoundWebpackCompiler = notFoundRoute.webpackCompiler;
@@ -14,6 +14,9 @@ const {
14
14
  } = require('@evershop/evershop/src/lib/webpack/util/parseGraphql');
15
15
  const JSON5 = require('json5');
16
16
  const { error } = require('@evershop/evershop/src/lib/log/logger');
17
+ const {
18
+ getEnabledWidgets
19
+ } = require('@evershop/evershop/src/lib/util/getEnabledWidgets');
17
20
  /**
18
21
  * Only pass the page routes, not api routes
19
22
  */
@@ -21,6 +24,7 @@ module.exports.buildEntry = async function buildEntry(
21
24
  routes,
22
25
  clientOnly = false
23
26
  ) {
27
+ const widgets = getEnabledWidgets();
24
28
  await Promise.all(
25
29
  routes.map(async (route) => {
26
30
  const subPath = getRouteBuildPath(route);
@@ -70,6 +74,16 @@ module.exports.buildEntry = async function buildEntry(
70
74
  route.isAdmin ? 'HydrateAdmin' : 'HydrateFrontStore'
71
75
  }';
72
76
  `;
77
+ areas['*'] = areas['*'] || {};
78
+ widgets.forEach((widget) => {
79
+ areas['*'][widget.type] = {
80
+ id: widget.type,
81
+ sortOrder: widget.sortOrder || 0,
82
+ component: route.isAdmin
83
+ ? `---require('${widget.setting_component}')---`
84
+ : `---require('${widget.component}')---`
85
+ };
86
+ });
73
87
  contentClient += '\r\n';
74
88
  contentClient += `Area.defaultProps.components = ${inspect(areas, {
75
89
  depth: 5
@@ -93,6 +107,7 @@ module.exports.buildEntry = async function buildEntry(
93
107
  /** Build query */
94
108
  const query = `${JSON.stringify(parseGraphql(components))}`;
95
109
 
110
+ // Loop through the widgets config and add the query to the widgets
96
111
  let contentServer = `import React from 'react'; `;
97
112
  contentServer += '\r\n';
98
113
  contentServer += `import ReactDOM from 'react-dom'; `;
@@ -1,5 +1,5 @@
1
1
  const boxen = require('boxen');
2
- const { success } = require('@evershop/evershop/src/lib/log/logger');
2
+ const { green } = require('kleur');
3
3
  const normalizePort = require('./normalizePort');
4
4
 
5
5
  const port = normalizePort();
@@ -7,13 +7,16 @@ const port = normalizePort();
7
7
  * Event listener for HTTP server "listening" event.
8
8
  */
9
9
  module.exports = function onListening() {
10
- success(
11
- boxen(`Your website is running at "http://localhost:${port}"`, {
10
+ const message = boxen(
11
+ `Your website is running at "http://localhost:${port}"`,
12
+ {
12
13
  title: 'EverShop',
13
14
  titleAlignment: 'center',
14
15
  padding: 1,
15
16
  margin: 1,
16
17
  borderColor: 'green'
17
- })
18
+ }
18
19
  );
20
+ // eslint-disable-next-line no-console
21
+ console.log(green(message));
19
22
  };
@@ -1,4 +1,5 @@
1
1
  const http = require('http');
2
+ const config = require('config');
2
3
  const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler');
3
4
  const spawn = require('cross-spawn');
4
5
  const path = require('path');
@@ -6,6 +7,9 @@ const { error } = require('@evershop/evershop/src/lib/log/logger');
6
7
  const isDevelopmentMode = require('@evershop/evershop/src/lib/util/isDevelopmentMode');
7
8
  const { lockHooks } = require('@evershop/evershop/src/lib/util/hookable');
8
9
  const { lockRegistry } = require('@evershop/evershop/src/lib/util/registry');
10
+ const {
11
+ validateConfiguration
12
+ } = require('@evershop/evershop/src/lib/util/validateConfiguration');
9
13
  const { createApp } = require('./app');
10
14
  const normalizePort = require('./normalizePort');
11
15
  const onListening = require('./onListening');
@@ -30,6 +34,8 @@ module.exports.start = async function start(cb) {
30
34
  }
31
35
  lockHooks();
32
36
  lockRegistry();
37
+ // Get the configuration (nodeconfig)
38
+ validateConfiguration(config);
33
39
  } catch (e) {
34
40
  error(e);
35
41
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evershop/evershop",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "The React Ecommerce platform. Built with React and Postgres. Open-source and free. Fast and customizable.",
5
5
  "files": [
6
6
  "bin",
@@ -40,6 +40,12 @@
40
40
  "@babel/preset-react": "^7.16.0",
41
41
  "@ckeditor/ckeditor5-build-classic": "^36.0.1",
42
42
  "@ckeditor/ckeditor5-react": "^5.1.0",
43
+ "@editorjs/editorjs": "^2.30.2",
44
+ "@editorjs/header": "^2.8.7",
45
+ "@editorjs/list": "^1.10.0",
46
+ "@editorjs/quote": "^2.6.0",
47
+ "@editorjs/raw": "^2.5.0",
48
+ "@evershop/editorjs-image": "^1.0.0",
43
49
  "@evershop/postgres-query-builder": "^1.2.0",
44
50
  "@graphql-tools/load-files": "^6.6.1",
45
51
  "@graphql-tools/merge": "^8.3.5",
@@ -50,6 +56,7 @@
50
56
  "@shopify/draggable": "^1.0.0-beta.8",
51
57
  "@stripe/react-stripe-js": "^1.5.0",
52
58
  "@stripe/stripe-js": "^1.18.0",
59
+ "@tailwindcss/typography": "^0.5.13",
53
60
  "ajv": "^8.12.0",
54
61
  "ajv-errors": "^3.0.0",
55
62
  "ajv-formats": "^2.1.1",
@@ -82,6 +89,7 @@
82
89
  "html-webpack-plugin": "^5.5.0",
83
90
  "immer": "^9.0.3",
84
91
  "is-object": "^1.0.2",
92
+ "is-resolvable": "^1.1.0",
85
93
  "jsesc": "^3.0.2",
86
94
  "json5": "^2.2.1",
87
95
  "kleur": "3.0.3",
@@ -32,16 +32,11 @@ function CategoryItem({ category, selectedCategory, setSelectedCategory }) {
32
32
  const { data, fetching, error } = result;
33
33
 
34
34
  if (error) {
35
- return (
36
- <p>
37
- Oh no...
38
- {error.message}
39
- </p>
40
- );
35
+ return <p className="text-critical">{error.message}</p>;
41
36
  }
42
37
  return (
43
38
  <li>
44
- <div className="flex justify-start gap-1 items-center">
39
+ <div className="flex justify-start gap-4 items-center">
45
40
  {!category.children && (
46
41
  <a
47
42
  href="#"
@@ -31,22 +31,29 @@ function CategoryTree({ selectedCategory, setSelectedCategory }) {
31
31
  const { data, fetching, error } = result;
32
32
 
33
33
  if (fetching) {
34
- return <Spinner width={30} height={30} />;
34
+ return (
35
+ <div className="category-tree-container absolute top-full left-0 right-0 border rounded">
36
+ <Spinner width={30} height={30} />
37
+ </div>
38
+ );
35
39
  }
36
40
  if (error) {
37
41
  return (
38
- <p>
39
- Oh no...
40
- {error.message}
41
- </p>
42
+ <div className="category-tree-container absolute top-full left-0 right-0 border rounded">
43
+ <p className="text-critical">{error.message}</p>
44
+ </div>
42
45
  );
43
46
  }
44
47
  if (data.categories.items.length === 0) {
45
- return <div>There is no category</div>;
48
+ return (
49
+ <div className="category-tree-container absolute top-full left-0 right-0 border rounded">
50
+ <div>There is no category</div>
51
+ </div>
52
+ );
46
53
  }
47
54
 
48
55
  return (
49
- <div>
56
+ <div className="category-tree-container absolute top-full left-0 right-0 border rounded">
50
57
  <ul className="category-tree">
51
58
  {data.categories.items.map((category) => (
52
59
  <CategoryItem
@@ -2,4 +2,14 @@
2
2
  ul {
3
3
  margin-left: 20px;
4
4
  }
5
+ }
6
+ .category-tree-container {
7
+ background-color: #fff;
8
+ z-index: 100;
9
+ border-color: #c9cccf;
10
+ padding:10px;
11
+ box-sizing: border-box;
12
+ max-height: 250px;
13
+ overflow-y: auto;
14
+ overflow-x: hidden;
5
15
  }
@@ -20,7 +20,7 @@ export function CreateVariant({
20
20
 
21
21
  return (
22
22
  <div>
23
- <div className="mt-2">
23
+ <div className="mt-8">
24
24
  <Button
25
25
  title="Add Variant"
26
26
  onAction={() => {
@@ -46,7 +46,7 @@ export function CreateVariant({
46
46
  </Card.Session>
47
47
  <Card.Session>
48
48
  <div className="flex justify-end">
49
- <div className="grid grid-cols-2 gap-1">
49
+ <div className="grid grid-cols-2 gap-4">
50
50
  <SubmitButton
51
51
  productId={productId}
52
52
  attributes={variantGroup.attributes}
@@ -114,7 +114,7 @@ export function CreateVariantGroup({ createVariantGroupApi, setGroup }) {
114
114
  }}
115
115
  />
116
116
  ))}
117
- <div className="mt-2">
117
+ <div className="mt-8">
118
118
  <a
119
119
  className="text-interactive hover:underline"
120
120
  href="#"
@@ -45,7 +45,7 @@ export function EditVariant({
45
45
  </Card.Session>
46
46
  <Card.Session>
47
47
  <div className="flex justify-end">
48
- <div className="grid grid-cols-2 gap-1">
48
+ <div className="grid grid-cols-2 gap-4">
49
49
  <Button
50
50
  title="Save"
51
51
  variant="primary"
@@ -11,8 +11,8 @@ export function New({ createVariantGroupApi, setGroup }) {
11
11
  {action === undefined && (
12
12
  <div>
13
13
  <div className="justify-center text-center">
14
- <div className="mb-4">
15
- <span className="pr-1">
14
+ <div className="mb-16">
15
+ <span className="pr-4">
16
16
  This product has some variants like color or size?
17
17
  </span>
18
18
  <a
@@ -30,7 +30,7 @@ export function Search({ addVariant, variants }) {
30
30
  };
31
31
 
32
32
  return (
33
- <div className="flex justify-between mt-1">
33
+ <div className="flex justify-between mt-4">
34
34
  <div className="self-center">
35
35
  <div className="autocomplete-search">
36
36
  <Input
@@ -174,7 +174,7 @@ export function SearchModal({ keyword, variants, addVariant, searchAPI }) {
174
174
  </div>
175
175
  )}
176
176
  {potentialVariants.length <= 0 && (
177
- <div className="flex justify-center p-1">
177
+ <div className="flex justify-center p-4">
178
178
  There is no product to show
179
179
  </div>
180
180
  )}
@@ -62,8 +62,8 @@ export function VariantModal({
62
62
  return <p className="text-critical">{error.message}</p>;
63
63
  }
64
64
  return (
65
- <div className="variant-item pb-15 border-b border-solid border-divider mb-15 last:border-b-0 last:pb-0">
66
- <div className="grid grid-cols-2 gap-x-1">
65
+ <div className="variant-item pb-6 border-b border-solid border-divider mb-6 last:border-b-0 last:pb-0">
66
+ <div className="grid grid-cols-2 gap-x-4">
67
67
  <div className="col-span-1">
68
68
  <ProductMediaManager
69
69
  id="images"
@@ -72,9 +72,9 @@ export function VariantModal({
72
72
  />
73
73
  </div>
74
74
  <div className="col-span-1">
75
- <div className="grid grid-cols-2 gap-x-1 border-b border-divider pb-15 mb-15">
75
+ <div className="grid grid-cols-2 gap-x-4 border-b border-divider pb-6 mb-6">
76
76
  {data?.attributes?.items.map((a, index) => (
77
- <div key={a.attributeId} className="mt-1 col">
77
+ <div key={a.attributeId} className="mt-4 col">
78
78
  <div>
79
79
  <label>{a.attributeName}</label>
80
80
  </div>
@@ -106,7 +106,7 @@ export function VariantModal({
106
106
  </div>
107
107
  ))}
108
108
  </div>
109
- <div className="grid grid-cols-3 gap-x-1 border-b border-divider pb-15 mb-15">
109
+ <div className="grid grid-cols-3 gap-x-4 border-b border-divider pb-6 mb-6">
110
110
  <div>
111
111
  <div>SKU</div>
112
112
  <Field
@@ -128,7 +128,7 @@ export function VariantModal({
128
128
  />
129
129
  </div>
130
130
  </div>
131
- <div className="grid grid-cols-3 gap-x-1">
131
+ <div className="grid grid-cols-3 gap-x-4">
132
132
  <div>
133
133
  <div>Status</div>
134
134
  <Field
@@ -5,7 +5,7 @@ export default function ThumbnailRow({ src, name }) {
5
5
  return (
6
6
  <td>
7
7
  <div
8
- className="grid-thumbnail text-border border border-divider p-075 rounded flex justify-center"
8
+ className="grid-thumbnail text-border border border-divider p-3 rounded flex justify-center"
9
9
  style={{ width: '6rem', height: '6rem' }}
10
10
  >
11
11
  {src && <img className="self-center" src={src} alt={name} />}
@@ -10,11 +10,11 @@ function Method({ method, getZones }) {
10
10
  return (
11
11
  <>
12
12
  <>
13
- <td className="border-none py-1">{method.name}</td>
14
- <td className="border-none py-1">
13
+ <td className="border-none py-4">{method.name}</td>
14
+ <td className="border-none py-4">
15
15
  {method.isEnabled ? 'Enabled' : 'Disabled'}
16
16
  </td>
17
- <td className="border-none py-1">
17
+ <td className="border-none py-4">
18
18
  {method.cost?.text || (
19
19
  <a
20
20
  href="#"
@@ -28,14 +28,14 @@ function Method({ method, getZones }) {
28
28
  </a>
29
29
  )}
30
30
  </td>
31
- <td className="border-none py-1">
31
+ <td className="border-none py-4">
32
32
  {method.conditionType
33
33
  ? `${method.min || 0} <= ${method.conditionType} <= ${
34
34
  method.max || '∞'
35
35
  }`
36
36
  : 'None'}
37
37
  </td>
38
- <td className="border-none py-1">
38
+ <td className="border-none py-4">
39
39
  <a
40
40
  href="#"
41
41
  className="text-interactive"
@@ -48,7 +48,7 @@ function Method({ method, getZones }) {
48
48
  </a>
49
49
  <a
50
50
  href="#"
51
- className="text-critical ml-2"
51
+ className="text-critical ml-8"
52
52
  onClick={async (e) => {
53
53
  e.preventDefault();
54
54
  try {
@@ -29,7 +29,7 @@ function Condition({ method }) {
29
29
  const [type, setType] = React.useState(method?.conditionType || 'price');
30
30
  return (
31
31
  <div>
32
- <div className="mb-1">
32
+ <div className="mb-4">
33
33
  <Radio
34
34
  name="condition_type"
35
35
  options={[
@@ -40,7 +40,7 @@ function Condition({ method }) {
40
40
  value={type}
41
41
  />
42
42
  </div>
43
- <div className="grid grid-cols-2 gap-2">
43
+ <div className="grid grid-cols-2 gap-8">
44
44
  <div>
45
45
  <Field
46
46
  name="min"
@@ -175,7 +175,7 @@ function MethodForm({ saveMethodApi, closeModal, getZones, method }) {
175
175
  value={shippingMethod}
176
176
  />
177
177
  ) : (
178
- <div className="flex gap-1 justify-start items-center">
178
+ <div className="flex gap-4 justify-start items-center">
179
179
  <Input
180
180
  name="name"
181
181
  type="text"
@@ -293,7 +293,7 @@ function MethodForm({ saveMethodApi, closeModal, getZones, method }) {
293
293
  {hasCondition && <Condition method={method} />}
294
294
  </Card.Session>
295
295
  <Card.Session>
296
- <div className="flex justify-end gap-1">
296
+ <div className="flex justify-end gap-4">
297
297
  <Button
298
298
  title="Cancel"
299
299
  variant="secondary"
@@ -7,7 +7,7 @@ import MethodForm from '@components/admin/checkout/shippingSetting/MethodForm';
7
7
  export function Methods({ getZones, methods, addMethodApi }) {
8
8
  const modal = useModal();
9
9
  return (
10
- <div className="my-2">
10
+ <div className="my-8">
11
11
  <table className="border-collapse divide-y">
12
12
  <thead>
13
13
  <tr>
@@ -19,12 +19,12 @@ export function Methods({ getZones, methods, addMethodApi }) {
19
19
  </tr>
20
20
  </thead>
21
21
  {methods.map((method) => (
22
- <tr key={method.methodId} className="border-divider py-2">
22
+ <tr key={method.methodId} className="border-divider py-8">
23
23
  <Method method={method} getZones={getZones} />
24
24
  </tr>
25
25
  ))}
26
26
  </table>
27
- <div className="mt-1">
27
+ <div className="mt-4">
28
28
  <a
29
29
  href="#"
30
30
  className="text-interactive"
@@ -11,7 +11,7 @@ export default function PriceBasedPrice({ lines }) {
11
11
  }))
12
12
  );
13
13
  return (
14
- <div className="my-2">
14
+ <div className="my-8">
15
15
  <table className="border-collapse divide-y">
16
16
  <thead>
17
17
  <tr>
@@ -23,7 +23,7 @@ export default function PriceBasedPrice({ lines }) {
23
23
  <tbody>
24
24
  {rows.map((row, index) => (
25
25
  // Create a random key for each row
26
- <tr key={row.key} className="border-divider py-2">
26
+ <tr key={row.key} className="border-divider py-8">
27
27
  <td className="border-none">
28
28
  <Field
29
29
  name={`price_based_cost[${index}][min_price]`}
@@ -11,7 +11,7 @@ export default function WeightBasedPrice({ lines }) {
11
11
  }))
12
12
  );
13
13
  return (
14
- <div className="my-2">
14
+ <div className="my-8">
15
15
  <table className="border-collapse divide-y">
16
16
  <thead>
17
17
  <tr>
@@ -23,7 +23,7 @@ export default function WeightBasedPrice({ lines }) {
23
23
  <tbody>
24
24
  {rows.map((row, index) => (
25
25
  // Create a random key for each row
26
- <tr key={row.key} className="border-divider py-2">
26
+ <tr key={row.key} className="border-divider py-8">
27
27
  <td className="border-none">
28
28
  <Field
29
29
  name={`weight_based_cost[${index}][min_weight]`}
@@ -13,9 +13,9 @@ function Zone({ zone, countries, getZones }) {
13
13
  return (
14
14
  <Card.Session
15
15
  title={
16
- <div className="flex justify-between items-center gap-2">
16
+ <div className="flex justify-between items-center gap-8">
17
17
  <div>{zone.name}</div>
18
- <div className="flex justify-between gap-2">
18
+ <div className="flex justify-between gap-8">
19
19
  <a
20
20
  href="#"
21
21
  className="text-interactive"
@@ -58,11 +58,11 @@ function Zone({ zone, countries, getZones }) {
58
58
  }
59
59
  >
60
60
  <div className="divide-y border rounded border-divider">
61
- <div className="flex justify-start items-center border-divider mt-2">
62
- <div className="p-2">
61
+ <div className="flex justify-start items-center border-divider mt-8">
62
+ <div className="p-8">
63
63
  <MapIcon width={25} height={25} fill="#008060" />
64
64
  </div>
65
- <div className="flex-grow px-1">
65
+ <div className="flex-grow px-4">
66
66
  <div>
67
67
  <b>{zone.country?.name || 'Worldwide'}</b>
68
68
  </div>
@@ -75,8 +75,8 @@ function Zone({ zone, countries, getZones }) {
75
75
  </div>
76
76
  </div>
77
77
  </div>
78
- <div className="flex justify-start items-center border-divider mt-2">
79
- <div className="flex-grow px-1">
78
+ <div className="flex justify-start items-center border-divider mt-8">
79
+ <div className="flex-grow px-4">
80
80
  <Methods
81
81
  methods={zone.methods}
82
82
  getZones={getZones}
@@ -84,7 +84,7 @@ function ZoneForm({
84
84
  />
85
85
  </Card.Session>
86
86
  <Card.Session>
87
- <div className="flex justify-end gap-1">
87
+ <div className="flex justify-end gap-4">
88
88
  <Button title="Cancel" variant="secondary" onAction={closeModal} />
89
89
  <Button
90
90
  title="Save"
@@ -9,7 +9,7 @@ function Card({ title, actions = [], subdued = false, children }) {
9
9
  <div className="flex justify-between card-header">
10
10
  {title && <h2 className="card-title">{title}</h2>}
11
11
  {actions.length > 0 && (
12
- <div className="flex space-x-075">
12
+ <div className="flex space-x-3">
13
13
  {actions.map((action, index) => {
14
14
  const className = {
15
15
  primary: 'text-primary',
@@ -69,10 +69,10 @@ const Session = function Session({ actions = [], title, children }) {
69
69
  return (
70
70
  <div className="card-section border-b box-border">
71
71
  {(title || actions.length > 0) && (
72
- <div className="flex justify-between card-section-header mb-1">
72
+ <div className="flex justify-between card-section-header mb-4">
73
73
  {title && <h3 className="card-session-title">{title}</h3>}
74
74
  {actions.length > 0 && (
75
- <div className="flex space-x-075">
75
+ <div className="flex space-x-3">
76
76
  {actions.map((action, index) => {
77
77
  const className = {
78
78
  primary: 'text-primary',
@@ -8,7 +8,7 @@ function BreadcrumbIcon({ backUrl }) {
8
8
  return (
9
9
  <a
10
10
  href={backUrl}
11
- className="breadcrum-icon border block border-border rounded mr-075"
11
+ className="breadcrum-icon border block border-border rounded mr-3"
12
12
  >
13
13
  <span className="flex items-center justify-center">
14
14
  <svg
@@ -51,7 +51,7 @@ function PageHeading({ backUrl, heading }) {
51
51
 
52
52
  return (
53
53
  <div className="page-heading flex justify-between items-center">
54
- <div className="flex justify-start space-x-1 items-center">
54
+ <div className="flex justify-start space-x-4 items-center">
55
55
  <Area
56
56
  id="pageHeadingLeft"
57
57
  noOuter
@@ -75,7 +75,7 @@ function PageHeading({ backUrl, heading }) {
75
75
  ]}
76
76
  />
77
77
  </div>
78
- <div className="flex justify-end space-x-1 items-center">
78
+ <div className="flex justify-end space-x-4 items-center">
79
79
  <Area id="pageHeadingRight" noOuter coreComponents={[]} />
80
80
  </div>
81
81
  </div>