@lmnto/h-mall-shared 1.0.1

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 (262) hide show
  1. package/app.css +457 -0
  2. package/bitbucket-pipelines.yml +223 -0
  3. package/package.json +43 -0
  4. package/public/gif/balloon.gif +0 -0
  5. package/public/gif/gift.gif +0 -0
  6. package/public/img/ai-dialog.png +0 -0
  7. package/public/img/ai-x1-banner.png +0 -0
  8. package/public/img/ai-x1.png +0 -0
  9. package/public/img/alert-Icon.png +0 -0
  10. package/public/img/aleta-payment-kyc-require.png +0 -0
  11. package/public/img/aleta-payment-pending.png +0 -0
  12. package/public/img/aleta-payment-rejected.png +0 -0
  13. package/public/img/aleta-payment-subscription-required.png +0 -0
  14. package/public/img/boost-banner-bg.png +0 -0
  15. package/public/img/boost-banner-right.png +0 -0
  16. package/public/img/boost-banner.png +0 -0
  17. package/public/img/boost-dialog-bg.png +0 -0
  18. package/public/img/boostPower.png +0 -0
  19. package/public/img/boostTooltip.png +0 -0
  20. package/public/img/brand-icon.svg +23 -0
  21. package/public/img/brand-text.svg +11 -0
  22. package/public/img/card-icon.png +0 -0
  23. package/public/img/cashback-Icon.png +0 -0
  24. package/public/img/crown.svg +9 -0
  25. package/public/img/empty-box.png +0 -0
  26. package/public/img/gen3-dialog.png +0 -0
  27. package/public/img/gen3-home-banner-bg.png +0 -0
  28. package/public/img/gen3-image.png +0 -0
  29. package/public/img/gift.png +0 -0
  30. package/public/img/img-placeholder-illustration.svg +6 -0
  31. package/public/img/logo.svg +31 -0
  32. package/public/img/offerBanner.png +0 -0
  33. package/public/img/pagenotfound.png +0 -0
  34. package/public/img/partial-pay-payment-successful.png +0 -0
  35. package/public/img/phoneShippingBG.png +0 -0
  36. package/public/img/placeholder-image.jpg +0 -0
  37. package/public/img/powerIcon.png +0 -0
  38. package/public/img/product-01.png +0 -0
  39. package/public/img/product-02.jpg +0 -0
  40. package/public/img/product-03.jpg +0 -0
  41. package/public/img/product-04.jpg +0 -0
  42. package/public/img/product-05.png +0 -0
  43. package/public/img/product-06.png +0 -0
  44. package/public/img/profile-avatar.svg +12 -0
  45. package/public/img/promotion-icon.png +0 -0
  46. package/public/img/session-expired.png +0 -0
  47. package/public/img/shipping-alert-icon.png +0 -0
  48. package/public/img/shippingIcon.png +0 -0
  49. package/public/img/smart-pay-banner-how.png +0 -0
  50. package/public/img/smart-pay-banner-own.png +0 -0
  51. package/public/img/smart-pay-chose.png +0 -0
  52. package/public/img/smart-pay-easy.png +0 -0
  53. package/public/img/smart-pay-payment.png +0 -0
  54. package/public/img/smart-plan-fire.gif +0 -0
  55. package/public/img/smart-plan-sparkle.gif +0 -0
  56. package/public/img/special.png +0 -0
  57. package/public/img/specialOfferBg.png +0 -0
  58. package/public/img/stop-shipping-banner.png +0 -0
  59. package/public/img/subscriptionBanner.png +0 -0
  60. package/public/img/subscriptionIcon.png +0 -0
  61. package/public/img/successIcon.png +0 -0
  62. package/public/img/wallet-icon.png +0 -0
  63. package/public/img/world-wide-shipping.png +0 -0
  64. package/public/next.svg +1 -0
  65. package/public/vercel.svg +1 -0
  66. package/shared/components/AddressFormComponent.tsx +215 -0
  67. package/shared/components/AddressShippingFormComponent.tsx +223 -0
  68. package/shared/components/AiPaymentDialog.tsx +95 -0
  69. package/shared/components/AppLoadingComponent.tsx +15 -0
  70. package/shared/components/AppLoadingComponentV2.tsx +18 -0
  71. package/shared/components/Button.tsx +48 -0
  72. package/shared/components/BuySubscriptionDialog.tsx +75 -0
  73. package/shared/components/CartDrawerComponent.tsx +324 -0
  74. package/shared/components/CashbackComponent.tsx +48 -0
  75. package/shared/components/CashbackMigrationComponent.tsx +41 -0
  76. package/shared/components/CommissionNonEligibleComponent.tsx +27 -0
  77. package/shared/components/CustomNextImage.tsx +50 -0
  78. package/shared/components/CustomNextLink.tsx +46 -0
  79. package/shared/components/EditAddressFormComponent.tsx +254 -0
  80. package/shared/components/EmptyCartMessageComponent.tsx +25 -0
  81. package/shared/components/EmptyCartMessageForCartPage.tsx +61 -0
  82. package/shared/components/EmptyLegacyOrderMessageForOrdersPage.tsx +52 -0
  83. package/shared/components/EmptyOrderMessageForOrdersPage.tsx +62 -0
  84. package/shared/components/EmptyOrderMessageForShippingOrdersPage.tsx +62 -0
  85. package/shared/components/Footer.tsx +71 -0
  86. package/shared/components/GreetingDialog.tsx +96 -0
  87. package/shared/components/Header.tsx +106 -0
  88. package/shared/components/HoldShippingDialog.tsx +165 -0
  89. package/shared/components/HomeBanners.tsx +298 -0
  90. package/shared/components/InactiveCartDialog.tsx +69 -0
  91. package/shared/components/InputCartQuantity.tsx +342 -0
  92. package/shared/components/Inputfield.tsx +110 -0
  93. package/shared/components/ListItemComponent.tsx +82 -0
  94. package/shared/components/LoadingIconComponent.tsx +284 -0
  95. package/shared/components/OrderNotFoundComponent.tsx +56 -0
  96. package/shared/components/PageHeader.tsx +42 -0
  97. package/shared/components/PhoneNumberCountries.tsx +133 -0
  98. package/shared/components/PhoneShippingDialog.tsx +77 -0
  99. package/shared/components/PickupDialog.tsx +92 -0
  100. package/shared/components/ProductNotFoundComponent.tsx +56 -0
  101. package/shared/components/ProductPriceComponent.tsx +32 -0
  102. package/shared/components/ProfileMenu.tsx +120 -0
  103. package/shared/components/RequestCreditNoteInvoiceDialog.tsx +214 -0
  104. package/shared/components/RequestInvoiceDialog.tsx +194 -0
  105. package/shared/components/SelectCities.tsx +133 -0
  106. package/shared/components/SelectComponent.tsx +334 -0
  107. package/shared/components/SelectCountries.tsx +179 -0
  108. package/shared/components/SelectPickUpStore.tsx +131 -0
  109. package/shared/components/SelectStates.tsx +144 -0
  110. package/shared/components/ServerTime.tsx +68 -0
  111. package/shared/components/SessionDialogComponent.tsx +60 -0
  112. package/shared/components/ShippingAddressFormDialogComponent.tsx +51 -0
  113. package/shared/components/Sidebar.tsx +281 -0
  114. package/shared/components/SpecialOfferDialog.tsx +193 -0
  115. package/shared/components/StatusComponents.tsx +25 -0
  116. package/shared/components/StepperComponent.tsx +79 -0
  117. package/shared/components/StepperSmartPayComponent.tsx +97 -0
  118. package/shared/components/SubscriptionPurchaseDialogComponent.tsx +81 -0
  119. package/shared/components/TableComponent.tsx +144 -0
  120. package/shared/components/TablePaginationComponent.tsx +151 -0
  121. package/shared/components/aleta/AletaManagerComponent.tsx +52 -0
  122. package/shared/components/aleta/KycPendingStatus.tsx +33 -0
  123. package/shared/components/aleta/KycRejectedStatus.tsx +53 -0
  124. package/shared/components/aleta/KycRequiredStatus.tsx +53 -0
  125. package/shared/components/aleta/SubscriptionRequiredStatus.tsx +45 -0
  126. package/shared/components/icons/AletaWalletIcon.tsx +21 -0
  127. package/shared/components/icons/BrandIcon.tsx +97 -0
  128. package/shared/components/icons/BrandText.tsx +47 -0
  129. package/shared/components/icons/CartIcon.tsx +21 -0
  130. package/shared/components/icons/DoneIcon.tsx +27 -0
  131. package/shared/components/icons/HomnifiIcon.tsx +23 -0
  132. package/shared/components/icons/InfoIcon.tsx +16 -0
  133. package/shared/components/icons/SmartPayProductIcon.tsx +31 -0
  134. package/shared/components/payments/DisclaimerAlertDialog.tsx +205 -0
  135. package/shared/components/payments/EmptyAssets.tsx +23 -0
  136. package/shared/components/payments/PaybyWalletItemComponent.tsx +116 -0
  137. package/shared/components/payments/PaymentAssetItemComponent.tsx +101 -0
  138. package/shared/components/payments/RequestProcessingDialog.tsx +123 -0
  139. package/shared/components/payments/WalletSectionManager.tsx +82 -0
  140. package/shared/components/payments/WalletSliderComponent.tsx +326 -0
  141. package/shared/components/payments/WalletTermsAndConditionComponent.tsx +88 -0
  142. package/shared/constants/address-shipping.schema.ts +56 -0
  143. package/shared/constants/address.schema.ts +56 -0
  144. package/shared/constants/app.ts +323 -0
  145. package/shared/constants/environment.ts +23 -0
  146. package/shared/constants/feature-flags.ts +15 -0
  147. package/shared/constants/query-keys.ts +106 -0
  148. package/shared/constants/routes.ts +41 -0
  149. package/shared/constants/socket.ts +15 -0
  150. package/shared/contexts/HomeProductsContext.tsx +51 -0
  151. package/shared/contexts/MainWrapperContext.tsx +289 -0
  152. package/shared/contexts/WebSocketContext.tsx +155 -0
  153. package/shared/hooks/useAddressForm.ts +169 -0
  154. package/shared/hooks/useAddresses.ts +28 -0
  155. package/shared/hooks/useAppForm.ts +39 -0
  156. package/shared/hooks/useCart.ts +207 -0
  157. package/shared/hooks/useCopy.ts +45 -0
  158. package/shared/hooks/useCountries.ts +27 -0
  159. package/shared/hooks/useCustomRouter.ts +51 -0
  160. package/shared/hooks/useDebounce.ts +21 -0
  161. package/shared/hooks/useInvoice.ts +41 -0
  162. package/shared/hooks/useOnlineUser.ts +38 -0
  163. package/shared/hooks/usePayments.ts +101 -0
  164. package/shared/hooks/useShippingAddressForm.ts +70 -0
  165. package/shared/hooks/useShippingAddresses.ts +33 -0
  166. package/shared/hooks/useStores.ts +29 -0
  167. package/shared/hooks/useUserActivity.ts +43 -0
  168. package/shared/i18n/client.ts +27 -0
  169. package/shared/i18n/locales/en.ts +383 -0
  170. package/shared/i18n/locales/it.ts +373 -0
  171. package/shared/i18n/server.ts +7 -0
  172. package/shared/services/addresses.service.ts +27 -0
  173. package/shared/services/api/core/ApiError.ts +29 -0
  174. package/shared/services/api/core/ApiRequestOptions.ts +25 -0
  175. package/shared/services/api/core/ApiResult.ts +11 -0
  176. package/shared/services/api/core/CancelablePromise.ts +130 -0
  177. package/shared/services/api/core/OpenAPI.ts +37 -0
  178. package/shared/services/api/core/request.ts +376 -0
  179. package/shared/services/api/index.ts +64 -0
  180. package/shared/services/api/models/AddAllProductToShippingCartDto.ts +7 -0
  181. package/shared/services/api/models/AddProductToCartDto.ts +8 -0
  182. package/shared/services/api/models/AddProductToShippingCartDto.ts +8 -0
  183. package/shared/services/api/models/AdminPlaceOrderDto.ts +16 -0
  184. package/shared/services/api/models/AssignPickupSerialNumberDto.ts +10 -0
  185. package/shared/services/api/models/CreateUserAddressDto.ts +19 -0
  186. package/shared/services/api/models/DeletCartProductsArrayDto.ts +7 -0
  187. package/shared/services/api/models/GenerateInvoiceDto.ts +7 -0
  188. package/shared/services/api/models/OrderConfirmationEmailDto.ts +8 -0
  189. package/shared/services/api/models/PlaceOrderDto.ts +9 -0
  190. package/shared/services/api/models/PlaceShipmentOrderDto.ts +8 -0
  191. package/shared/services/api/models/ProductBoostDto.ts +18 -0
  192. package/shared/services/api/models/RemoveAssignedSerialNumberDto.ts +9 -0
  193. package/shared/services/api/models/RemoveProductToCartDto.ts +8 -0
  194. package/shared/services/api/models/ShipmentItem.ts +8 -0
  195. package/shared/services/api/models/ShippingCartUpdateBillingAddressesDto.ts +7 -0
  196. package/shared/services/api/models/ShippingCartUpdateShippingMethodDto.ts +7 -0
  197. package/shared/services/api/models/UnfreezeWalletDto.ts +8 -0
  198. package/shared/services/api/models/UpdateCartBillingAddressesDto.ts +7 -0
  199. package/shared/services/api/models/UpdateCartPaymentMethodDto.ts +9 -0
  200. package/shared/services/api/models/UpdateCartShippingMethodDto.ts +7 -0
  201. package/shared/services/api/models/UpdateCartStoreDto.ts +7 -0
  202. package/shared/services/api/models/UpdateProductDto.ts +11 -0
  203. package/shared/services/api/models/UpdateShipmentItemStatusDto.ts +24 -0
  204. package/shared/services/api/models/UpdateShippingCartPaymentMethodDto.ts +9 -0
  205. package/shared/services/api/models/UpdateUserAddressDto.ts +19 -0
  206. package/shared/services/api/models/ValidateAuthCodeDto.ts +8 -0
  207. package/shared/services/api/models/WithdrawOrderWalletDto.ts +8 -0
  208. package/shared/services/api/services/AddressesService.ts +160 -0
  209. package/shared/services/api/services/AdminsDevicesService.ts +28 -0
  210. package/shared/services/api/services/AdminsOrdersService.ts +117 -0
  211. package/shared/services/api/services/AdminsPickupsService.ts +57 -0
  212. package/shared/services/api/services/AdminsProductsService.ts +86 -0
  213. package/shared/services/api/services/CartsService.ts +190 -0
  214. package/shared/services/api/services/CashBackQueueService.ts +39 -0
  215. package/shared/services/api/services/CategoriesService.ts +65 -0
  216. package/shared/services/api/services/DefaultService.ts +19 -0
  217. package/shared/services/api/services/FeaturesFlagsService.ts +20 -0
  218. package/shared/services/api/services/IossQueueService.ts +39 -0
  219. package/shared/services/api/services/OrderCallbackService.ts +67 -0
  220. package/shared/services/api/services/OrderEmailsService.ts +40 -0
  221. package/shared/services/api/services/OrderImportService.ts +228 -0
  222. package/shared/services/api/services/OrdersService.ts +183 -0
  223. package/shared/services/api/services/PaymentGatewayService.ts +19 -0
  224. package/shared/services/api/services/PaymentsService.ts +88 -0
  225. package/shared/services/api/services/ProductsService.ts +67 -0
  226. package/shared/services/api/services/ShipmentOrderCallbackService.ts +67 -0
  227. package/shared/services/api/services/ShipmentOrdersService.ts +88 -0
  228. package/shared/services/api/services/ShipmentsService.ts +30 -0
  229. package/shared/services/api/services/ShippingCartService.ts +247 -0
  230. package/shared/services/api/services/ShippingMethodsService.ts +20 -0
  231. package/shared/services/api/services/StoresService.ts +25 -0
  232. package/shared/services/api/services/SyncServiceQueueService.ts +39 -0
  233. package/shared/services/api/services/UpgradeOrdersService.ts +26 -0
  234. package/shared/services/api/services/UsersAuthService.ts +45 -0
  235. package/shared/services/api/services/UsersService.ts +53 -0
  236. package/shared/services/api/services/XeraQueueService.ts +39 -0
  237. package/shared/services/index.ts +0 -0
  238. package/shared/services/payment-method.service.ts +29 -0
  239. package/shared/stores/cartStore.ts +108 -0
  240. package/shared/stores/countriesStore.ts +62 -0
  241. package/shared/stores/formStore.ts +19 -0
  242. package/shared/stores/loadingStore.ts +12 -0
  243. package/shared/stores/userStore.ts +32 -0
  244. package/shared/types/SelectComponent.types.ts +31 -0
  245. package/shared/types/addressForm.ts +27 -0
  246. package/shared/types/cart.ts +208 -0
  247. package/shared/types/category.ts +6 -0
  248. package/shared/types/creditNote.ts +0 -0
  249. package/shared/types/feature-flags.ts +5 -0
  250. package/shared/types/icon.ts +5 -0
  251. package/shared/types/index.d.ts +84 -0
  252. package/shared/types/order.ts +332 -0
  253. package/shared/types/pagination.ts +5 -0
  254. package/shared/types/payments.ts +68 -0
  255. package/shared/types/product.ts +54 -0
  256. package/shared/types/shoppingCart.ts +219 -0
  257. package/shared/types/upgradeCart.ts +226 -0
  258. package/shared/types/user.ts +36 -0
  259. package/shared/utils/app.util.ts +261 -0
  260. package/shared/utils/notifications.util.ts +39 -0
  261. package/shared/utils/user-session.util.ts +171 -0
  262. package/tailwind.config.ts +234 -0
