hey-pharmacist-ecommerce 1.0.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 (287) hide show
  1. package/README.md +269 -0
  2. package/dist/index.d.mts +564 -0
  3. package/dist/index.d.ts +564 -0
  4. package/dist/index.js +7541 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +7485 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +70 -0
  9. package/src/components/CartItem.tsx +103 -0
  10. package/src/components/EmptyState.tsx +27 -0
  11. package/src/components/Footer.tsx +147 -0
  12. package/src/components/Header.tsx +151 -0
  13. package/src/components/OrderCard.tsx +98 -0
  14. package/src/components/ProductCard.tsx +122 -0
  15. package/src/components/ui/Badge.tsx +31 -0
  16. package/src/components/ui/Button.tsx +61 -0
  17. package/src/components/ui/Input.tsx +45 -0
  18. package/src/components/ui/Modal.tsx +79 -0
  19. package/src/components/ui/Skeleton.tsx +46 -0
  20. package/src/hooks/useOrders.ts +98 -0
  21. package/src/hooks/useProducts.ts +125 -0
  22. package/src/index.ts +71 -0
  23. package/src/lib/Apis/api.ts +46 -0
  24. package/src/lib/Apis/apis/addresses-api.ts +1461 -0
  25. package/src/lib/Apis/apis/auth-api.ts +945 -0
  26. package/src/lib/Apis/apis/blogs-api.ts +582 -0
  27. package/src/lib/Apis/apis/cart-api.ts +456 -0
  28. package/src/lib/Apis/apis/categories-api.ts +725 -0
  29. package/src/lib/Apis/apis/chats-api.ts +1101 -0
  30. package/src/lib/Apis/apis/contact-us-api.ts +394 -0
  31. package/src/lib/Apis/apis/discounts-api.ts +763 -0
  32. package/src/lib/Apis/apis/drafts-api.ts +448 -0
  33. package/src/lib/Apis/apis/events-api.ts +1311 -0
  34. package/src/lib/Apis/apis/file-proccesor-api.ts +293 -0
  35. package/src/lib/Apis/apis/health-api.ts +119 -0
  36. package/src/lib/Apis/apis/images-api.ts +271 -0
  37. package/src/lib/Apis/apis/inventory-api.ts +375 -0
  38. package/src/lib/Apis/apis/marketing-api.ts +3099 -0
  39. package/src/lib/Apis/apis/notifications-api.ts +843 -0
  40. package/src/lib/Apis/apis/open-aiapi.ts +513 -0
  41. package/src/lib/Apis/apis/orders-api.ts +1343 -0
  42. package/src/lib/Apis/apis/payment-methods-api.ts +411 -0
  43. package/src/lib/Apis/apis/payments-api.ts +469 -0
  44. package/src/lib/Apis/apis/product-attributes-api.ts +538 -0
  45. package/src/lib/Apis/apis/product-favorite-list-api.ts +321 -0
  46. package/src/lib/Apis/apis/product-variants-api.ts +648 -0
  47. package/src/lib/Apis/apis/products-api.ts +1442 -0
  48. package/src/lib/Apis/apis/review-api.ts +1383 -0
  49. package/src/lib/Apis/apis/roles-api.ts +614 -0
  50. package/src/lib/Apis/apis/shipping-api.ts +703 -0
  51. package/src/lib/Apis/apis/statistics-api.ts +234 -0
  52. package/src/lib/Apis/apis/stores-api.ts +1519 -0
  53. package/src/lib/Apis/apis/sub-categories-api.ts +1208 -0
  54. package/src/lib/Apis/apis/user-groups-api.ts +1198 -0
  55. package/src/lib/Apis/apis/users-api.ts +1403 -0
  56. package/src/lib/Apis/apis/web-hooks-api.ts +198 -0
  57. package/src/lib/Apis/base.ts +70 -0
  58. package/src/lib/Apis/configuration.ts +75 -0
  59. package/src/lib/Apis/index.ts +17 -0
  60. package/src/lib/Apis/models/add-contact-to-list-dto.ts +33 -0
  61. package/src/lib/Apis/models/add-message-dto.ts +56 -0
  62. package/src/lib/Apis/models/address-created-request.ts +134 -0
  63. package/src/lib/Apis/models/address.ts +164 -0
  64. package/src/lib/Apis/models/allow-user-credit-dto.ts +27 -0
  65. package/src/lib/Apis/models/appointment.ts +75 -0
  66. package/src/lib/Apis/models/available-dates-dto.ts +33 -0
  67. package/src/lib/Apis/models/available-suggested-dates-dto.ts +33 -0
  68. package/src/lib/Apis/models/blog.ts +75 -0
  69. package/src/lib/Apis/models/browser-stats-response-dto.ts +40 -0
  70. package/src/lib/Apis/models/bulk-move-subcategories-dto.ts +33 -0
  71. package/src/lib/Apis/models/bulk-unassign-subcategories-dto.ts +27 -0
  72. package/src/lib/Apis/models/campaign-content-response-dto.ts +40 -0
  73. package/src/lib/Apis/models/campaign-draft-dto.ts +175 -0
  74. package/src/lib/Apis/models/campaign-draft-response-dto.ts +40 -0
  75. package/src/lib/Apis/models/campaign-draft-schedule-dto.ts +49 -0
  76. package/src/lib/Apis/models/campaign-draft-schedule-response-dto.ts +40 -0
  77. package/src/lib/Apis/models/campaign-draft-sending-dto.ts +43 -0
  78. package/src/lib/Apis/models/campaign-draft-sending-response-dto.ts +40 -0
  79. package/src/lib/Apis/models/cart-body-dto.ts +40 -0
  80. package/src/lib/Apis/models/cart-body-populated.ts +47 -0
  81. package/src/lib/Apis/models/cart-item-populated.ts +41 -0
  82. package/src/lib/Apis/models/cart-item.ts +33 -0
  83. package/src/lib/Apis/models/cart-response-dto.ts +70 -0
  84. package/src/lib/Apis/models/categories-paginated-response-dto.ts +52 -0
  85. package/src/lib/Apis/models/category-filters.ts +40 -0
  86. package/src/lib/Apis/models/category-populated.ts +106 -0
  87. package/src/lib/Apis/models/category-sub-category-populated.ts +51 -0
  88. package/src/lib/Apis/models/category.ts +99 -0
  89. package/src/lib/Apis/models/categorys-headlines-response-dto.ts +40 -0
  90. package/src/lib/Apis/models/change-user-email-dto.ts +27 -0
  91. package/src/lib/Apis/models/chat.ts +33 -0
  92. package/src/lib/Apis/models/check-notifications-response-dto.ts +33 -0
  93. package/src/lib/Apis/models/contact-aggregated-stats-response-dto.ts +40 -0
  94. package/src/lib/Apis/models/contact-full-dto.ts +93 -0
  95. package/src/lib/Apis/models/contact-full-response-dto.ts +40 -0
  96. package/src/lib/Apis/models/contact-list-stats-response-dto.ts +40 -0
  97. package/src/lib/Apis/models/contact-lists-response-dto.ts +40 -0
  98. package/src/lib/Apis/models/contact-us.ts +81 -0
  99. package/src/lib/Apis/models/country-stats-response-dto.ts +40 -0
  100. package/src/lib/Apis/models/create-address-dto.ts +134 -0
  101. package/src/lib/Apis/models/create-blog-dto.ts +45 -0
  102. package/src/lib/Apis/models/create-category-dto.ts +45 -0
  103. package/src/lib/Apis/models/create-chat-dto.ts +39 -0
  104. package/src/lib/Apis/models/create-contact-dto.ts +39 -0
  105. package/src/lib/Apis/models/create-contact-list-dto.ts +27 -0
  106. package/src/lib/Apis/models/create-discount-dto.ts +208 -0
  107. package/src/lib/Apis/models/create-draft-dto.ts +67 -0
  108. package/src/lib/Apis/models/create-email-template-dto.ts +51 -0
  109. package/src/lib/Apis/models/create-event-dto.ts +52 -0
  110. package/src/lib/Apis/models/create-marketing-campaign-dto.ts +81 -0
  111. package/src/lib/Apis/models/create-message-dto.ts +57 -0
  112. package/src/lib/Apis/models/create-notification-dto.ts +75 -0
  113. package/src/lib/Apis/models/create-product-attribute-dto.ts +33 -0
  114. package/src/lib/Apis/models/create-product-dto.ts +94 -0
  115. package/src/lib/Apis/models/create-review-dto.ts +63 -0
  116. package/src/lib/Apis/models/create-role-dto.ts +57 -0
  117. package/src/lib/Apis/models/create-single-variant-product-dto.ts +155 -0
  118. package/src/lib/Apis/models/create-store-address-dto.ts +134 -0
  119. package/src/lib/Apis/models/create-store-dto.ts +105 -0
  120. package/src/lib/Apis/models/create-sub-category-dto.ts +45 -0
  121. package/src/lib/Apis/models/create-user-dto.ts +89 -0
  122. package/src/lib/Apis/models/create-user-group-dto.ts +39 -0
  123. package/src/lib/Apis/models/create-variant-dto.ts +119 -0
  124. package/src/lib/Apis/models/create-zone-dto.ts +82 -0
  125. package/src/lib/Apis/models/custom-product-dto.ts +63 -0
  126. package/src/lib/Apis/models/default-payment-method-request-dto.ts +27 -0
  127. package/src/lib/Apis/models/delete-file-dto.ts +27 -0
  128. package/src/lib/Apis/models/delete-many-files-dto.ts +27 -0
  129. package/src/lib/Apis/models/discount-paginated-response.ts +52 -0
  130. package/src/lib/Apis/models/discount.ts +245 -0
  131. package/src/lib/Apis/models/discounts-insights-dto.ts +57 -0
  132. package/src/lib/Apis/models/draft.ts +79 -0
  133. package/src/lib/Apis/models/email-invoice-dto.ts +45 -0
  134. package/src/lib/Apis/models/email-template-response-dto.ts +117 -0
  135. package/src/lib/Apis/models/event.ts +76 -0
  136. package/src/lib/Apis/models/extended-product-dto.ts +204 -0
  137. package/src/lib/Apis/models/fileproccesor-upload-body.ts +27 -0
  138. package/src/lib/Apis/models/forget-password.ts +27 -0
  139. package/src/lib/Apis/models/frequently-bought-product-dto.ts +71 -0
  140. package/src/lib/Apis/models/general-stats-response-dto.ts +40 -0
  141. package/src/lib/Apis/models/generate-day-slots-dto.ts +51 -0
  142. package/src/lib/Apis/models/generate-month-slots-dto.ts +57 -0
  143. package/src/lib/Apis/models/generate-week-slots-dto.ts +57 -0
  144. package/src/lib/Apis/models/google-analytics-request-dto.ts +55 -0
  145. package/src/lib/Apis/models/google-analytics-response-dto.ts +39 -0
  146. package/src/lib/Apis/models/group-with-no-users-dto.ts +75 -0
  147. package/src/lib/Apis/models/group-with-users-dto.ts +76 -0
  148. package/src/lib/Apis/models/images-upload-body.ts +27 -0
  149. package/src/lib/Apis/models/index.ts +197 -0
  150. package/src/lib/Apis/models/inventory-paginated-response.ts +75 -0
  151. package/src/lib/Apis/models/link-stats-response-dto.ts +40 -0
  152. package/src/lib/Apis/models/login-dto.ts +33 -0
  153. package/src/lib/Apis/models/manual-discount.ts +49 -0
  154. package/src/lib/Apis/models/manual-order-dto.ts +133 -0
  155. package/src/lib/Apis/models/manual-shipping-dto.ts +45 -0
  156. package/src/lib/Apis/models/marketing-campaign-content-dto.ts +27 -0
  157. package/src/lib/Apis/models/marketing-list-contact-dto.ts +51 -0
  158. package/src/lib/Apis/models/move-subcategory-dto.ts +27 -0
  159. package/src/lib/Apis/models/my-favorite-list-dto.ts +52 -0
  160. package/src/lib/Apis/models/notification.ts +93 -0
  161. package/src/lib/Apis/models/object-id.ts +21 -0
  162. package/src/lib/Apis/models/open-api.ts +33 -0
  163. package/src/lib/Apis/models/order-paginated-response.ts +52 -0
  164. package/src/lib/Apis/models/order.ts +214 -0
  165. package/src/lib/Apis/models/orders-insights-dto.ts +69 -0
  166. package/src/lib/Apis/models/paginated-products-dto.ts +52 -0
  167. package/src/lib/Apis/models/payment-method-data.ts +34 -0
  168. package/src/lib/Apis/models/payment-method.ts +51 -0
  169. package/src/lib/Apis/models/payment-time-line-dto.ts +56 -0
  170. package/src/lib/Apis/models/payment.ts +182 -0
  171. package/src/lib/Apis/models/payments-insights-dto.ts +69 -0
  172. package/src/lib/Apis/models/payments-paginated-response.ts +52 -0
  173. package/src/lib/Apis/models/pick-type-class.ts +51 -0
  174. package/src/lib/Apis/models/populated-chat-dto.ts +95 -0
  175. package/src/lib/Apis/models/populated-discount.ts +246 -0
  176. package/src/lib/Apis/models/populated-order.ts +209 -0
  177. package/src/lib/Apis/models/prefered-pick-or-delivery-time-dto.ts +33 -0
  178. package/src/lib/Apis/models/price-range.ts +33 -0
  179. package/src/lib/Apis/models/product-attribute.ts +57 -0
  180. package/src/lib/Apis/models/product-variant.ts +167 -0
  181. package/src/lib/Apis/models/product.ts +136 -0
  182. package/src/lib/Apis/models/products-insights-dto.ts +45 -0
  183. package/src/lib/Apis/models/rate-dto.ts +123 -0
  184. package/src/lib/Apis/models/refill-request-dto.ts +75 -0
  185. package/src/lib/Apis/models/refill-request.ts +105 -0
  186. package/src/lib/Apis/models/register-or-login-with-gmail.ts +27 -0
  187. package/src/lib/Apis/models/reserve-appointment.ts +261 -0
  188. package/src/lib/Apis/models/review.ts +93 -0
  189. package/src/lib/Apis/models/role.ts +69 -0
  190. package/src/lib/Apis/models/schedule-campaign-draft-dto.ts +27 -0
  191. package/src/lib/Apis/models/send-test-email-dto.ts +28 -0
  192. package/src/lib/Apis/models/shallow-parent-category-dto.ts +33 -0
  193. package/src/lib/Apis/models/shipment-details-dto.ts +88 -0
  194. package/src/lib/Apis/models/shipment-status-dto.ts +117 -0
  195. package/src/lib/Apis/models/shipment-with-order.ts +105 -0
  196. package/src/lib/Apis/models/shipment.ts +104 -0
  197. package/src/lib/Apis/models/shipping-info.ts +88 -0
  198. package/src/lib/Apis/models/single-browser-stats-dto.ts +45 -0
  199. package/src/lib/Apis/models/single-contact-aggregated-stats-dto.ts +129 -0
  200. package/src/lib/Apis/models/single-contact-list-stats-dto.ts +117 -0
  201. package/src/lib/Apis/models/single-country-stats-dto.ts +39 -0
  202. package/src/lib/Apis/models/single-general-stats.ts +153 -0
  203. package/src/lib/Apis/models/single-link-stats-dto.ts +39 -0
  204. package/src/lib/Apis/models/single-message-populated.ts +59 -0
  205. package/src/lib/Apis/models/single-notification-dto.ts +99 -0
  206. package/src/lib/Apis/models/single-product-media.ts +74 -0
  207. package/src/lib/Apis/models/single-recipient-dto.ts +33 -0
  208. package/src/lib/Apis/models/single-suggest-attribute.ts +33 -0
  209. package/src/lib/Apis/models/statistic-dto.ts +171 -0
  210. package/src/lib/Apis/models/store-entity.ts +117 -0
  211. package/src/lib/Apis/models/store.ts +135 -0
  212. package/src/lib/Apis/models/sub-category-headlines-only-response-dto.ts +39 -0
  213. package/src/lib/Apis/models/sub-category.ts +93 -0
  214. package/src/lib/Apis/models/suggest-attributes.ts +28 -0
  215. package/src/lib/Apis/models/suggested-slot.ts +33 -0
  216. package/src/lib/Apis/models/table-cell-dto.ts +33 -0
  217. package/src/lib/Apis/models/table-dto.ts +34 -0
  218. package/src/lib/Apis/models/tadmin-session-data.ts +47 -0
  219. package/src/lib/Apis/models/track-dto.ts +94 -0
  220. package/src/lib/Apis/models/tracking-status-location-base.ts +45 -0
  221. package/src/lib/Apis/models/tracking-status-substatus.ts +39 -0
  222. package/src/lib/Apis/models/tracking-status.ts +71 -0
  223. package/src/lib/Apis/models/transfere-patient-request.ts +123 -0
  224. package/src/lib/Apis/models/transfere-patients-request-dto.ts +99 -0
  225. package/src/lib/Apis/models/tuser-session-data.ts +34 -0
  226. package/src/lib/Apis/models/update-address-dto.ts +134 -0
  227. package/src/lib/Apis/models/update-blog-dto.ts +45 -0
  228. package/src/lib/Apis/models/update-campaign-draft-content-dto.ts +27 -0
  229. package/src/lib/Apis/models/update-category-dto.ts +45 -0
  230. package/src/lib/Apis/models/update-discount-dto.ts +208 -0
  231. package/src/lib/Apis/models/update-event-dto.ts +52 -0
  232. package/src/lib/Apis/models/update-items-order-dto.ts +27 -0
  233. package/src/lib/Apis/models/update-marketing-camp-draft-dto.ts +81 -0
  234. package/src/lib/Apis/models/update-message-dto.ts +57 -0
  235. package/src/lib/Apis/models/update-product-attribute-dto.ts +33 -0
  236. package/src/lib/Apis/models/update-product-dto.ts +96 -0
  237. package/src/lib/Apis/models/update-product-variant-dto.ts +119 -0
  238. package/src/lib/Apis/models/update-refill-request-dto.ts +75 -0
  239. package/src/lib/Apis/models/update-review-dto.ts +63 -0
  240. package/src/lib/Apis/models/update-role-dto.ts +57 -0
  241. package/src/lib/Apis/models/update-store-dto.ts +105 -0
  242. package/src/lib/Apis/models/update-sub-category-dto.ts +45 -0
  243. package/src/lib/Apis/models/update-transfere-patients-request-dto.ts +99 -0
  244. package/src/lib/Apis/models/update-user-dto.ts +239 -0
  245. package/src/lib/Apis/models/update-user-group-dto.ts +39 -0
  246. package/src/lib/Apis/models/update-zone-dto.ts +82 -0
  247. package/src/lib/Apis/models/upload-pdf-body.ts +27 -0
  248. package/src/lib/Apis/models/used-by.ts +87 -0
  249. package/src/lib/Apis/models/user-entity.ts +220 -0
  250. package/src/lib/Apis/models/user-group.ts +75 -0
  251. package/src/lib/Apis/models/user-insights-dto.ts +39 -0
  252. package/src/lib/Apis/models/user-with-no-id.ts +226 -0
  253. package/src/lib/Apis/models/user.ts +232 -0
  254. package/src/lib/Apis/models/users-paginated-response.ts +52 -0
  255. package/src/lib/Apis/models/verify-email-dto.ts +33 -0
  256. package/src/lib/Apis/models/zone-single-size.ts +51 -0
  257. package/src/lib/Apis/models/zone.ts +106 -0
  258. package/src/lib/Apis/wrapper.ts +37 -0
  259. package/src/lib/api/auth.ts +81 -0
  260. package/src/lib/api/cart.ts +42 -0
  261. package/src/lib/api/client.ts +118 -0
  262. package/src/lib/api/orders.ts +53 -0
  263. package/src/lib/api/products.ts +51 -0
  264. package/src/lib/api-adapter/auth-adapter.ts +196 -0
  265. package/src/lib/api-adapter/cart-adapter.ts +193 -0
  266. package/src/lib/api-adapter/config.ts +76 -0
  267. package/src/lib/api-adapter/index.ts +13 -0
  268. package/src/lib/api-adapter/mappers.ts +147 -0
  269. package/src/lib/api-adapter/orders-adapter.ts +195 -0
  270. package/src/lib/api-adapter/products-adapter.ts +194 -0
  271. package/src/lib/types/index.ts +152 -0
  272. package/src/lib/utils/colors.ts +51 -0
  273. package/src/lib/utils/format.ts +48 -0
  274. package/src/providers/AuthProvider.tsx +117 -0
  275. package/src/providers/CartProvider.tsx +131 -0
  276. package/src/providers/EcommerceProvider.tsx +34 -0
  277. package/src/providers/ThemeProvider.tsx +57 -0
  278. package/src/screens/CartScreen.tsx +140 -0
  279. package/src/screens/CheckoutScreen.tsx +340 -0
  280. package/src/screens/CurrentOrdersScreen.tsx +85 -0
  281. package/src/screens/LoginScreen.tsx +149 -0
  282. package/src/screens/OrdersScreen.tsx +86 -0
  283. package/src/screens/ProductDetailScreen.tsx +255 -0
  284. package/src/screens/ProfileScreen.tsx +211 -0
  285. package/src/screens/RegisterScreen.tsx +200 -0
  286. package/src/screens/ShopScreen.tsx +233 -0
  287. package/src/styles/globals.css +51 -0