package/app.css ADDED
@@ -0,0 +1,457 @@
1
+ @import "react-toastify/dist/ReactToastify.css";
2
+ @import "react-responsive-carousel/lib/styles/carousel.min.css";
3
+
4
+ @tailwind base;
5
+ @tailwind components;
6
+ @tailwind utilities;
7
+
8
+ :root {
9
+ --foreground-rgb: 0, 0, 0;
10
+ --background-start-rgb: 214, 219, 220;
11
+ --background-end-rgb: 255, 255, 255;
12
+
13
+ --scrollbar-track-bg: #e6f0ff;
14
+ --scrollbar-thumb-bg: #e6f0ff;
15
+ --scrollbar-thumb-hover-bg: #e6f0ff;
16
+ }
17
+
18
+ @media (prefers-color-scheme: dark) {
19
+ :root {
20
+ --foreground-rgb: 255, 255, 255;
21
+ --background-start-rgb: 0, 0, 0;
22
+ --background-end-rgb: 0, 0, 0;
23
+ }
24
+ }
25
+
26
+ html {
27
+ height: 100%;
28
+ }
29
+
30
+ body {
31
+ min-height: 100%;
32
+ color: #1c222e;
33
+ background: #fff;
34
+ }
35
+
36
+ .overflow-unset {
37
+ overflow: unset !important;
38
+ }
39
+
40
+ .font-box {
41
+ display: -webkit-box;
42
+ }
43
+
44
+ @layer utilities {
45
+ .text-balance {
46
+ text-wrap: balance;
47
+ }
48
+ }
49
+
50
+ .loginBG {
51
+ background: linear-gradient(135deg, #e0f2fe 0%, #dcfce7 45%, #fef9c3 100%);
52
+ }
53
+
54
+ .card {
55
+ border-radius: 12px;
56
+ border: 0.62px solid #e0f2fe;
57
+ background: rgba(255, 255, 255, 1);
58
+ box-shadow: 0 4px 6px 0 #dbeafe;
59
+ }
60
+
61
+ .productcarousel .carousel .thumbs {
62
+ text-align: center;
63
+ }
64
+
65
+ .productcarousel .carousel .thumb {
66
+ width: 75px !important;
67
+ height: 75px;
68
+ border: 1px solid #ddd;
69
+ border-radius: 8px;
70
+ margin-right: 6px;
71
+ padding: 0;
72
+ }
73
+
74
+ .carousel .thumbs-wrapper {
75
+ margin: 10px 30px;
76
+ }
77
+
78
+ .productcarousel .carousel .thumb.selected,
79
+ .productcarousel .carousel .thumb:hover {
80
+ border: 1px solid #949494;
81
+ }
82
+
83
+ .productcarousel .carousel.carousel-slider {
84
+ overflow: inherit;
85
+ }
86
+
87
+ .productcarousel .arrow {
88
+ position: absolute;
89
+ top: auto;
90
+ bottom: -15%;
91
+ background-color: #f9f9f9;
92
+ border: 1px solid #cfd4db;
93
+ padding: 7px;
94
+ border-radius: 50%;
95
+ border: none;
96
+ font-size: 17px;
97
+ cursor: pointer;
98
+ z-index: 2;
99
+ }
100
+ .productcarousel .arrow:hover {
101
+ background-color: #eeeeee;
102
+ }
103
+
104
+ .productcarousel .arrow.prev {
105
+ left: 5px;
106
+ }
107
+
108
+ .productcarousel .arrow.next {
109
+ right: 5px;
110
+ }
111
+
112
+ .productcarousel .arrow svg {
113
+ color: #707172;
114
+ }
115
+
116
+ .productcarousel .thumbs-wrapper .control-arrow {
117
+ display: none;
118
+ }
119
+
120
+ .productcarousel .carousel .slide .productImg {
121
+ height: 450px;
122
+ background-color: #f6f5f7;
123
+ border-radius: 12px;
124
+ margin: 10px;
125
+ }
126
+
127
+ .productcarousel .carousel .slide .productImg img {
128
+ width: 100%;
129
+ height: 100%;
130
+ object-fit: contain;
131
+ }
132
+
133
+ .cartAutoHeight {
134
+ height: calc(100svh - 170px);
135
+ overflow-y: auto;
136
+ }
137
+
138
+ .subscriptionBanner {
139
+ border-radius: 12px;
140
+ border: 0.62px solid rgba(59, 130, 246, 0.2);
141
+ background: linear-gradient(
142
+ 135deg,
143
+ rgba(219, 234, 254, 0.4) 0%,
144
+ rgba(209, 250, 229, 0.4) 100%
145
+ );
146
+ }
147
+ .subscriptionBannerBuy {
148
+ border-radius: 12px;
149
+ border: 0.62px solid rgba(59, 130, 246, 0.2);
150
+ background: linear-gradient(
151
+ 135deg,
152
+ rgba(219, 234, 254, 0.6) 0%,
153
+ rgba(244, 232, 246, 0.6) 100%
154
+ );
155
+ }
156
+ .boostDialogBg {
157
+ background-image: url("./public/img/boost-dialog-bg.png");
158
+ background-position: bottom right;
159
+ background-repeat: no-repeat;
160
+ background-size: cover;
161
+ }
162
+
163
+ .boostBanner {
164
+ background-image:
165
+ url("./public/img/boost-banner-right.png"),
166
+ url("./public/img/boost-banner-bg.png");
167
+ background-position:
168
+ right bottom,
169
+ left top;
170
+ background-repeat: no-repeat, no-repeat;
171
+ background-size: contain, cover;
172
+ }
173
+ .smartPayBanner {
174
+ background-image: url("./public/img/smart-pay-banner-own.png");
175
+ background-position: left center;
176
+ background-repeat: no-repeat;
177
+ background-size: cover;
178
+ }
179
+ .aiX1Banner {
180
+ background-image: url("./public/img/ai-x1.png");
181
+ background-position: center center;
182
+ background-repeat: no-repeat;
183
+ background-size: cover;
184
+ }
185
+
186
+ .gen3Banner {
187
+ background-image: url("./public/img/gen3-home-banner-bg.png");
188
+ background-position: center center;
189
+ background-repeat: no-repeat;
190
+ background-size: cover;
191
+ }
192
+
193
+ .smartPayBannerHow {
194
+ background-image: url("./public/img/smart-pay-banner-how.png");
195
+ background-position: center center;
196
+ background-repeat: no-repeat;
197
+ background-size: cover;
198
+ }
199
+
200
+ .verticalCarouselOrderSummary {
201
+ border-radius: 8px;
202
+ background: linear-gradient(262deg, #fef6ff 0%, #fffcff 100%);
203
+ }
204
+
205
+ @media (max-width: 768px) {
206
+ .boostBanner {
207
+ background-image: url("./public/img/boost-banner-bg.png");
208
+ background-position: left top;
209
+ background-repeat: no-repeat;
210
+ background-size: cover;
211
+ }
212
+ }
213
+
214
+ .breadcrumbsComponent .w-max {
215
+ width: fit-content;
216
+ }
217
+
218
+ .skeleton-gradient {
219
+ background: linear-gradient(
220
+ 90deg,
221
+ #ffffff 0%,
222
+ #ededed 50%,
223
+ #e7e7e7 70%,
224
+ #ffffff 100%
225
+ );
226
+ background-size: 200% 100%;
227
+ animation: pulse 2.5s infinite linear;
228
+ }
229
+
230
+ .tooltip-text {
231
+ z-index: 50;
232
+ opacity: 1;
233
+ }
234
+
235
+ .sidebar {
236
+ width: 215px;
237
+ min-width: 215px;
238
+ border-right-width: 1px;
239
+ }
240
+
241
+ .brandIcon svg {
242
+ width: 100%;
243
+ }
244
+
245
+ .no-scroll {
246
+ overflow: hidden;
247
+ padding-right: 7px;
248
+ }
249
+
250
+ .sidebar-body {
251
+ height: calc(100svh - 70px);
252
+ overflow-y: auto;
253
+ white-space: nowrap;
254
+ }
255
+
256
+ .cashback-bg {
257
+ padding: 16px;
258
+ background:
259
+ linear-gradient(
260
+ 0deg,
261
+ rgba(255, 255, 255, 0.2) 0%,
262
+ rgba(255, 255, 255, 0.2) 100%
263
+ ),
264
+ linear-gradient(180deg, #fff6e9 0%, #ffeef6 100%);
265
+ border-radius: 12px;
266
+ }
267
+
268
+ .phoneShippingBG {
269
+ background-image: url("./public/img/phoneShippingBG.png");
270
+ background-position: center center;
271
+ background-repeat: no-repeat;
272
+ background-size: cover;
273
+ }
274
+
275
+ .specialOfferBG {
276
+ background-image: url("./public/img/specialOfferBg.png");
277
+ background-position: center center;
278
+ background-repeat: no-repeat;
279
+ background-size: cover;
280
+ }
281
+
282
+ @keyframes pulse {
283
+ 0% {
284
+ background-position: 200% 0;
285
+ }
286
+ 100% {
287
+ background-position: -200% 0;
288
+ }
289
+ }
290
+
291
+ @media (min-width: 1024px) and (max-width: 1200px) {
292
+ .sidebar {
293
+ width: 190px;
294
+ min-width: 190px;
295
+ }
296
+ }
297
+
298
+ @media (max-width: 767px) {
299
+ .container {
300
+ max-width: 100%;
301
+ }
302
+
303
+ .cartAutoHeight {
304
+ height: calc(100svh - 155px);
305
+ }
306
+ .mobileNumberField .errorText {
307
+ position: absolute;
308
+ }
309
+ }
310
+
311
+ @media (max-width: 1023px) {
312
+ .mobileSidebar {
313
+ position: absolute;
314
+ left: 0;
315
+ top: 0;
316
+ right: 0;
317
+ bottom: 0;
318
+ z-index: 50;
319
+ width: 100%;
320
+ transform: translateX(-100%);
321
+ transition: transform 0.3s ease-in-out;
322
+ }
323
+
324
+ .mobileSidebar.open {
325
+ transform: translateX(0);
326
+ transition: transform 0.3s ease-in-out;
327
+ }
328
+
329
+ .no-scroll {
330
+ padding-right: 0px;
331
+ }
332
+ }
333
+
334
+ @media (max-height: 350px) {
335
+ .loginBG {
336
+ height: 100%;
337
+ overflow-y: auto;
338
+ }
339
+
340
+ .loginBG .card {
341
+ margin: 30px 10px;
342
+ }
343
+ }
344
+
345
+ .product-key-features ul {
346
+ list-style: inside;
347
+ padding-left: 1px;
348
+ }
349
+
350
+ *::-webkit-scrollbar {
351
+ width: 7px;
352
+ height: 3px;
353
+ }
354
+
355
+ *::-webkit-scrollbar-track {
356
+ background: var(--scrollbar-track-bg);
357
+ }
358
+
359
+ *::-webkit-scrollbar-thumb {
360
+ background: var(--scrollbar-thumb-bg);
361
+ border-radius: 10px;
362
+ }
363
+
364
+ *::-webkit-scrollbar-thumb:hover {
365
+ background: var(--scrollbar-thumb-hover-bg);
366
+ }
367
+
368
+ /* Internet Explorer */
369
+ *::-ms-scrollbar {
370
+ width: 10px;
371
+ }
372
+
373
+ *::-ms-scrollbar-track {
374
+ background: var(--scrollbar-track-bg);
375
+ }
376
+
377
+ *::-ms-scrollbar-thumb {
378
+ background: var(--scrollbar-thumb-bg);
379
+ border-radius: 10px;
380
+ }
381
+
382
+ *::-ms-scrollbar-thumb:hover {
383
+ background: var(--scrollbar-thumb-hover-bg);
384
+ }
385
+
386
+ /* Add this to your global.css or tailwind.css */
387
+ [data-dialog-backdrop="true"] {
388
+ z-index: 90 !important;
389
+ }
390
+
391
+ [data-dialog="true"] {
392
+ z-index: 91 !important;
393
+ }
394
+
395
+ [data-floating-ui-portal] {
396
+ z-index: 99999999 !important;
397
+ position: relative !important;
398
+ }
399
+
400
+ @keyframes slideDown {
401
+ 0% {
402
+ transform: translateY(-100%);
403
+ opacity: 1;
404
+ }
405
+ 100% {
406
+ transform: translateY(0);
407
+ opacity: 0;
408
+ }
409
+ }
410
+ .animate-slideDown {
411
+ animation: slideDown 0.5s ease-out;
412
+ }
413
+
414
+ .primary-button {
415
+ background: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);
416
+ }
417
+
418
+ .custom-underline {
419
+ position: relative;
420
+ display: inline-block;
421
+ padding-bottom: 8px;
422
+ }
423
+
424
+ .custom-underline::after {
425
+ content: "";
426
+ position: absolute;
427
+ left: 0;
428
+ bottom: 0;
429
+ width: 80px;
430
+ height: 4px;
431
+ background: linear-gradient(to right, #06b6d4, #0891b2);
432
+ border-radius: 2px;
433
+ }
434
+
435
+ .custom-left-line {
436
+ position: relative;
437
+ padding-left: 16px;
438
+ }
439
+
440
+ .custom-left-line::before {
441
+ content: "";
442
+ position: absolute;
443
+ left: 0;
444
+ top: 0;
445
+ width: 4px;
446
+ height: 100%;
447
+ background: linear-gradient(to bottom, #06b6d4, #0891b2);
448
+ border-radius: 2px;
449
+ }
450
+
451
+ .step-completed {
452
+ background: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);
453
+ }
454
+
455
+ .header-underline {
456
+ background: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);
457
+ }
@@ -0,0 +1,223 @@
1
+ steps:
2
+ - step: &build
3
+ name: "CI (Build & Validate)"
4
+ image: node:18-alpine3.18
5
+ script:
6
+ - npm cache clean --force
7
+ - rm -rf node_modules
8
+ - MONGOMS_DISABLE_POSTINSTALL=true npm install --force --loglevel verbose
9
+ - echo "✓ Dependencies validated successfully"
10
+
11
+ - step: &copy_shared_library
12
+ name: "Copy Shared Library to CI Server"
13
+ runs-on:
14
+ - self.hosted
15
+ - linux.shell
16
+ - common.ci
17
+ script:
18
+ - |
19
+ # Copy to common CI server for h-mall-web builds
20
+ # This location is used by h-mall-web Dockerfile during build (COPY h-mall-shared)
21
+ SHARED_LIB_PATH_CI="${HOME}/with-zone/h-mall-shared"
22
+
23
+ # Ensure directory exists
24
+ mkdir -p ${SHARED_LIB_PATH_CI}
25
+
26
+ # Deploy shared library to CI server
27
+ set +e
28
+ rm -rf ${SHARED_LIB_PATH_CI}
29
+ set -e
30
+ mkdir -p ${SHARED_LIB_PATH_CI}
31
+ cp -r ./ ${SHARED_LIB_PATH_CI}/
32
+ rm -rf ${SHARED_LIB_PATH_CI}/node_modules ${SHARED_LIB_PATH_CI}/.git
33
+ rm -f ${SHARED_LIB_PATH_CI}/.env*
34
+
35
+ echo "✓ Shared library copied to CI server: ${SHARED_LIB_PATH_CI}"
36
+ echo " This path is used by h-mall-web Dockerfile during build"
37
+
38
+ - step: &preview_deploy
39
+ name: "CD (Deploy Shared Library to Preview)"
40
+ runs-on:
41
+ - self.hosted
42
+ - linux.shell
43
+ - preview.runner
44
+ script:
45
+ - |
46
+ # Standard deployment location - user-writable directory
47
+ # Note: This path must match docker-compose.yml volume mount in h-mall-web
48
+ SHARED_LIB_PATH="${HOME}/with-zone/h-mall-shared"
49
+
50
+ # Ensure directory exists (user home directory is always writable)
51
+ mkdir -p ${SHARED_LIB_PATH}
52
+
53
+ # Deploy shared library
54
+ set +e
55
+ rm -rf ${SHARED_LIB_PATH}
56
+ set -e
57
+ mkdir -p ${SHARED_LIB_PATH}
58
+ cp -r ./ ${SHARED_LIB_PATH}/
59
+ rm -rf ${SHARED_LIB_PATH}/node_modules ${SHARED_LIB_PATH}/.git
60
+ rm -f ${SHARED_LIB_PATH}/.env*
61
+
62
+ echo "✓ Shared library deployed to: ${SHARED_LIB_PATH}"
63
+ echo " This path is mounted in h-mall-web docker-compose.yml"
64
+
65
+ - step: &dev_deploy
66
+ name: "CD (Deploy Shared Library to Dev)"
67
+ runs-on:
68
+ - self.hosted
69
+ - linux.shell
70
+ - dev.runner
71
+ script:
72
+ - |
73
+ # Standard deployment location - user-writable directory
74
+ # Note: This path must match docker-compose.yml volume mount in h-mall-web
75
+ SHARED_LIB_PATH="${HOME}/with-zone/h-mall-shared"
76
+
77
+ # Ensure directory exists (user home directory is always writable)
78
+ mkdir -p ${SHARED_LIB_PATH}
79
+
80
+ # Deploy shared library
81
+ set +e
82
+ rm -rf ${SHARED_LIB_PATH}
83
+ set -e
84
+ mkdir -p ${SHARED_LIB_PATH}
85
+ cp -r ./ ${SHARED_LIB_PATH}/
86
+ rm -rf ${SHARED_LIB_PATH}/node_modules ${SHARED_LIB_PATH}/.git
87
+ rm -f ${SHARED_LIB_PATH}/.env*
88
+
89
+ echo "✓ Shared library deployed to: ${SHARED_LIB_PATH}"
90
+ echo " This path is mounted in h-mall-web docker-compose.yml"
91
+
92
+ - step: &uat_deploy
93
+ name: "CD (Deploy Shared Library to UAT)"
94
+ runs-on:
95
+ - self.hosted
96
+ - linux.shell
97
+ - uat.runner
98
+ script:
99
+ - |
100
+ # Standard deployment location - user-writable directory
101
+ # Note: This path must match docker-compose.yml volume mount in h-mall-web
102
+ SHARED_LIB_PATH="${HOME}/with-zone/h-mall-shared"
103
+
104
+ # Ensure directory exists (user home directory is always writable)
105
+ mkdir -p ${SHARED_LIB_PATH}
106
+
107
+ # Deploy shared library
108
+ set +e
109
+ rm -rf ${SHARED_LIB_PATH}
110
+ set -e
111
+ mkdir -p ${SHARED_LIB_PATH}
112
+ cp -r ./ ${SHARED_LIB_PATH}/
113
+ rm -rf ${SHARED_LIB_PATH}/node_modules ${SHARED_LIB_PATH}/.git
114
+ rm -f ${SHARED_LIB_PATH}/.env*
115
+
116
+ echo "✓ Shared library deployed to: ${SHARED_LIB_PATH}"
117
+ echo " This path is mounted in h-mall-web docker-compose.yml"
118
+
119
+ - step: &prod_deploy
120
+ name: "CD (Deploy Shared Library to Prod)"
121
+ runs-on:
122
+ - self.hosted
123
+ - linux.shell
124
+ - prod.runner
125
+ script:
126
+ - |
127
+ # Standard deployment location - user-writable directory
128
+ # Note: This path must match docker-compose.yml volume mount in h-mall-web
129
+ SHARED_LIB_PATH="${HOME}/with-zone/h-mall-shared"
130
+
131
+ # Ensure directory exists (user home directory is always writable)
132
+ mkdir -p ${SHARED_LIB_PATH}
133
+
134
+ # Deploy shared library
135
+ set +e
136
+ rm -rf ${SHARED_LIB_PATH}
137
+ set -e
138
+ mkdir -p ${SHARED_LIB_PATH}
139
+ cp -r ./ ${SHARED_LIB_PATH}/
140
+ rm -rf ${SHARED_LIB_PATH}/node_modules ${SHARED_LIB_PATH}/.git
141
+ rm -f ${SHARED_LIB_PATH}/.env*
142
+
143
+ echo "✓ Shared library deployed to: ${SHARED_LIB_PATH}"
144
+ echo " This path is mounted in h-mall-web docker-compose.yml"
145
+
146
+ definitions:
147
+ services:
148
+ docker:
149
+ memory: 3072
150
+
151
+ pipelines:
152
+ default:
153
+ - step: *build
154
+ - step: *copy_shared_library
155
+
156
+ branches:
157
+ feature/*:
158
+ - stage:
159
+ name: CI
160
+ steps:
161
+ - step: *build
162
+ - step: *copy_shared_library
163
+ - stage:
164
+ name: CD
165
+ trigger: manual
166
+ steps:
167
+ - step: *preview_deploy
168
+
169
+ pull-requests:
170
+ - stage:
171
+ name: CI
172
+ steps:
173
+ - step: *build
174
+ - step: *copy_shared_library
175
+ - stage:
176
+ name: CD
177
+ condition:
178
+ or:
179
+ - equals:
180
+ - ${BITBUCKET_PR_DESTINATION_BRANCH}
181
+ - dev
182
+ - equals:
183
+ - ${BITBUCKET_PR_DESTINATION_BRANCH}
184
+ - develop
185
+
186
+ steps:
187
+ - step: *preview_deploy
188
+
189
+ develop:
190
+ - stage:
191
+ name: CI
192
+ steps:
193
+ - step: *build
194
+ - step: *copy_shared_library
195
+ - stage:
196
+ name: CD
197
+ trigger: manual
198
+ steps:
199
+ - step: *dev_deploy
200
+
201
+ release/*:
202
+ - stage:
203
+ name: CI
204
+ steps:
205
+ - step: *build
206
+ - step: *copy_shared_library
207
+ - stage:
208
+ name: CD
209
+ trigger: manual
210
+ steps:
211
+ - step: *uat_deploy
212
+
213
+ main:
214
+ - stage:
215
+ name: CI
216
+ steps:
217
+ - step: *build
218
+ - step: *copy_shared_library
219
+ - stage:
220
+ name: CD
221
+ trigger: manual
222
+ steps:
223
+ - step: *prod_deploy
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@lmnto/h-mall-shared",
3
+ "version": "1.0.1",
4
+ "private": false,
5
+ "sideEffects": false,
6
+ "scripts": {
7
+ "lint": "next lint",
8
+ "static:fix": "eslint . --fix && prettier --log-level silent --write --ignore-unknown ."
9
+ },
10
+ "dependencies": {
11
+ "@heroicons/react": "^2.1.5",
12
+ "@hookform/resolvers": "^3.9.0",
13
+ "@material-tailwind/react": "^2.1.10",
14
+ "@tanstack/react-query": "^5.56.2",
15
+ "axios": "^1.7.7",
16
+ "clear": "^0.1.0",
17
+ "openapi-typescript": "^7.4.0",
18
+ "openapi-typescript-codegen": "^0.29.0",
19
+ "react": "^19.2.1",
20
+ "react-dom": "^19.2.1",
21
+ "react-hook-form": "^7.53.0",
22
+ "react-icons": "^5.3.0",
23
+ "react-responsive-carousel": "^3.2.23",
24
+ "react-toastify": "^11.0.5",
25
+ "socket.io-client": "^4.8.0",
26
+ "yup": "^1.4.0",
27
+ "zustand": "^5.0.0-rc.2",
28
+ "next-international": "^1.3.1"
29
+ },
30
+ "devDependencies": {
31
+ "@eslint/eslintrc": "^3",
32
+ "@types/node": "20.16.4",
33
+ "@types/react": "^19.1.8",
34
+ "@types/react-dom": "^19.1.6",
35
+ "eslint": "^9.15.0",
36
+ "eslint-config-next": "16.0.7",
37
+ "next": "^16.0.7",
38
+ "postcss": "^8",
39
+ "prettier": "^3.3.3",
40
+ "tailwindcss": "^3.4.11",
41
+ "typescript": "5.5.4"
42
+ }
43
+ }
Binary file
Binary file
Binary file