@@ -0,0 +1,564 @@
1
+ import React from 'react';
2
+ import { LucideIcon } from 'lucide-react';
3
+
4
+ interface EcommerceConfig {
5
+ storeId: string;
6
+ storeName: string;
7
+ logo: string;
8
+ colors: {
9
+ primary: string;
10
+ secondary: string;
11
+ accent: string;
12
+ };
13
+ apiBaseUrl: string;
14
+ stripePublicKey: string;
15
+ }
16
+ interface Product {
17
+ id: string;
18
+ name: string;
19
+ description: string;
20
+ price: number;
21
+ compareAtPrice?: number;
22
+ images: string[];
23
+ category: string;
24
+ inStock: boolean;
25
+ stock?: number;
26
+ sku?: string;
27
+ tags?: string[];
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ }
31
+ interface ProductFilters {
32
+ category?: string;
33
+ minPrice?: number;
34
+ maxPrice?: number;
35
+ search?: string;
36
+ tags?: string[];
37
+ inStock?: boolean;
38
+ }
39
+ interface CartItem$1 {
40
+ productId: string;
41
+ quantity: number;
42
+ product: Product;
43
+ }
44
+ interface Cart {
45
+ items: CartItem$1[];
46
+ total: number;
47
+ itemCount: number;
48
+ }
49
+ declare enum OrderStatus {
50
+ PENDING = "pending",
51
+ PROCESSING = "processing",
52
+ SHIPPED = "shipped",
53
+ DELIVERED = "delivered",
54
+ CANCELLED = "cancelled"
55
+ }
56
+ interface Order {
57
+ id: string;
58
+ orderNumber: string;
59
+ items: OrderItem[];
60
+ total: number;
61
+ status: OrderStatus;
62
+ shippingAddress: Address;
63
+ billingAddress: Address;
64
+ paymentStatus: 'pending' | 'paid' | 'failed';
65
+ stripeCheckoutUrl?: string;
66
+ createdAt: string;
67
+ updatedAt: string;
68
+ }
69
+ interface OrderItem {
70
+ id: string;
71
+ productId: string;
72
+ productName: string;
73
+ productImage: string;
74
+ quantity: number;
75
+ price: number;
76
+ }
77
+ interface Address {
78
+ fullName: string;
79
+ addressLine1: string;
80
+ addressLine2?: string;
81
+ city: string;
82
+ state: string;
83
+ zipCode: string;
84
+ country: string;
85
+ phone: string;
86
+ }
87
+ interface User {
88
+ id: string;
89
+ email: string;
90
+ firstName: string;
91
+ lastName: string;
92
+ phone?: string;
93
+ avatar?: string;
94
+ createdAt: string;
95
+ }
96
+ interface AuthTokens {
97
+ accessToken: string;
98
+ refreshToken: string;
99
+ }
100
+ interface LoginCredentials {
101
+ email: string;
102
+ password: string;
103
+ }
104
+ interface RegisterData {
105
+ email: string;
106
+ password: string;
107
+ firstName: string;
108
+ lastName: string;
109
+ phone?: string;
110
+ }
111
+ interface ApiResponse<T> {
112
+ data: T;
113
+ message?: string;
114
+ success: boolean;
115
+ }
116
+ interface PaginatedResponse<T> {
117
+ data: T[];
118
+ pagination: {
119
+ page: number;
120
+ limit: number;
121
+ total: number;
122
+ totalPages: number;
123
+ };
124
+ }
125
+ interface Category {
126
+ id: string;
127
+ name: string;
128
+ slug: string;
129
+ description?: string;
130
+ image?: string;
131
+ productCount: number;
132
+ }
133
+
134
+ interface EcommerceProviderProps {
135
+ config: EcommerceConfig;
136
+ children: React.ReactNode;
137
+ }
138
+ declare function EcommerceProvider({ config, children }: EcommerceProviderProps): React.JSX.Element;
139
+
140
+ interface ThemeContextValue {
141
+ config: EcommerceConfig;
142
+ }
143
+ declare function useTheme(): ThemeContextValue;
144
+ interface ThemeProviderProps {
145
+ config: EcommerceConfig;
146
+ children: React.ReactNode;
147
+ }
148
+ declare function ThemeProvider({ config, children }: ThemeProviderProps): React.JSX.Element;
149
+
150
+ interface AuthContextValue {
151
+ user: User | null;
152
+ isAuthenticated: boolean;
153
+ isLoading: boolean;
154
+ login: (credentials: LoginCredentials) => Promise<void>;
155
+ register: (data: RegisterData) => Promise<void>;
156
+ logout: () => Promise<void>;
157
+ updateUser: (data: Partial<User>) => Promise<void>;
158
+ refreshUser: () => Promise<void>;
159
+ }
160
+ declare function useAuth(): AuthContextValue;
161
+ interface AuthProviderProps {
162
+ children: React.ReactNode;
163
+ }
164
+ declare function AuthProvider({ children }: AuthProviderProps): React.JSX.Element;
165
+
166
+ interface CartContextValue {
167
+ cart: Cart | null;
168
+ isLoading: boolean;
169
+ addToCart: (productId: string, quantity?: number) => Promise<void>;
170
+ updateQuantity: (productId: string, quantity: number) => Promise<void>;
171
+ removeFromCart: (productId: string) => Promise<void>;
172
+ clearCart: () => Promise<void>;
173
+ refreshCart: () => Promise<void>;
174
+ }
175
+ declare function useCart(): CartContextValue;
176
+ interface CartProviderProps {
177
+ children: React.ReactNode;
178
+ }
179
+ declare function CartProvider({ children }: CartProviderProps): React.JSX.Element;
180
+
181
+ declare function ShopScreen(): React.JSX.Element;
182
+
183
+ interface ProductDetailScreenProps {
184
+ productId: string;
185
+ }
186
+ declare function ProductDetailScreen({ productId }: ProductDetailScreenProps): React.JSX.Element;
187
+
188
+ declare function CartScreen(): React.JSX.Element;
189
+
190
+ declare function CheckoutScreen(): React.JSX.Element | null;
191
+
192
+ declare function LoginScreen(): React.JSX.Element;
193
+
194
+ declare function RegisterScreen(): React.JSX.Element;
195
+
196
+ declare function ProfileScreen(): React.JSX.Element | null;
197
+
198
+ declare function OrdersScreen(): React.JSX.Element;
199
+
200
+ declare function CurrentOrdersScreen(): React.JSX.Element;
201
+
202
+ declare function Header(): React.JSX.Element;
203
+
204
+ declare function Footer(): React.JSX.Element;
205
+
206
+ interface ProductCardProps {
207
+ product: Product;
208
+ onClickProduct?: (product: Product) => void;
209
+ }
210
+ declare function ProductCard({ product, onClickProduct }: ProductCardProps): React.JSX.Element;
211
+
212
+ interface CartItemProps {
213
+ item: CartItem$1;
214
+ }
215
+ declare function CartItem({ item }: CartItemProps): React.JSX.Element;
216
+
217
+ interface OrderCardProps {
218
+ order: Order;
219
+ }
220
+ declare function OrderCard({ order }: OrderCardProps): React.JSX.Element;
221
+
222
+ interface EmptyStateProps {
223
+ icon: LucideIcon;
224
+ title: string;
225
+ description: string;
226
+ actionLabel?: string;
227
+ onAction?: () => void;
228
+ }
229
+ declare function EmptyState({ icon: Icon, title, description, actionLabel, onAction }: EmptyStateProps): React.JSX.Element;
230
+
231
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
232
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost';
233
+ size?: 'sm' | 'md' | 'lg';
234
+ isLoading?: boolean;
235
+ children: React.ReactNode;
236
+ }
237
+ declare function Button({ variant, size, isLoading, disabled, className, children, ...props }: ButtonProps): React.JSX.Element;
238
+
239
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
240
+ label?: string;
241
+ error?: string;
242
+ helperText?: string;
243
+ }
244
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
245
+
246
+ interface BadgeProps {
247
+ children: React.ReactNode;
248
+ variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'gray';
249
+ size?: 'sm' | 'md';
250
+ className?: string;
251
+ }
252
+ declare function Badge({ children, variant, size, className }: BadgeProps): React.JSX.Element;
253
+
254
+ interface ModalProps {
255
+ isOpen: boolean;
256
+ onClose: () => void;
257
+ title?: string;
258
+ children: React.ReactNode;
259
+ size?: 'sm' | 'md' | 'lg' | 'xl';
260
+ }
261
+ declare function Modal({ isOpen, onClose, title, children, size }: ModalProps): React.JSX.Element;
262
+
263
+ interface SkeletonProps {
264
+ className?: string;
265
+ }
266
+ declare function Skeleton({ className }: SkeletonProps): React.JSX.Element;
267
+ declare function ProductCardSkeleton(): React.JSX.Element;
268
+ declare function OrderCardSkeleton(): React.JSX.Element;
269
+
270
+ declare function useProducts(filters?: ProductFilters, page?: number, limit?: number): {
271
+ products: Product[];
272
+ isLoading: boolean;
273
+ error: Error | null;
274
+ pagination: {
275
+ page: number;
276
+ limit: number;
277
+ total: number;
278
+ totalPages: number;
279
+ };
280
+ refetch: () => Promise<void>;
281
+ };
282
+ declare function useProduct(id: string): {
283
+ product: Product | null;
284
+ isLoading: boolean;
285
+ error: Error | null;
286
+ };
287
+ declare function useFeaturedProducts(limit?: number): {
288
+ products: Product[];
289
+ isLoading: boolean;
290
+ error: Error | null;
291
+ };
292
+ declare function useCategories(): {
293
+ categories: Category[];
294
+ isLoading: boolean;
295
+ error: Error | null;
296
+ };
297
+
298
+ declare function useOrders(page?: number, limit?: number): {
299
+ orders: Order[];
300
+ isLoading: boolean;
301
+ error: Error | null;
302
+ pagination: {
303
+ page: number;
304
+ limit: number;
305
+ total: number;
306
+ totalPages: number;
307
+ };
308
+ refetch: () => Promise<void>;
309
+ };
310
+ declare function useOrder(id: string): {
311
+ order: Order | null;
312
+ isLoading: boolean;
313
+ error: Error | null;
314
+ refetch: () => Promise<void>;
315
+ };
316
+ declare function useCurrentOrders(): {
317
+ orders: Order[];
318
+ isLoading: boolean;
319
+ error: Error | null;
320
+ refetch: () => Promise<void>;
321
+ };
322
+
323
+ declare const productsApi: {
324
+ /**
325
+ * Get all products with optional filters and pagination
326
+ */
327
+ getProducts(filters?: ProductFilters, page?: number, limit?: number): Promise<PaginatedResponse<Product>>;
328
+ /**
329
+ * Get a single product by ID
330
+ */
331
+ getProduct(id: string): Promise<ApiResponse<Product>>;
332
+ /**
333
+ * Get featured products
334
+ */
335
+ getFeaturedProducts(limit?: number): Promise<ApiResponse<Product[]>>;
336
+ /**
337
+ * Get related products
338
+ */
339
+ getRelatedProducts(productId: string, limit?: number): Promise<ApiResponse<Product[]>>;
340
+ /**
341
+ * Get all categories
342
+ */
343
+ getCategories(): Promise<ApiResponse<Category[]>>;
344
+ /**
345
+ * Search products
346
+ */
347
+ searchProducts(query: string, limit?: number): Promise<ApiResponse<Product[]>>;
348
+ };
349
+
350
+ declare const authApi: {
351
+ /**
352
+ * Register a new user
353
+ */
354
+ register(data: RegisterData): Promise<ApiResponse<{
355
+ user: User;
356
+ tokens: AuthTokens;
357
+ }>>;
358
+ /**
359
+ * Login user
360
+ */
361
+ login(credentials: LoginCredentials): Promise<ApiResponse<{
362
+ user: User;
363
+ tokens: AuthTokens;
364
+ }>>;
365
+ /**
366
+ * Logout user
367
+ */
368
+ logout(): Promise<void>;
369
+ /**
370
+ * Get current user
371
+ */
372
+ getCurrentUser(): Promise<ApiResponse<User>>;
373
+ /**
374
+ * Update user profile
375
+ */
376
+ updateProfile(data: Partial<User>): Promise<ApiResponse<User>>;
377
+ /**
378
+ * Change password
379
+ */
380
+ changePassword(currentPassword: string, newPassword: string): Promise<ApiResponse<void>>;
381
+ /**
382
+ * Request password reset
383
+ */
384
+ forgotPassword(email: string): Promise<ApiResponse<void>>;
385
+ /**
386
+ * Reset password with token
387
+ */
388
+ resetPassword(token: string, newPassword: string): Promise<ApiResponse<void>>;
389
+ };
390
+
391
+ declare const cartApi: {
392
+ /**
393
+ * Get user's cart
394
+ */
395
+ getCart(): Promise<ApiResponse<Cart>>;
396
+ /**
397
+ * Add item to cart
398
+ * Note: Backend uses product variants. If variant ID not provided, uses product ID as variant
399
+ */
400
+ addToCart(productId: string, quantity?: number): Promise<ApiResponse<Cart>>;
401
+ /**
402
+ * Update cart item quantity
403
+ */
404
+ updateCartItem(productId: string, quantity: number): Promise<ApiResponse<Cart>>;
405
+ /**
406
+ * Remove item from cart
407
+ */
408
+ removeFromCart(productId: string): Promise<ApiResponse<Cart>>;
409
+ /**
410
+ * Clear cart
411
+ */
412
+ clearCart(): Promise<ApiResponse<void>>;
413
+ };
414
+
415
+ interface CreateOrderData {
416
+ shippingAddress: Address;
417
+ billingAddress: Address;
418
+ sameAsShipping?: boolean;
419
+ }
420
+ declare const ordersApi: {
421
+ /**
422
+ * Get user's orders with pagination
423
+ */
424
+ getOrders(page?: number, limit?: number): Promise<PaginatedResponse<Order>>;
425
+ /**
426
+ * Get current/active orders
427
+ */
428
+ getCurrentOrders(): Promise<ApiResponse<Order[]>>;
429
+ /**
430
+ * Get a single order by ID
431
+ */
432
+ getOrder(id: string): Promise<ApiResponse<Order>>;
433
+ /**
434
+ * Create a new order
435
+ */
436
+ createOrder(data: CreateOrderData): Promise<ApiResponse<Order>>;
437
+ /**
438
+ * Cancel an order
439
+ */
440
+ cancelOrder(id: string): Promise<ApiResponse<Order>>;
441
+ /**
442
+ * Get order tracking information
443
+ */
444
+ getOrderTracking(id: string): Promise<ApiResponse<any>>;
445
+ };
446
+
447
+ /**
448
+ * Hey Pharamcist API
449
+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
450
+ *
451
+ * OpenAPI spec version: 1.0
452
+ *
453
+ *
454
+ * NOTE: This class is auto generated by the swagger code generator program.
455
+ * https://github.com/swagger-api/swagger-codegen.git
456
+ * Do not edit the class manually.
457
+ */
458
+ interface ConfigurationParameters {
459
+ _id?: string;
460
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
461
+ username?: string;
462
+ password?: string;
463
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
464
+ basePath?: string;
465
+ baseOptions?: any;
466
+ }
467
+ declare class Configuration {
468
+ /**
469
+ * parameter for apiKey security
470
+ * @param name security name
471
+ * @memberof Configuration
472
+ */
473
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
474
+ /**
475
+ * parameter for basic security
476
+ *
477
+ * @type {string}
478
+ * @memberof Configuration
479
+ */
480
+ username?: string;
481
+ /**
482
+ * parameter for basic security
483
+ *
484
+ * @type {string}
485
+ * @memberof Configuration
486
+ */
487
+ password?: string;
488
+ /**
489
+ * parameter for oauth2 security
490
+ * @param name security name
491
+ * @param scopes oauth2 scope
492
+ * @memberof Configuration
493
+ */
494
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
495
+ /**
496
+ * override base path
497
+ *
498
+ * @type {string}
499
+ * @memberof Configuration
500
+ */
501
+ basePath?: string;
502
+ /**
503
+ * base options for axios calls
504
+ *
505
+ * @type {any}
506
+ * @memberof Configuration
507
+ */
508
+ baseOptions?: any;
509
+ constructor(param?: ConfigurationParameters);
510
+ }
511
+
512
+ /**
513
+ * API Adapter Configuration
514
+ * Bridges the frontend components with the real backend APIs
515
+ */
516
+
517
+ /**
518
+ * Initialize the API configuration with store settings
519
+ */
520
+ declare function initializeApiAdapter(config: EcommerceConfig): Configuration;
521
+ /**
522
+ * Get the current API configuration
523
+ */
524
+ declare function getApiConfiguration(): Configuration;
525
+
526
+ /**
527
+ * Format price with currency symbol
528
+ */
529
+ declare function formatPrice(price: number, currency?: string): string;
530
+ /**
531
+ * Format date
532
+ */
533
+ declare function formatDate(date: string | Date, format?: 'short' | 'long'): string;
534
+ /**
535
+ * Truncate text with ellipsis
536
+ */
537
+ declare function truncate(text: string, maxLength: number): string;
538
+ /**
539
+ * Generate initials from name
540
+ */
541
+ declare function getInitials(firstName: string, lastName: string): string;
542
+
543
+ /**
544
+ * Convert hex color to RGB array
545
+ */
546
+ declare function hexToRgb(hex: string): [number, number, number];
547
+ /**
548
+ * Generate color shades from a base color
549
+ */
550
+ declare function generateColorShades(baseColor: string): {
551
+ 50: string;
552
+ 100: string;
553
+ 200: string;
554
+ 300: string;
555
+ 400: string;
556
+ 500: string;
557
+ 600: string;
558
+ 700: string;
559
+ 800: string;
560
+ 900: string;
561
+ 950: string;
562
+ };
563
+
564
+ export { type Address, type ApiResponse, AuthProvider, type AuthTokens, Badge, Button, type Cart, CartItem, type CartItem$1 as CartItemType, CartProvider, CartScreen, type Category, CheckoutScreen, CurrentOrdersScreen, type EcommerceConfig, EcommerceProvider, EmptyState, Footer, Header, Input, type LoginCredentials, LoginScreen, Modal, type Order, OrderCard, OrderCardSkeleton, type OrderItem, OrderStatus, OrdersScreen, type PaginatedResponse, type Product, ProductCard, ProductCardSkeleton, ProductDetailScreen, type ProductFilters, ProfileScreen, type RegisterData, RegisterScreen, ShopScreen, Skeleton, ThemeProvider, type User, authApi, cartApi, formatDate, formatPrice, generateColorShades, getApiConfiguration, getInitials, hexToRgb, initializeApiAdapter, ordersApi, productsApi, truncate, useAuth, useCart, useCategories, useCurrentOrders, useFeaturedProducts, useOrder, useOrders, useProduct, useProducts, useTheme };