@rovela-ai/sdk 0.1.1 → 0.1.2

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 (575) hide show
  1. package/dist/admin/hooks/useAdminAuth.d.ts.map +1 -1
  2. package/dist/admin/hooks/useAdminAuth.js +4 -1
  3. package/dist/admin/hooks/useAdminAuth.js.map +1 -1
  4. package/dist/auth/hooks/useAuth.d.ts.map +1 -1
  5. package/dist/auth/hooks/useAuth.js +8 -2
  6. package/dist/auth/hooks/useAuth.js.map +1 -1
  7. package/package.json +1 -1
  8. package/dist/admin/api/auth.d.ts +0 -32
  9. package/dist/admin/api/auth.d.ts.map +0 -1
  10. package/dist/admin/api/auth.js +0 -43
  11. package/dist/admin/api/auth.js.map +0 -1
  12. package/dist/admin/api/categories.d.ts +0 -68
  13. package/dist/admin/api/categories.d.ts.map +0 -1
  14. package/dist/admin/api/categories.js +0 -247
  15. package/dist/admin/api/categories.js.map +0 -1
  16. package/dist/admin/api/customers.d.ts +0 -41
  17. package/dist/admin/api/customers.d.ts.map +0 -1
  18. package/dist/admin/api/customers.js +0 -113
  19. package/dist/admin/api/customers.js.map +0 -1
  20. package/dist/admin/api/index.d.ts +0 -56
  21. package/dist/admin/api/index.d.ts.map +0 -1
  22. package/dist/admin/api/index.js +0 -87
  23. package/dist/admin/api/index.js.map +0 -1
  24. package/dist/admin/api/orders.d.ts +0 -59
  25. package/dist/admin/api/orders.d.ts.map +0 -1
  26. package/dist/admin/api/orders.js +0 -209
  27. package/dist/admin/api/orders.js.map +0 -1
  28. package/dist/admin/api/products.d.ts +0 -103
  29. package/dist/admin/api/products.d.ts.map +0 -1
  30. package/dist/admin/api/products.js +0 -329
  31. package/dist/admin/api/products.js.map +0 -1
  32. package/dist/admin/api/refund.d.ts +0 -29
  33. package/dist/admin/api/refund.d.ts.map +0 -1
  34. package/dist/admin/api/refund.js +0 -136
  35. package/dist/admin/api/refund.js.map +0 -1
  36. package/dist/admin/api/stats.d.ts +0 -40
  37. package/dist/admin/api/stats.d.ts.map +0 -1
  38. package/dist/admin/api/stats.js +0 -74
  39. package/dist/admin/api/stats.js.map +0 -1
  40. package/dist/admin/components/AdminGuard.d.ts +0 -40
  41. package/dist/admin/components/AdminGuard.d.ts.map +0 -1
  42. package/dist/admin/components/AdminGuard.js +0 -97
  43. package/dist/admin/components/AdminGuard.js.map +0 -1
  44. package/dist/admin/components/AdminHeader.d.ts +0 -18
  45. package/dist/admin/components/AdminHeader.d.ts.map +0 -1
  46. package/dist/admin/components/AdminHeader.js +0 -33
  47. package/dist/admin/components/AdminHeader.js.map +0 -1
  48. package/dist/admin/components/AdminLayout.d.ts +0 -50
  49. package/dist/admin/components/AdminLayout.d.ts.map +0 -1
  50. package/dist/admin/components/AdminLayout.js +0 -46
  51. package/dist/admin/components/AdminLayout.js.map +0 -1
  52. package/dist/admin/components/AdminLoginForm.d.ts +0 -18
  53. package/dist/admin/components/AdminLoginForm.d.ts.map +0 -1
  54. package/dist/admin/components/AdminLoginForm.js +0 -58
  55. package/dist/admin/components/AdminLoginForm.js.map +0 -1
  56. package/dist/admin/components/AdminNav.d.ts +0 -34
  57. package/dist/admin/components/AdminNav.d.ts.map +0 -1
  58. package/dist/admin/components/AdminNav.js +0 -61
  59. package/dist/admin/components/AdminNav.js.map +0 -1
  60. package/dist/admin/components/InventoryEditor.d.ts +0 -15
  61. package/dist/admin/components/InventoryEditor.d.ts.map +0 -1
  62. package/dist/admin/components/InventoryEditor.js +0 -83
  63. package/dist/admin/components/InventoryEditor.js.map +0 -1
  64. package/dist/admin/components/LowStockAlert.d.ts +0 -11
  65. package/dist/admin/components/LowStockAlert.d.ts.map +0 -1
  66. package/dist/admin/components/LowStockAlert.js +0 -35
  67. package/dist/admin/components/LowStockAlert.js.map +0 -1
  68. package/dist/admin/components/OrderDetails.d.ts +0 -14
  69. package/dist/admin/components/OrderDetails.d.ts.map +0 -1
  70. package/dist/admin/components/OrderDetails.js +0 -94
  71. package/dist/admin/components/OrderDetails.js.map +0 -1
  72. package/dist/admin/components/OrderTable.d.ts +0 -13
  73. package/dist/admin/components/OrderTable.d.ts.map +0 -1
  74. package/dist/admin/components/OrderTable.js +0 -89
  75. package/dist/admin/components/OrderTable.js.map +0 -1
  76. package/dist/admin/components/ProductForm.d.ts +0 -18
  77. package/dist/admin/components/ProductForm.d.ts.map +0 -1
  78. package/dist/admin/components/ProductForm.js +0 -127
  79. package/dist/admin/components/ProductForm.js.map +0 -1
  80. package/dist/admin/components/ProductTable.d.ts +0 -13
  81. package/dist/admin/components/ProductTable.d.ts.map +0 -1
  82. package/dist/admin/components/ProductTable.js +0 -81
  83. package/dist/admin/components/ProductTable.js.map +0 -1
  84. package/dist/admin/components/RecentOrders.d.ts +0 -11
  85. package/dist/admin/components/RecentOrders.d.ts.map +0 -1
  86. package/dist/admin/components/RecentOrders.js +0 -58
  87. package/dist/admin/components/RecentOrders.js.map +0 -1
  88. package/dist/admin/components/RefundDialog.d.ts +0 -17
  89. package/dist/admin/components/RefundDialog.d.ts.map +0 -1
  90. package/dist/admin/components/RefundDialog.js +0 -86
  91. package/dist/admin/components/RefundDialog.js.map +0 -1
  92. package/dist/admin/components/StatsCards.d.ts +0 -23
  93. package/dist/admin/components/StatsCards.d.ts.map +0 -1
  94. package/dist/admin/components/StatsCards.js +0 -82
  95. package/dist/admin/components/StatsCards.js.map +0 -1
  96. package/dist/admin/components/StoreSettings.d.ts +0 -14
  97. package/dist/admin/components/StoreSettings.d.ts.map +0 -1
  98. package/dist/admin/components/StoreSettings.js +0 -88
  99. package/dist/admin/components/StoreSettings.js.map +0 -1
  100. package/dist/admin/components/index.d.ts +0 -21
  101. package/dist/admin/components/index.d.ts.map +0 -1
  102. package/dist/admin/components/index.js +0 -57
  103. package/dist/admin/components/index.js.map +0 -1
  104. package/dist/admin/config.d.ts +0 -74
  105. package/dist/admin/config.d.ts.map +0 -1
  106. package/dist/admin/config.js +0 -229
  107. package/dist/admin/config.js.map +0 -1
  108. package/dist/admin/hooks/index.d.ts +0 -10
  109. package/dist/admin/hooks/index.d.ts.map +0 -1
  110. package/dist/admin/hooks/index.js +0 -17
  111. package/dist/admin/hooks/index.js.map +0 -1
  112. package/dist/admin/hooks/useAdminOrders.d.ts +0 -41
  113. package/dist/admin/hooks/useAdminOrders.d.ts.map +0 -1
  114. package/dist/admin/hooks/useAdminOrders.js +0 -191
  115. package/dist/admin/hooks/useAdminOrders.js.map +0 -1
  116. package/dist/admin/hooks/useAdminProducts.d.ts +0 -39
  117. package/dist/admin/hooks/useAdminProducts.d.ts.map +0 -1
  118. package/dist/admin/hooks/useAdminProducts.js +0 -235
  119. package/dist/admin/hooks/useAdminProducts.js.map +0 -1
  120. package/dist/admin/hooks/useAdminStats.d.ts +0 -50
  121. package/dist/admin/hooks/useAdminStats.d.ts.map +0 -1
  122. package/dist/admin/hooks/useAdminStats.js +0 -111
  123. package/dist/admin/hooks/useAdminStats.js.map +0 -1
  124. package/dist/admin/index.d.ts +0 -63
  125. package/dist/admin/index.d.ts.map +0 -1
  126. package/dist/admin/index.js +0 -148
  127. package/dist/admin/index.js.map +0 -1
  128. package/dist/admin/server/admin-service.d.ts +0 -130
  129. package/dist/admin/server/admin-service.d.ts.map +0 -1
  130. package/dist/admin/server/admin-service.js +0 -298
  131. package/dist/admin/server/admin-service.js.map +0 -1
  132. package/dist/admin/server/index.d.ts +0 -8
  133. package/dist/admin/server/index.d.ts.map +0 -1
  134. package/dist/admin/server/index.js +0 -25
  135. package/dist/admin/server/index.js.map +0 -1
  136. package/dist/admin/types.d.ts +0 -549
  137. package/dist/admin/types.d.ts.map +0 -1
  138. package/dist/admin/types.js +0 -11
  139. package/dist/admin/types.js.map +0 -1
  140. package/dist/auth/api/auth.d.ts +0 -54
  141. package/dist/auth/api/auth.d.ts.map +0 -1
  142. package/dist/auth/api/auth.js +0 -67
  143. package/dist/auth/api/auth.js.map +0 -1
  144. package/dist/auth/api/forgot-password.d.ts +0 -41
  145. package/dist/auth/api/forgot-password.d.ts.map +0 -1
  146. package/dist/auth/api/forgot-password.js +0 -68
  147. package/dist/auth/api/forgot-password.js.map +0 -1
  148. package/dist/auth/api/index.d.ts +0 -34
  149. package/dist/auth/api/index.d.ts.map +0 -1
  150. package/dist/auth/api/index.js +0 -52
  151. package/dist/auth/api/index.js.map +0 -1
  152. package/dist/auth/api/register.d.ts +0 -41
  153. package/dist/auth/api/register.d.ts.map +0 -1
  154. package/dist/auth/api/register.js +0 -93
  155. package/dist/auth/api/register.js.map +0 -1
  156. package/dist/auth/api/resend-verification.d.ts +0 -41
  157. package/dist/auth/api/resend-verification.d.ts.map +0 -1
  158. package/dist/auth/api/resend-verification.js +0 -71
  159. package/dist/auth/api/resend-verification.js.map +0 -1
  160. package/dist/auth/api/reset-password.d.ts +0 -67
  161. package/dist/auth/api/reset-password.d.ts.map +0 -1
  162. package/dist/auth/api/reset-password.js +0 -110
  163. package/dist/auth/api/reset-password.js.map +0 -1
  164. package/dist/auth/api/verify-email.d.ts +0 -47
  165. package/dist/auth/api/verify-email.d.ts.map +0 -1
  166. package/dist/auth/api/verify-email.js +0 -94
  167. package/dist/auth/api/verify-email.js.map +0 -1
  168. package/dist/auth/components/AuthGuard.d.ts +0 -52
  169. package/dist/auth/components/AuthGuard.d.ts.map +0 -1
  170. package/dist/auth/components/AuthGuard.js +0 -113
  171. package/dist/auth/components/AuthGuard.js.map +0 -1
  172. package/dist/auth/components/ForgotPasswordForm.d.ts +0 -15
  173. package/dist/auth/components/ForgotPasswordForm.d.ts.map +0 -1
  174. package/dist/auth/components/ForgotPasswordForm.js +0 -44
  175. package/dist/auth/components/ForgotPasswordForm.js.map +0 -1
  176. package/dist/auth/components/ResetPasswordForm.d.ts +0 -18
  177. package/dist/auth/components/ResetPasswordForm.d.ts.map +0 -1
  178. package/dist/auth/components/ResetPasswordForm.js +0 -88
  179. package/dist/auth/components/ResetPasswordForm.js.map +0 -1
  180. package/dist/auth/components/SignInForm.d.ts +0 -21
  181. package/dist/auth/components/SignInForm.d.ts.map +0 -1
  182. package/dist/auth/components/SignInForm.js +0 -63
  183. package/dist/auth/components/SignInForm.js.map +0 -1
  184. package/dist/auth/components/SignUpForm.d.ts +0 -18
  185. package/dist/auth/components/SignUpForm.d.ts.map +0 -1
  186. package/dist/auth/components/SignUpForm.js +0 -79
  187. package/dist/auth/components/SignUpForm.js.map +0 -1
  188. package/dist/auth/components/UserMenu.d.ts +0 -18
  189. package/dist/auth/components/UserMenu.d.ts.map +0 -1
  190. package/dist/auth/components/UserMenu.js +0 -75
  191. package/dist/auth/components/UserMenu.js.map +0 -1
  192. package/dist/auth/components/VerifyEmailNotice.d.ts +0 -20
  193. package/dist/auth/components/VerifyEmailNotice.d.ts.map +0 -1
  194. package/dist/auth/components/VerifyEmailNotice.js +0 -59
  195. package/dist/auth/components/VerifyEmailNotice.js.map +0 -1
  196. package/dist/auth/components/index.d.ts +0 -13
  197. package/dist/auth/components/index.d.ts.map +0 -1
  198. package/dist/auth/components/index.js +0 -24
  199. package/dist/auth/components/index.js.map +0 -1
  200. package/dist/auth/config.d.ts +0 -42
  201. package/dist/auth/config.d.ts.map +0 -1
  202. package/dist/auth/config.js +0 -174
  203. package/dist/auth/config.js.map +0 -1
  204. package/dist/auth/hooks/index.d.ts +0 -7
  205. package/dist/auth/hooks/index.d.ts.map +0 -1
  206. package/dist/auth/hooks/index.js +0 -11
  207. package/dist/auth/hooks/index.js.map +0 -1
  208. package/dist/auth/index.d.ts +0 -54
  209. package/dist/auth/index.d.ts.map +0 -1
  210. package/dist/auth/index.js +0 -88
  211. package/dist/auth/index.js.map +0 -1
  212. package/dist/auth/server/customer-service.d.ts +0 -138
  213. package/dist/auth/server/customer-service.d.ts.map +0 -1
  214. package/dist/auth/server/customer-service.js +0 -309
  215. package/dist/auth/server/customer-service.js.map +0 -1
  216. package/dist/auth/server/email-sender.d.ts +0 -64
  217. package/dist/auth/server/email-sender.d.ts.map +0 -1
  218. package/dist/auth/server/email-sender.js +0 -112
  219. package/dist/auth/server/email-sender.js.map +0 -1
  220. package/dist/auth/server/index.d.ts +0 -13
  221. package/dist/auth/server/index.d.ts.map +0 -1
  222. package/dist/auth/server/index.js +0 -48
  223. package/dist/auth/server/index.js.map +0 -1
  224. package/dist/auth/server/password-reset-service.d.ts +0 -86
  225. package/dist/auth/server/password-reset-service.d.ts.map +0 -1
  226. package/dist/auth/server/password-reset-service.js +0 -236
  227. package/dist/auth/server/password-reset-service.js.map +0 -1
  228. package/dist/auth/server/password.d.ts +0 -58
  229. package/dist/auth/server/password.d.ts.map +0 -1
  230. package/dist/auth/server/password.js +0 -94
  231. package/dist/auth/server/password.js.map +0 -1
  232. package/dist/auth/server/verification-service.d.ts +0 -87
  233. package/dist/auth/server/verification-service.d.ts.map +0 -1
  234. package/dist/auth/server/verification-service.js +0 -268
  235. package/dist/auth/server/verification-service.js.map +0 -1
  236. package/dist/auth/types.d.ts +0 -305
  237. package/dist/auth/types.d.ts.map +0 -1
  238. package/dist/auth/types.js +0 -8
  239. package/dist/auth/types.js.map +0 -1
  240. package/dist/cart/CartProvider.d.ts +0 -65
  241. package/dist/cart/CartProvider.d.ts.map +0 -1
  242. package/dist/cart/CartProvider.js +0 -101
  243. package/dist/cart/CartProvider.js.map +0 -1
  244. package/dist/cart/components/AddToCartButton.d.ts +0 -77
  245. package/dist/cart/components/AddToCartButton.d.ts.map +0 -1
  246. package/dist/cart/components/AddToCartButton.js +0 -124
  247. package/dist/cart/components/AddToCartButton.js.map +0 -1
  248. package/dist/cart/components/CartDrawer.d.ts +0 -71
  249. package/dist/cart/components/CartDrawer.d.ts.map +0 -1
  250. package/dist/cart/components/CartDrawer.js +0 -108
  251. package/dist/cart/components/CartDrawer.js.map +0 -1
  252. package/dist/cart/components/CartIcon.d.ts +0 -36
  253. package/dist/cart/components/CartIcon.d.ts.map +0 -1
  254. package/dist/cart/components/CartIcon.js +0 -70
  255. package/dist/cart/components/CartIcon.js.map +0 -1
  256. package/dist/cart/components/CartItem.d.ts +0 -52
  257. package/dist/cart/components/CartItem.d.ts.map +0 -1
  258. package/dist/cart/components/CartItem.js +0 -55
  259. package/dist/cart/components/CartItem.js.map +0 -1
  260. package/dist/cart/components/CartSummary.d.ts +0 -43
  261. package/dist/cart/components/CartSummary.d.ts.map +0 -1
  262. package/dist/cart/components/CartSummary.js +0 -58
  263. package/dist/cart/components/CartSummary.js.map +0 -1
  264. package/dist/cart/components/QuantitySelector.d.ts +0 -39
  265. package/dist/cart/components/QuantitySelector.d.ts.map +0 -1
  266. package/dist/cart/components/QuantitySelector.js +0 -87
  267. package/dist/cart/components/QuantitySelector.js.map +0 -1
  268. package/dist/cart/components/index.d.ts +0 -18
  269. package/dist/cart/components/index.d.ts.map +0 -1
  270. package/dist/cart/components/index.js +0 -21
  271. package/dist/cart/components/index.js.map +0 -1
  272. package/dist/cart/index.d.ts +0 -109
  273. package/dist/cart/index.d.ts.map +0 -1
  274. package/dist/cart/index.js +0 -129
  275. package/dist/cart/index.js.map +0 -1
  276. package/dist/cart/store.d.ts +0 -101
  277. package/dist/cart/store.d.ts.map +0 -1
  278. package/dist/cart/store.js +0 -207
  279. package/dist/cart/store.js.map +0 -1
  280. package/dist/checkout/api/checkout.d.ts +0 -31
  281. package/dist/checkout/api/checkout.d.ts.map +0 -1
  282. package/dist/checkout/api/checkout.js +0 -103
  283. package/dist/checkout/api/checkout.js.map +0 -1
  284. package/dist/checkout/api/index.d.ts +0 -8
  285. package/dist/checkout/api/index.d.ts.map +0 -1
  286. package/dist/checkout/api/index.js +0 -13
  287. package/dist/checkout/api/index.js.map +0 -1
  288. package/dist/checkout/api/webhook.d.ts +0 -30
  289. package/dist/checkout/api/webhook.d.ts.map +0 -1
  290. package/dist/checkout/api/webhook.js +0 -58
  291. package/dist/checkout/api/webhook.js.map +0 -1
  292. package/dist/checkout/components/CheckoutButton.d.ts +0 -44
  293. package/dist/checkout/components/CheckoutButton.d.ts.map +0 -1
  294. package/dist/checkout/components/CheckoutButton.js +0 -97
  295. package/dist/checkout/components/CheckoutButton.js.map +0 -1
  296. package/dist/checkout/components/CheckoutSuccess.d.ts +0 -29
  297. package/dist/checkout/components/CheckoutSuccess.d.ts.map +0 -1
  298. package/dist/checkout/components/CheckoutSuccess.js +0 -60
  299. package/dist/checkout/components/CheckoutSuccess.js.map +0 -1
  300. package/dist/checkout/components/OrderSummary.d.ts +0 -37
  301. package/dist/checkout/components/OrderSummary.d.ts.map +0 -1
  302. package/dist/checkout/components/OrderSummary.js +0 -70
  303. package/dist/checkout/components/OrderSummary.js.map +0 -1
  304. package/dist/checkout/components/ShippingForm.d.ts +0 -30
  305. package/dist/checkout/components/ShippingForm.d.ts.map +0 -1
  306. package/dist/checkout/components/ShippingForm.js +0 -125
  307. package/dist/checkout/components/ShippingForm.js.map +0 -1
  308. package/dist/checkout/components/index.d.ts +0 -10
  309. package/dist/checkout/components/index.d.ts.map +0 -1
  310. package/dist/checkout/components/index.js +0 -17
  311. package/dist/checkout/components/index.js.map +0 -1
  312. package/dist/checkout/hooks/index.d.ts +0 -7
  313. package/dist/checkout/hooks/index.d.ts.map +0 -1
  314. package/dist/checkout/hooks/index.js +0 -12
  315. package/dist/checkout/hooks/index.js.map +0 -1
  316. package/dist/checkout/hooks/useCheckout.d.ts +0 -61
  317. package/dist/checkout/hooks/useCheckout.d.ts.map +0 -1
  318. package/dist/checkout/hooks/useCheckout.js +0 -174
  319. package/dist/checkout/hooks/useCheckout.js.map +0 -1
  320. package/dist/checkout/index.d.ts +0 -111
  321. package/dist/checkout/index.d.ts.map +0 -1
  322. package/dist/checkout/index.js +0 -148
  323. package/dist/checkout/index.js.map +0 -1
  324. package/dist/checkout/server/create-checkout-session.d.ts +0 -69
  325. package/dist/checkout/server/create-checkout-session.d.ts.map +0 -1
  326. package/dist/checkout/server/create-checkout-session.js +0 -190
  327. package/dist/checkout/server/create-checkout-session.js.map +0 -1
  328. package/dist/checkout/server/handle-webhook.d.ts +0 -35
  329. package/dist/checkout/server/handle-webhook.d.ts.map +0 -1
  330. package/dist/checkout/server/handle-webhook.js +0 -279
  331. package/dist/checkout/server/handle-webhook.js.map +0 -1
  332. package/dist/checkout/server/index.d.ts +0 -10
  333. package/dist/checkout/server/index.d.ts.map +0 -1
  334. package/dist/checkout/server/index.js +0 -19
  335. package/dist/checkout/server/index.js.map +0 -1
  336. package/dist/checkout/server/order-service.d.ts +0 -43
  337. package/dist/checkout/server/order-service.d.ts.map +0 -1
  338. package/dist/checkout/server/order-service.js +0 -196
  339. package/dist/checkout/server/order-service.js.map +0 -1
  340. package/dist/checkout/stripe/client.d.ts +0 -72
  341. package/dist/checkout/stripe/client.d.ts.map +0 -1
  342. package/dist/checkout/stripe/client.js +0 -189
  343. package/dist/checkout/stripe/client.js.map +0 -1
  344. package/dist/checkout/stripe/index.d.ts +0 -7
  345. package/dist/checkout/stripe/index.d.ts.map +0 -1
  346. package/dist/checkout/stripe/index.js +0 -21
  347. package/dist/checkout/stripe/index.js.map +0 -1
  348. package/dist/checkout/types.d.ts +0 -263
  349. package/dist/checkout/types.d.ts.map +0 -1
  350. package/dist/checkout/types.js +0 -9
  351. package/dist/checkout/types.js.map +0 -1
  352. package/dist/core/config.d.ts +0 -296
  353. package/dist/core/config.d.ts.map +0 -1
  354. package/dist/core/config.js +0 -162
  355. package/dist/core/config.js.map +0 -1
  356. package/dist/core/db/client.d.ts +0 -69
  357. package/dist/core/db/client.d.ts.map +0 -1
  358. package/dist/core/db/client.js +0 -202
  359. package/dist/core/db/client.js.map +0 -1
  360. package/dist/core/db/index.d.ts +0 -11
  361. package/dist/core/db/index.d.ts.map +0 -1
  362. package/dist/core/db/index.js +0 -87
  363. package/dist/core/db/index.js.map +0 -1
  364. package/dist/core/db/queries.d.ts +0 -658
  365. package/dist/core/db/queries.d.ts.map +0 -1
  366. package/dist/core/db/queries.js +0 -735
  367. package/dist/core/db/queries.js.map +0 -1
  368. package/dist/core/db/schema.d.ts +0 -1628
  369. package/dist/core/db/schema.d.ts.map +0 -1
  370. package/dist/core/db/schema.js +0 -262
  371. package/dist/core/db/schema.js.map +0 -1
  372. package/dist/core/index.d.ts +0 -20
  373. package/dist/core/index.d.ts.map +0 -1
  374. package/dist/core/index.js +0 -71
  375. package/dist/core/index.js.map +0 -1
  376. package/dist/core/server/index.d.ts +0 -17
  377. package/dist/core/server/index.d.ts.map +0 -1
  378. package/dist/core/server/index.js +0 -68
  379. package/dist/core/server/index.js.map +0 -1
  380. package/dist/core/types.d.ts +0 -230
  381. package/dist/core/types.d.ts.map +0 -1
  382. package/dist/core/types.js +0 -9
  383. package/dist/core/types.js.map +0 -1
  384. package/dist/core/utils.d.ts +0 -153
  385. package/dist/core/utils.d.ts.map +0 -1
  386. package/dist/core/utils.js +0 -356
  387. package/dist/core/utils.js.map +0 -1
  388. package/dist/emails/config.d.ts +0 -42
  389. package/dist/emails/config.d.ts.map +0 -1
  390. package/dist/emails/config.js +0 -89
  391. package/dist/emails/config.js.map +0 -1
  392. package/dist/emails/index.d.ts +0 -85
  393. package/dist/emails/index.d.ts.map +0 -1
  394. package/dist/emails/index.js +0 -170
  395. package/dist/emails/index.js.map +0 -1
  396. package/dist/emails/send/auth.d.ts +0 -91
  397. package/dist/emails/send/auth.d.ts.map +0 -1
  398. package/dist/emails/send/auth.js +0 -132
  399. package/dist/emails/send/auth.js.map +0 -1
  400. package/dist/emails/send/index.d.ts +0 -10
  401. package/dist/emails/send/index.d.ts.map +0 -1
  402. package/dist/emails/send/index.js +0 -33
  403. package/dist/emails/send/index.js.map +0 -1
  404. package/dist/emails/send/orders.d.ts +0 -180
  405. package/dist/emails/send/orders.d.ts.map +0 -1
  406. package/dist/emails/send/orders.js +0 -259
  407. package/dist/emails/send/orders.js.map +0 -1
  408. package/dist/emails/sender.d.ts +0 -72
  409. package/dist/emails/sender.d.ts.map +0 -1
  410. package/dist/emails/sender.js +0 -118
  411. package/dist/emails/sender.js.map +0 -1
  412. package/dist/emails/templates/base.d.ts +0 -105
  413. package/dist/emails/templates/base.d.ts.map +0 -1
  414. package/dist/emails/templates/base.js +0 -291
  415. package/dist/emails/templates/base.js.map +0 -1
  416. package/dist/emails/templates/email-verification.d.ts +0 -28
  417. package/dist/emails/templates/email-verification.d.ts.map +0 -1
  418. package/dist/emails/templates/email-verification.js +0 -56
  419. package/dist/emails/templates/email-verification.js.map +0 -1
  420. package/dist/emails/templates/index.d.ts +0 -15
  421. package/dist/emails/templates/index.d.ts.map +0 -1
  422. package/dist/emails/templates/index.js +0 -58
  423. package/dist/emails/templates/index.js.map +0 -1
  424. package/dist/emails/templates/order-cancelled.d.ts +0 -30
  425. package/dist/emails/templates/order-cancelled.d.ts.map +0 -1
  426. package/dist/emails/templates/order-cancelled.js +0 -87
  427. package/dist/emails/templates/order-cancelled.js.map +0 -1
  428. package/dist/emails/templates/order-confirmation.d.ts +0 -36
  429. package/dist/emails/templates/order-confirmation.d.ts.map +0 -1
  430. package/dist/emails/templates/order-confirmation.js +0 -161
  431. package/dist/emails/templates/order-confirmation.js.map +0 -1
  432. package/dist/emails/templates/order-delivered.d.ts +0 -31
  433. package/dist/emails/templates/order-delivered.d.ts.map +0 -1
  434. package/dist/emails/templates/order-delivered.js +0 -95
  435. package/dist/emails/templates/order-delivered.js.map +0 -1
  436. package/dist/emails/templates/order-shipped.d.ts +0 -32
  437. package/dist/emails/templates/order-shipped.d.ts.map +0 -1
  438. package/dist/emails/templates/order-shipped.js +0 -87
  439. package/dist/emails/templates/order-shipped.js.map +0 -1
  440. package/dist/emails/templates/password-reset.d.ts +0 -27
  441. package/dist/emails/templates/password-reset.d.ts.map +0 -1
  442. package/dist/emails/templates/password-reset.js +0 -55
  443. package/dist/emails/templates/password-reset.js.map +0 -1
  444. package/dist/emails/templates/refund-processed.d.ts +0 -32
  445. package/dist/emails/templates/refund-processed.d.ts.map +0 -1
  446. package/dist/emails/templates/refund-processed.js +0 -96
  447. package/dist/emails/templates/refund-processed.js.map +0 -1
  448. package/dist/emails/templates/welcome.d.ts +0 -27
  449. package/dist/emails/templates/welcome.d.ts.map +0 -1
  450. package/dist/emails/templates/welcome.js +0 -56
  451. package/dist/emails/templates/welcome.js.map +0 -1
  452. package/dist/emails/types.d.ts +0 -202
  453. package/dist/emails/types.d.ts.map +0 -1
  454. package/dist/emails/types.js +0 -8
  455. package/dist/emails/types.js.map +0 -1
  456. package/dist/emails/utils.d.ts +0 -94
  457. package/dist/emails/utils.d.ts.map +0 -1
  458. package/dist/emails/utils.js +0 -229
  459. package/dist/emails/utils.js.map +0 -1
  460. package/dist/index.d.ts +0 -40
  461. package/dist/index.d.ts.map +0 -1
  462. package/dist/index.js +0 -225
  463. package/dist/index.js.map +0 -1
  464. package/dist/products/api/categories.d.ts +0 -29
  465. package/dist/products/api/categories.d.ts.map +0 -1
  466. package/dist/products/api/categories.js +0 -49
  467. package/dist/products/api/categories.js.map +0 -1
  468. package/dist/products/api/index.d.ts +0 -24
  469. package/dist/products/api/index.d.ts.map +0 -1
  470. package/dist/products/api/index.js +0 -30
  471. package/dist/products/api/index.js.map +0 -1
  472. package/dist/products/api/product.d.ts +0 -36
  473. package/dist/products/api/product.d.ts.map +0 -1
  474. package/dist/products/api/product.js +0 -70
  475. package/dist/products/api/product.js.map +0 -1
  476. package/dist/products/api/products.d.ts +0 -41
  477. package/dist/products/api/products.d.ts.map +0 -1
  478. package/dist/products/api/products.js +0 -102
  479. package/dist/products/api/products.js.map +0 -1
  480. package/dist/products/components/CategoryNav.d.ts +0 -51
  481. package/dist/products/components/CategoryNav.d.ts.map +0 -1
  482. package/dist/products/components/CategoryNav.js +0 -115
  483. package/dist/products/components/CategoryNav.js.map +0 -1
  484. package/dist/products/components/ProductBreadcrumb.d.ts +0 -52
  485. package/dist/products/components/ProductBreadcrumb.d.ts.map +0 -1
  486. package/dist/products/components/ProductBreadcrumb.js +0 -78
  487. package/dist/products/components/ProductBreadcrumb.js.map +0 -1
  488. package/dist/products/components/ProductCard.d.ts +0 -54
  489. package/dist/products/components/ProductCard.d.ts.map +0 -1
  490. package/dist/products/components/ProductCard.js +0 -65
  491. package/dist/products/components/ProductCard.js.map +0 -1
  492. package/dist/products/components/ProductDetails.d.ts +0 -63
  493. package/dist/products/components/ProductDetails.d.ts.map +0 -1
  494. package/dist/products/components/ProductDetails.js +0 -105
  495. package/dist/products/components/ProductDetails.js.map +0 -1
  496. package/dist/products/components/ProductFilters.d.ts +0 -70
  497. package/dist/products/components/ProductFilters.d.ts.map +0 -1
  498. package/dist/products/components/ProductFilters.js +0 -127
  499. package/dist/products/components/ProductFilters.js.map +0 -1
  500. package/dist/products/components/ProductGallery.d.ts +0 -37
  501. package/dist/products/components/ProductGallery.d.ts.map +0 -1
  502. package/dist/products/components/ProductGallery.js +0 -80
  503. package/dist/products/components/ProductGallery.js.map +0 -1
  504. package/dist/products/components/ProductGrid.d.ts +0 -50
  505. package/dist/products/components/ProductGrid.d.ts.map +0 -1
  506. package/dist/products/components/ProductGrid.js +0 -83
  507. package/dist/products/components/ProductGrid.js.map +0 -1
  508. package/dist/products/components/ProductSearch.d.ts +0 -43
  509. package/dist/products/components/ProductSearch.d.ts.map +0 -1
  510. package/dist/products/components/ProductSearch.js +0 -99
  511. package/dist/products/components/ProductSearch.js.map +0 -1
  512. package/dist/products/components/ProductSort.d.ts +0 -43
  513. package/dist/products/components/ProductSort.d.ts.map +0 -1
  514. package/dist/products/components/ProductSort.js +0 -61
  515. package/dist/products/components/ProductSort.js.map +0 -1
  516. package/dist/products/components/VariantSelector.d.ts +0 -43
  517. package/dist/products/components/VariantSelector.d.ts.map +0 -1
  518. package/dist/products/components/VariantSelector.js +0 -147
  519. package/dist/products/components/VariantSelector.js.map +0 -1
  520. package/dist/products/components/index.d.ts +0 -26
  521. package/dist/products/components/index.d.ts.map +0 -1
  522. package/dist/products/components/index.js +0 -32
  523. package/dist/products/components/index.js.map +0 -1
  524. package/dist/products/hooks/index.d.ts +0 -14
  525. package/dist/products/hooks/index.d.ts.map +0 -1
  526. package/dist/products/hooks/index.js +0 -17
  527. package/dist/products/hooks/index.js.map +0 -1
  528. package/dist/products/hooks/useCategories.d.ts +0 -56
  529. package/dist/products/hooks/useCategories.d.ts.map +0 -1
  530. package/dist/products/hooks/useCategories.js +0 -126
  531. package/dist/products/hooks/useCategories.js.map +0 -1
  532. package/dist/products/hooks/useProduct.d.ts +0 -44
  533. package/dist/products/hooks/useProduct.d.ts.map +0 -1
  534. package/dist/products/hooks/useProduct.js +0 -86
  535. package/dist/products/hooks/useProduct.js.map +0 -1
  536. package/dist/products/hooks/useProductAttributes.d.ts +0 -59
  537. package/dist/products/hooks/useProductAttributes.d.ts.map +0 -1
  538. package/dist/products/hooks/useProductAttributes.js +0 -148
  539. package/dist/products/hooks/useProductAttributes.js.map +0 -1
  540. package/dist/products/hooks/useProducts.d.ts +0 -67
  541. package/dist/products/hooks/useProducts.d.ts.map +0 -1
  542. package/dist/products/hooks/useProducts.js +0 -132
  543. package/dist/products/hooks/useProducts.js.map +0 -1
  544. package/dist/products/index.d.ts +0 -94
  545. package/dist/products/index.d.ts.map +0 -1
  546. package/dist/products/index.js +0 -123
  547. package/dist/products/index.js.map +0 -1
  548. package/dist/theme/ThemeProvider.d.ts +0 -70
  549. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  550. package/dist/theme/ThemeProvider.js +0 -77
  551. package/dist/theme/ThemeProvider.js.map +0 -1
  552. package/dist/theme/colors.d.ts +0 -148
  553. package/dist/theme/colors.d.ts.map +0 -1
  554. package/dist/theme/colors.js +0 -219
  555. package/dist/theme/colors.js.map +0 -1
  556. package/dist/theme/defaults.d.ts +0 -212
  557. package/dist/theme/defaults.d.ts.map +0 -1
  558. package/dist/theme/defaults.js +0 -278
  559. package/dist/theme/defaults.js.map +0 -1
  560. package/dist/theme/fonts.d.ts +0 -59
  561. package/dist/theme/fonts.d.ts.map +0 -1
  562. package/dist/theme/fonts.js +0 -202
  563. package/dist/theme/fonts.js.map +0 -1
  564. package/dist/theme/generator.d.ts +0 -50
  565. package/dist/theme/generator.d.ts.map +0 -1
  566. package/dist/theme/generator.js +0 -322
  567. package/dist/theme/generator.js.map +0 -1
  568. package/dist/theme/hooks.d.ts +0 -110
  569. package/dist/theme/hooks.d.ts.map +0 -1
  570. package/dist/theme/hooks.js +0 -106
  571. package/dist/theme/hooks.js.map +0 -1
  572. package/dist/theme/index.d.ts +0 -37
  573. package/dist/theme/index.d.ts.map +0 -1
  574. package/dist/theme/index.js +0 -85
  575. package/dist/theme/index.js.map +0 -1
@@ -1,83 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.InventoryEditor = InventoryEditor;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/admin/components/InventoryEditor
8
- *
9
- * Inline inventory editing for product variants.
10
- */
11
- const react_1 = require("react");
12
- const useAdminProducts_1 = require("../hooks/useAdminProducts");
13
- // =============================================================================
14
- // Component
15
- // =============================================================================
16
- /**
17
- * Inline inventory editor for product variants.
18
- *
19
- * @example
20
- * ```tsx
21
- * <InventoryEditor
22
- * productId="123"
23
- * variants={product.variants}
24
- * onUpdate={() => refetch()}
25
- * />
26
- * ```
27
- */
28
- function InventoryEditor({ productId, variants, onUpdate, className = '', }) {
29
- const { updateVariant } = (0, useAdminProducts_1.useAdminProducts)();
30
- const [editingId, setEditingId] = (0, react_1.useState)(null);
31
- const [editValue, setEditValue] = (0, react_1.useState)(0);
32
- const [isUpdating, setIsUpdating] = (0, react_1.useState)(false);
33
- const handleStartEdit = (0, react_1.useCallback)((variantId, currentValue) => {
34
- setEditingId(variantId);
35
- setEditValue(currentValue);
36
- }, []);
37
- const handleCancelEdit = (0, react_1.useCallback)(() => {
38
- setEditingId(null);
39
- setEditValue(0);
40
- }, []);
41
- const handleSave = (0, react_1.useCallback)(async (variantId) => {
42
- setIsUpdating(true);
43
- try {
44
- const result = await updateVariant(productId, variantId, {
45
- inventory: editValue,
46
- });
47
- if (result.success) {
48
- setEditingId(null);
49
- onUpdate?.();
50
- }
51
- }
52
- finally {
53
- setIsUpdating(false);
54
- }
55
- }, [productId, editValue, updateVariant, onUpdate]);
56
- const handleKeyDown = (0, react_1.useCallback)((e, variantId) => {
57
- if (e.key === 'Enter') {
58
- handleSave(variantId);
59
- }
60
- else if (e.key === 'Escape') {
61
- handleCancelEdit();
62
- }
63
- }, [handleSave, handleCancelEdit]);
64
- if (!variants || variants.length === 0) {
65
- return ((0, jsx_runtime_1.jsx)("div", { className: `rounded-lg border border-border bg-card p-6 ${className}`, children: (0, jsx_runtime_1.jsx)("p", { className: "text-center text-muted-foreground", children: "No variants to manage inventory for." }) }));
66
- }
67
- return ((0, jsx_runtime_1.jsxs)("div", { className: `rounded-lg border border-border bg-card overflow-hidden ${className}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "border-b border-border px-6 py-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-medium text-foreground", children: "Inventory Management" }), (0, jsx_runtime_1.jsx)("p", { className: "mt-1 text-sm text-muted-foreground", children: "Click on inventory count to edit" })] }), (0, jsx_runtime_1.jsx)("div", { className: "overflow-x-auto", children: (0, jsx_runtime_1.jsxs)("table", { className: "w-full", children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", { className: "border-b border-border bg-muted/50 text-left text-xs font-medium uppercase text-muted-foreground", children: [(0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Variant" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "SKU" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Price" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Inventory" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Status" })] }) }), (0, jsx_runtime_1.jsx)("tbody", { className: "divide-y divide-border", children: variants.map((variant) => {
68
- const isEditing = editingId === variant.id;
69
- const isLowStock = variant.inventory !== undefined && variant.inventory <= 10;
70
- const isOutOfStock = variant.inventory === 0;
71
- return ((0, jsx_runtime_1.jsxs)("tr", { className: "hover:bg-muted/50", children: [(0, jsx_runtime_1.jsxs)("td", { className: "px-6 py-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium text-foreground", children: variant.name }), variant.attributes && Object.keys(variant.attributes).length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "mt-1 flex flex-wrap gap-1", children: Object.entries(variant.attributes).map(([key, value]) => ((0, jsx_runtime_1.jsxs)("span", { className: "rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground", children: [key, ": ", value] }, key))) }))] }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4 text-sm text-muted-foreground", children: variant.sku || '—' }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4 text-sm text-foreground", children: variant.price
72
- ? new Intl.NumberFormat('en-US', {
73
- style: 'currency',
74
- currency: 'USD',
75
- }).format(parseFloat(variant.price))
76
- : '—' }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: isEditing ? ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("input", { type: "number", min: "0", value: editValue, onChange: (e) => setEditValue(parseInt(e.target.value) || 0), onKeyDown: (e) => handleKeyDown(e, variant.id), autoFocus: true, disabled: isUpdating, className: "w-20 rounded-md border border-input bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary disabled:opacity-50" }), (0, jsx_runtime_1.jsx)("button", { onClick: () => handleSave(variant.id), disabled: isUpdating, className: "rounded-md bg-primary px-2 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50", children: isUpdating ? '...' : 'Save' }), (0, jsx_runtime_1.jsx)("button", { onClick: handleCancelEdit, disabled: isUpdating, className: "rounded-md border border-border px-2 py-1 text-xs text-foreground hover:bg-accent disabled:opacity-50", children: "Cancel" })] })) : ((0, jsx_runtime_1.jsx)("button", { onClick: () => handleStartEdit(variant.id, variant.inventory ?? 0), className: "rounded-md border border-transparent px-2 py-1 text-sm font-medium text-foreground hover:border-border hover:bg-muted", children: variant.inventory ?? 0 })) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("span", { className: `inline-flex rounded-full px-2 py-1 text-xs font-medium ${isOutOfStock
77
- ? 'bg-red-100 text-red-800'
78
- : isLowStock
79
- ? 'bg-amber-100 text-amber-800'
80
- : 'bg-green-100 text-green-800'}`, children: isOutOfStock ? 'Out of stock' : isLowStock ? 'Low stock' : 'In stock' }) })] }, variant.id));
81
- }) })] }) })] }));
82
- }
83
- //# sourceMappingURL=InventoryEditor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InventoryEditor.js","sourceRoot":"","sources":["../../../src/admin/components/InventoryEditor.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AA4BZ,0CAuKC;;AAjMD;;;;GAIG;AAEH,iCAA6C;AAC7C,gEAA4D;AAG5D,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,EAAE,GACO;IACrB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,mCAAgB,GAAE,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAS,CAAC,CAAC,CAAA;IACrD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,CAAC,SAAiB,EAAE,YAAoB,EAAE,EAAE;QAC9E,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,YAAY,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;QACzD,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE;gBACvD,SAAS,EAAE,SAAS;aACO,CAAC,CAAA;YAE9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,YAAY,CAAC,IAAI,CAAC,CAAA;gBAClB,QAAQ,EAAE,EAAE,CAAA;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEnD,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAC,CAAsB,EAAE,SAAiB,EAAE,EAAE;QAC9E,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,UAAU,CAAC,SAAS,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9B,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAElC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CACL,gCAAK,SAAS,EAAE,+CAA+C,SAAS,EAAE,YACxE,8BAAG,SAAS,EAAC,mCAAmC,qDAE5C,GACA,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,2DAA2D,SAAS,EAAE,aACpF,iCAAK,SAAS,EAAC,kCAAkC,aAC/C,+BAAI,SAAS,EAAC,qCAAqC,qCAA0B,EAC7E,8BAAG,SAAS,EAAC,oCAAoC,iDAE7C,IACA,EAEN,gCAAK,SAAS,EAAC,iBAAiB,YAC9B,mCAAO,SAAS,EAAC,QAAQ,aACvB,4CACE,gCAAI,SAAS,EAAC,kGAAkG,aAC9G,+BAAI,SAAS,EAAC,WAAW,wBAAa,EACtC,+BAAI,SAAS,EAAC,WAAW,oBAAS,EAClC,+BAAI,SAAS,EAAC,WAAW,sBAAW,EACpC,+BAAI,SAAS,EAAC,WAAW,0BAAe,EACxC,+BAAI,SAAS,EAAC,WAAW,uBAAY,IAClC,GACC,EACR,kCAAO,SAAS,EAAC,wBAAwB,YACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gCACxB,MAAM,SAAS,GAAG,SAAS,KAAK,OAAO,CAAC,EAAE,CAAA;gCAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAA;gCAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,CAAA;gCAE5C,OAAO,CACL,gCAAqB,SAAS,EAAC,mBAAmB,aAChD,gCAAI,SAAS,EAAC,WAAW,aACvB,gCAAK,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,IAAI,GAAO,EAChE,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACnE,gCAAK,SAAS,EAAC,2BAA2B,YACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACxD,kCAEE,SAAS,EAAC,8DAA8D,aAEvE,GAAG,QAAI,KAAK,KAHR,GAAG,CAIH,CACR,CAAC,GACE,CACP,IACE,EACL,+BAAI,SAAS,EAAC,yCAAyC,YACpD,OAAO,CAAC,GAAG,IAAI,GAAG,GAChB,EACL,+BAAI,SAAS,EAAC,mCAAmC,YAC9C,OAAO,CAAC,KAAK;gDACZ,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oDAC7B,KAAK,EAAE,UAAU;oDACjB,QAAQ,EAAE,KAAK;iDAChB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gDACtC,CAAC,CAAC,GAAG,GACJ,EACL,+BAAI,SAAS,EAAC,WAAW,YACtB,SAAS,CAAC,CAAC,CAAC,CACX,iCAAK,SAAS,EAAC,yBAAyB,aACtC,kCACE,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,GAAG,EACP,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAC5D,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAC9C,SAAS,QACT,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,iKAAiK,GAC3K,EACF,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EACrC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,qHAAqH,YAE9H,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GACrB,EACT,mCACE,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,uGAAuG,uBAG1G,IACL,CACP,CAAC,CAAC,CAAC,CACF,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,EAClE,SAAS,EAAC,uHAAuH,YAEhI,OAAO,CAAC,SAAS,IAAI,CAAC,GAChB,CACV,GACE,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,iCACE,SAAS,EAAE,0DACT,YAAY;oDACV,CAAC,CAAC,yBAAyB;oDAC3B,CAAC,CAAC,UAAU;wDACZ,CAAC,CAAC,6BAA6B;wDAC/B,CAAC,CAAC,6BACN,EAAE,YAED,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GACjE,GACJ,KA5EE,OAAO,CAAC,EAAE,CA6Ed,CACN,CAAA;4BACH,CAAC,CAAC,GACI,IACF,GACJ,IACF,CACP,CAAA;AACH,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { LowStockAlertProps } from '../types';
2
- /**
3
- * Low stock alert widget for dashboard.
4
- *
5
- * @example
6
- * ```tsx
7
- * <LowStockAlert threshold={10} viewAllHref="/admin/products?filter=low-stock" />
8
- * ```
9
- */
10
- export declare function LowStockAlert({ threshold, viewAllHref, className, }: LowStockAlertProps): import("react/jsx-runtime").JSX.Element | null;
11
- //# sourceMappingURL=LowStockAlert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LowStockAlert.d.ts","sourceRoot":"","sources":["../../../src/admin/components/LowStockAlert.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAMlD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAc,EACd,WAA+B,EAC/B,SAAc,GACf,EAAE,kBAAkB,kDAiGpB"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.LowStockAlert = LowStockAlert;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/admin/components/LowStockAlert
8
- *
9
- * Low stock inventory warning widget.
10
- */
11
- const useAdminStats_1 = require("../hooks/useAdminStats");
12
- // =============================================================================
13
- // Component
14
- // =============================================================================
15
- /**
16
- * Low stock alert widget for dashboard.
17
- *
18
- * @example
19
- * ```tsx
20
- * <LowStockAlert threshold={10} viewAllHref="/admin/products?filter=low-stock" />
21
- * ```
22
- */
23
- function LowStockAlert({ threshold = 10, viewAllHref = '/admin/products', className = '', }) {
24
- const { lowStock, isLoading } = (0, useAdminStats_1.useAdminStats)({
25
- lowStockThreshold: threshold,
26
- });
27
- // Don't show if no low stock items
28
- if (!isLoading && lowStock.length === 0) {
29
- return null;
30
- }
31
- return ((0, jsx_runtime_1.jsxs)("div", { className: `rounded-lg border border-border bg-card ${className}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between border-b border-border px-6 py-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("svg", { className: "h-5 w-5 text-amber-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }), (0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-medium text-foreground", children: "Low Stock Alert" }), !isLoading && ((0, jsx_runtime_1.jsxs)("span", { className: "rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-800", children: [lowStock.length, " item", lowStock.length !== 1 ? 's' : ''] }))] }), (0, jsx_runtime_1.jsx)("a", { href: viewAllHref, className: "text-sm text-primary hover:underline", children: "View all" })] }), (0, jsx_runtime_1.jsx)("div", { className: "divide-y divide-border", children: isLoading ? ((0, jsx_runtime_1.jsx)("div", { className: "p-6", children: (0, jsx_runtime_1.jsx)("div", { className: "space-y-4", children: [...Array(3)].map((_, i) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsx)("div", { className: "h-4 w-32 animate-pulse rounded bg-muted" }), (0, jsx_runtime_1.jsx)("div", { className: "h-3 w-20 animate-pulse rounded bg-muted" })] }), (0, jsx_runtime_1.jsx)("div", { className: "h-6 w-16 animate-pulse rounded bg-muted" })] }, i))) }) })) : (lowStock.slice(0, 5).map((item) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between px-6 py-4 hover:bg-muted/50", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("a", { href: `/admin/products/${item.productId}`, className: "font-medium text-foreground hover:text-primary", children: item.productName }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-muted-foreground", children: item.variantName })] }), (0, jsx_runtime_1.jsx)("div", { className: "flex items-center gap-2", children: (0, jsx_runtime_1.jsx)("span", { className: `rounded-full px-2 py-1 text-xs font-medium ${item.inventory === 0
32
- ? 'bg-red-100 text-red-800'
33
- : 'bg-amber-100 text-amber-800'}`, children: item.inventory === 0 ? 'Out of stock' : `${item.inventory} left` }) })] }, item.variantId)))) }), !isLoading && lowStock.length > 5 && ((0, jsx_runtime_1.jsx)("div", { className: "border-t border-border px-6 py-3 text-center", children: (0, jsx_runtime_1.jsxs)("a", { href: viewAllHref, className: "text-sm text-primary hover:underline", children: ["+", lowStock.length - 5, " more items"] }) }))] }));
34
- }
35
- //# sourceMappingURL=LowStockAlert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LowStockAlert.js","sourceRoot":"","sources":["../../../src/admin/components/LowStockAlert.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { OrderDetailsProps } from '../types';
2
- /**
3
- * Order details view with items and actions.
4
- *
5
- * @example
6
- * ```tsx
7
- * <OrderDetails
8
- * orderId="123"
9
- * onRefund={() => setShowRefundDialog(true)}
10
- * />
11
- * ```
12
- */
13
- export declare function OrderDetails({ orderId, onRefund, onBack, className, }: OrderDetailsProps): import("react/jsx-runtime").JSX.Element;
14
- //# sourceMappingURL=OrderDetails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderDetails.d.ts","sourceRoot":"","sources":["../../../src/admin/components/OrderDetails.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,UAAU,CAAA;AAiCnE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAc,GACf,EAAE,iBAAiB,2CA0PnB"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.OrderDetails = OrderDetails;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/admin/components/OrderDetails
8
- *
9
- * Full order details view with items, addresses, and actions.
10
- */
11
- const react_1 = require("react");
12
- const useAdminOrders_1 = require("../hooks/useAdminOrders");
13
- // =============================================================================
14
- // Status Badge
15
- // =============================================================================
16
- function StatusBadge({ status }) {
17
- const statusStyles = {
18
- pending: 'bg-yellow-100 text-yellow-800',
19
- paid: 'bg-green-100 text-green-800',
20
- shipped: 'bg-blue-100 text-blue-800',
21
- delivered: 'bg-green-100 text-green-800',
22
- cancelled: 'bg-red-100 text-red-800',
23
- refunded: 'bg-gray-100 text-gray-800',
24
- };
25
- return ((0, jsx_runtime_1.jsx)("span", { className: `inline-flex rounded-full px-2 py-1 text-xs font-medium ${statusStyles[status] || 'bg-gray-100 text-gray-800'}`, children: status.charAt(0).toUpperCase() + status.slice(1) }));
26
- }
27
- // =============================================================================
28
- // Component
29
- // =============================================================================
30
- /**
31
- * Order details view with items and actions.
32
- *
33
- * @example
34
- * ```tsx
35
- * <OrderDetails
36
- * orderId="123"
37
- * onRefund={() => setShowRefundDialog(true)}
38
- * />
39
- * ```
40
- */
41
- function OrderDetails({ orderId, onRefund, onBack, className = '', }) {
42
- const { getOrder, updateStatus } = (0, useAdminOrders_1.useAdminOrders)();
43
- const [order, setOrder] = (0, react_1.useState)(null);
44
- const [isLoading, setIsLoading] = (0, react_1.useState)(true);
45
- const [isUpdating, setIsUpdating] = (0, react_1.useState)(false);
46
- (0, react_1.useEffect)(() => {
47
- if (orderId) {
48
- setIsLoading(true);
49
- getOrder(orderId).then((data) => {
50
- setOrder(data);
51
- setIsLoading(false);
52
- });
53
- }
54
- }, [orderId, getOrder]);
55
- const handleStatusChange = (0, react_1.useCallback)(async (newStatus) => {
56
- if (!order)
57
- return;
58
- setIsUpdating(true);
59
- const success = await updateStatus(order.id, newStatus);
60
- if (success) {
61
- setOrder((prev) => prev ? { ...prev, status: newStatus } : null);
62
- }
63
- setIsUpdating(false);
64
- }, [order, updateStatus]);
65
- const formatDate = (dateString) => {
66
- return new Date(dateString).toLocaleDateString('en-US', {
67
- weekday: 'long',
68
- year: 'numeric',
69
- month: 'long',
70
- day: 'numeric',
71
- hour: '2-digit',
72
- minute: '2-digit',
73
- });
74
- };
75
- const formatCurrency = (value) => {
76
- const numValue = typeof value === 'string' ? parseFloat(value) : value;
77
- return new Intl.NumberFormat('en-US', {
78
- style: 'currency',
79
- currency: 'USD',
80
- }).format(numValue);
81
- };
82
- if (isLoading) {
83
- return ((0, jsx_runtime_1.jsxs)("div", { className: `space-y-6 ${className}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "h-8 w-48 animate-pulse rounded bg-muted" }), (0, jsx_runtime_1.jsx)("div", { className: "rounded-lg border border-border bg-card p-6", children: (0, jsx_runtime_1.jsx)("div", { className: "space-y-4", children: [...Array(4)].map((_, i) => ((0, jsx_runtime_1.jsx)("div", { className: "h-6 w-full animate-pulse rounded bg-muted" }, i))) }) })] }));
84
- }
85
- if (!order) {
86
- return ((0, jsx_runtime_1.jsxs)("div", { className: `rounded-lg border border-border bg-card p-12 text-center ${className}`, children: [(0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground", children: "Order not found" }), onBack && ((0, jsx_runtime_1.jsx)("button", { onClick: onBack, className: "mt-4 text-sm text-primary hover:underline", children: "Go back" }))] }));
87
- }
88
- const canRefund = order.status === 'paid' || order.status === 'shipped' || order.status === 'delivered';
89
- const canUpdateStatus = order.status !== 'refunded' && order.status !== 'cancelled';
90
- return ((0, jsx_runtime_1.jsxs)("div", { className: `space-y-6 ${className}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-4", children: [onBack && ((0, jsx_runtime_1.jsx)("button", { onClick: onBack, className: "rounded-md border border-border p-2 hover:bg-accent", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) }) })), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h1", { className: "text-2xl font-semibold text-foreground", children: ["Order #", order.id.slice(-8).toUpperCase()] }), (0, jsx_runtime_1.jsxs)("p", { className: "text-sm text-muted-foreground", children: ["Placed on ", formatDate(order.createdAt)] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [(0, jsx_runtime_1.jsx)(StatusBadge, { status: order.status }), canRefund && onRefund && ((0, jsx_runtime_1.jsx)("button", { onClick: () => onRefund(order.id), className: "rounded-md border border-destructive px-3 py-1.5 text-sm text-destructive hover:bg-destructive/10", children: "Refund" }))] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-6 lg:grid-cols-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "lg:col-span-2 space-y-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card", children: [(0, jsx_runtime_1.jsx)("div", { className: "border-b border-border px-6 py-4", children: (0, jsx_runtime_1.jsx)("h2", { className: "font-medium text-foreground", children: "Order Items" }) }), (0, jsx_runtime_1.jsx)("div", { className: "divide-y divide-border", children: order.items?.map((item, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-4 px-6 py-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex h-16 w-16 items-center justify-center rounded bg-muted text-muted-foreground", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4" }) }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1", children: [(0, jsx_runtime_1.jsx)("p", { className: "font-medium text-foreground", children: item.name }), item.attributes && Object.keys(item.attributes).length > 0 && ((0, jsx_runtime_1.jsx)("p", { className: "text-sm text-muted-foreground", children: Object.entries(item.attributes).map(([k, v]) => `${k}: ${v}`).join(', ') }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-right", children: [(0, jsx_runtime_1.jsx)("p", { className: "font-medium text-foreground", children: formatCurrency(item.price) }), (0, jsx_runtime_1.jsxs)("p", { className: "text-sm text-muted-foreground", children: ["Qty: ", item.quantity] })] })] }, index))) })] }), canUpdateStatus && ((0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "mb-4 font-medium text-foreground", children: "Update Status" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap gap-2", children: ['pending', 'paid', 'shipped', 'delivered', 'cancelled'].map((s) => ((0, jsx_runtime_1.jsx)("button", { onClick: () => handleStatusChange(s), disabled: isUpdating || order.status === s, className: `rounded-md px-3 py-1.5 text-sm font-medium transition-colors ${order.status === s
91
- ? 'bg-primary text-primary-foreground'
92
- : 'border border-border hover:bg-accent'} disabled:opacity-50`, children: s.charAt(0).toUpperCase() + s.slice(1) }, s))) })] }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "mb-4 font-medium text-foreground", children: "Order Summary" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2 text-sm", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Subtotal" }), (0, jsx_runtime_1.jsx)("span", { className: "text-foreground", children: formatCurrency(order.subtotal) })] }), order.tax && parseFloat(order.tax) > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Tax" }), (0, jsx_runtime_1.jsx)("span", { className: "text-foreground", children: formatCurrency(order.tax) })] })), order.shipping && parseFloat(order.shipping) > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Shipping" }), (0, jsx_runtime_1.jsx)("span", { className: "text-foreground", children: formatCurrency(order.shipping) })] })), (0, jsx_runtime_1.jsx)("div", { className: "border-t border-border pt-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between font-medium", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-foreground", children: "Total" }), (0, jsx_runtime_1.jsx)("span", { className: "text-foreground", children: formatCurrency(order.total) })] }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "mb-4 font-medium text-foreground", children: "Customer" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2 text-sm", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-foreground", children: order.email }), order.customerId && ((0, jsx_runtime_1.jsx)("a", { href: `/admin/customers/${order.customerId}`, className: "text-primary hover:underline", children: "View customer profile" }))] })] }), order.shippingAddress && ((0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "mb-4 font-medium text-foreground", children: "Shipping Address" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-1 text-sm text-muted-foreground", children: [(0, jsx_runtime_1.jsx)("p", { children: order.shippingAddress.name }), (0, jsx_runtime_1.jsx)("p", { children: order.shippingAddress.line1 }), order.shippingAddress.line2 && (0, jsx_runtime_1.jsx)("p", { children: order.shippingAddress.line2 }), (0, jsx_runtime_1.jsxs)("p", { children: [order.shippingAddress.city, ", ", order.shippingAddress.state, " ", order.shippingAddress.postalCode] }), (0, jsx_runtime_1.jsx)("p", { children: order.shippingAddress.country })] })] })), order.stripePaymentIntentId && ((0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "mb-4 font-medium text-foreground", children: "Payment" }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-2 text-sm", children: (0, jsx_runtime_1.jsxs)("p", { className: "text-muted-foreground", children: ["Payment Intent: ", order.stripePaymentIntentId.slice(-8)] }) })] }))] })] })] }));
93
- }
94
- //# sourceMappingURL=OrderDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderDetails.js","sourceRoot":"","sources":["../../../src/admin/components/OrderDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { OrderTableProps } from '../types';
2
- /**
3
- * Orders data table with filters and pagination.
4
- *
5
- * @example
6
- * ```tsx
7
- * <OrderTable
8
- * onOrderClick={(id) => router.push(`/admin/orders/${id}`)}
9
- * />
10
- * ```
11
- */
12
- export declare function OrderTable({ initialSearch, initialStatus, pageSize, onOrderClick, className, }: OrderTableProps): import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=OrderTable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderTable.d.ts","sourceRoot":"","sources":["../../../src/admin/components/OrderTable.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAA;AAsCnE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EACzB,aAAa,EACb,aAAa,EACb,QAAa,EACb,YAAY,EACZ,SAAc,GACf,EAAE,eAAe,2CAsNjB"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.OrderTable = OrderTable;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/admin/components/OrderTable
8
- *
9
- * Orders data table with filtering, sorting, and pagination.
10
- */
11
- const react_1 = require("react");
12
- const useAdminOrders_1 = require("../hooks/useAdminOrders");
13
- // =============================================================================
14
- // Status Badge
15
- // =============================================================================
16
- function StatusBadge({ status }) {
17
- const statusStyles = {
18
- pending: 'bg-yellow-100 text-yellow-800',
19
- paid: 'bg-green-100 text-green-800',
20
- shipped: 'bg-blue-100 text-blue-800',
21
- delivered: 'bg-green-100 text-green-800',
22
- cancelled: 'bg-red-100 text-red-800',
23
- refunded: 'bg-gray-100 text-gray-800',
24
- };
25
- return ((0, jsx_runtime_1.jsx)("span", { className: `inline-flex rounded-full px-2 py-1 text-xs font-medium ${statusStyles[status] || 'bg-gray-100 text-gray-800'}`, children: status.charAt(0).toUpperCase() + status.slice(1) }));
26
- }
27
- // =============================================================================
28
- // Component
29
- // =============================================================================
30
- /**
31
- * Orders data table with filters and pagination.
32
- *
33
- * @example
34
- * ```tsx
35
- * <OrderTable
36
- * onOrderClick={(id) => router.push(`/admin/orders/${id}`)}
37
- * />
38
- * ```
39
- */
40
- function OrderTable({ initialSearch, initialStatus, pageSize = 20, onOrderClick, className = '', }) {
41
- const { orders, total, page, isLoading, fetchOrders, updateStatus } = (0, useAdminOrders_1.useAdminOrders)();
42
- const [search, setSearch] = (0, react_1.useState)(initialSearch || '');
43
- const [status, setStatus] = (0, react_1.useState)(initialStatus || '');
44
- const [sort, setSort] = (0, react_1.useState)('newest');
45
- // Fetch orders on filter change
46
- (0, react_1.useEffect)(() => {
47
- fetchOrders({
48
- search: search || undefined,
49
- status: status || undefined,
50
- sort,
51
- page: 1,
52
- limit: pageSize,
53
- });
54
- }, [search, status, sort, pageSize, fetchOrders]);
55
- const handlePageChange = (0, react_1.useCallback)((newPage) => {
56
- fetchOrders({
57
- search: search || undefined,
58
- status: status || undefined,
59
- sort,
60
- page: newPage,
61
- limit: pageSize,
62
- });
63
- }, [search, status, sort, pageSize, fetchOrders]);
64
- const handleStatusChange = (0, react_1.useCallback)(async (orderId, newStatus) => {
65
- const success = await updateStatus(orderId, newStatus);
66
- if (success) {
67
- fetchOrders({ search, status: status || undefined, sort, page, limit: pageSize });
68
- }
69
- }, [updateStatus, fetchOrders, search, status, sort, page, pageSize]);
70
- const formatDate = (dateString) => {
71
- const date = new Date(dateString);
72
- return date.toLocaleDateString('en-US', {
73
- month: 'short',
74
- day: 'numeric',
75
- year: 'numeric',
76
- hour: '2-digit',
77
- minute: '2-digit',
78
- });
79
- };
80
- const formatCurrency = (value) => {
81
- return new Intl.NumberFormat('en-US', {
82
- style: 'currency',
83
- currency: 'USD',
84
- }).format(parseFloat(value));
85
- };
86
- const totalPages = Math.ceil(total / pageSize);
87
- return ((0, jsx_runtime_1.jsxs)("div", { className: `space-y-4 ${className}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap gap-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex-1", children: (0, jsx_runtime_1.jsx)("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by order ID or email...", className: "w-full max-w-xs rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }) }), (0, jsx_runtime_1.jsxs)("select", { value: status, onChange: (e) => setStatus(e.target.value), className: "rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: "All Status" }), (0, jsx_runtime_1.jsx)("option", { value: "pending", children: "Pending" }), (0, jsx_runtime_1.jsx)("option", { value: "paid", children: "Paid" }), (0, jsx_runtime_1.jsx)("option", { value: "shipped", children: "Shipped" }), (0, jsx_runtime_1.jsx)("option", { value: "delivered", children: "Delivered" }), (0, jsx_runtime_1.jsx)("option", { value: "cancelled", children: "Cancelled" }), (0, jsx_runtime_1.jsx)("option", { value: "refunded", children: "Refunded" })] }), (0, jsx_runtime_1.jsxs)("select", { value: sort, onChange: (e) => setSort(e.target.value), className: "rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", children: [(0, jsx_runtime_1.jsx)("option", { value: "newest", children: "Newest First" }), (0, jsx_runtime_1.jsx)("option", { value: "oldest", children: "Oldest First" }), (0, jsx_runtime_1.jsx)("option", { value: "total-desc", children: "Highest Total" }), (0, jsx_runtime_1.jsx)("option", { value: "total-asc", children: "Lowest Total" })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card overflow-hidden", children: [(0, jsx_runtime_1.jsx)("div", { className: "overflow-x-auto", children: (0, jsx_runtime_1.jsxs)("table", { className: "w-full", children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", { className: "border-b border-border bg-muted/50 text-left text-xs font-medium uppercase text-muted-foreground", children: [(0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Order" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Customer" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Status" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Total" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Date" }), (0, jsx_runtime_1.jsx)("th", { className: "px-6 py-3", children: "Actions" })] }) }), (0, jsx_runtime_1.jsx)("tbody", { className: "divide-y divide-border", children: isLoading ? ([...Array(5)].map((_, i) => ((0, jsx_runtime_1.jsxs)("tr", { children: [(0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-4 w-24 animate-pulse rounded bg-muted" }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-4 w-32 animate-pulse rounded bg-muted" }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-6 w-16 animate-pulse rounded bg-muted" }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-4 w-28 animate-pulse rounded bg-muted" }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" }) })] }, i)))) : orders.length === 0 ? ((0, jsx_runtime_1.jsx)("tr", { children: (0, jsx_runtime_1.jsx)("td", { colSpan: 6, className: "px-6 py-12 text-center text-muted-foreground", children: "No orders found" }) })) : (orders.map((order) => ((0, jsx_runtime_1.jsxs)("tr", { className: "hover:bg-muted/50", children: [(0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsxs)("button", { onClick: () => onOrderClick?.(order.id), className: "font-medium text-primary hover:underline", children: ["#", order.id.slice(-8).toUpperCase()] }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4 text-sm text-foreground", children: order.email }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsx)(StatusBadge, { status: order.status }) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4 text-sm font-medium text-foreground", children: formatCurrency(order.total) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4 text-sm text-muted-foreground", children: formatDate(order.createdAt) }), (0, jsx_runtime_1.jsx)("td", { className: "px-6 py-4", children: (0, jsx_runtime_1.jsxs)("select", { value: order.status, onChange: (e) => handleStatusChange(order.id, e.target.value), disabled: order.status === 'refunded' || order.status === 'cancelled', className: "rounded-md border border-input bg-background px-2 py-1 text-xs focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary disabled:opacity-50", children: [(0, jsx_runtime_1.jsx)("option", { value: "pending", children: "Pending" }), (0, jsx_runtime_1.jsx)("option", { value: "paid", children: "Paid" }), (0, jsx_runtime_1.jsx)("option", { value: "shipped", children: "Shipped" }), (0, jsx_runtime_1.jsx)("option", { value: "delivered", children: "Delivered" }), (0, jsx_runtime_1.jsx)("option", { value: "cancelled", children: "Cancelled" }), (0, jsx_runtime_1.jsx)("option", { value: "refunded", disabled: true, children: "Refunded" })] }) })] }, order.id)))) })] }) }), totalPages > 1 && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between border-t border-border px-6 py-3", children: [(0, jsx_runtime_1.jsxs)("p", { className: "text-sm text-muted-foreground", children: ["Showing ", (page - 1) * pageSize + 1, " to ", Math.min(page * pageSize, total), " of ", total] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => handlePageChange(page - 1), disabled: page === 1, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Previous" }), (0, jsx_runtime_1.jsx)("button", { onClick: () => handlePageChange(page + 1), disabled: page >= totalPages, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Next" })] })] }))] })] }));
88
- }
89
- //# sourceMappingURL=OrderTable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderTable.js","sourceRoot":"","sources":["../../../src/admin/components/OrderTable.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AA0DZ,gCA4NC;;AApRD;;;;GAIG;AAEH,iCAAwD;AACxD,4DAAwD;AAUxD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,SAAS,WAAW,CAAC,EAAE,MAAM,EAAsB;IACjD,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,2BAA2B;QACpC,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE,yBAAyB;QACpC,QAAQ,EAAE,2BAA2B;KACtC,CAAA;IAED,OAAO,CACL,iCACE,SAAS,EAAE,0DACT,YAAY,CAAC,MAAM,CAAC,IAAI,2BAC1B,EAAE,YAED,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAC5C,CACR,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAAC,EACzB,aAAa,EACb,aAAa,EACb,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,SAAS,GAAG,EAAE,GACE;IAChB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAA;IAEtF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,aAAa,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAmB,aAAa,IAAI,EAAE,CAAC,CAAA;IAC3E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAa,QAAQ,CAAC,CAAA;IAEtD,gCAAgC;IAChC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,WAAW,CAAC;YACV,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,CAAC,OAAe,EAAE,EAAE;QACvD,WAAW,CAAC;YACV,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,IAAI;YACJ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;IAEjD,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAe,EAAE,SAAsB,EAAE,EAAE;QACvF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnF,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErE,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACtC,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;QACvC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;IAE9C,OAAO,CACL,iCAAK,SAAS,EAAE,aAAa,SAAS,EAAE,aAEtC,iCAAK,SAAS,EAAC,sBAAsB,aAEnC,gCAAK,SAAS,EAAC,QAAQ,YACrB,kCACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,gCAAgC,EAC5C,SAAS,EAAC,0LAA0L,GACpM,GACE,EAGN,oCACE,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAyB,CAAC,EAC9D,SAAS,EAAC,wIAAwI,aAElJ,mCAAQ,KAAK,EAAC,EAAE,2BAAoB,EACpC,mCAAQ,KAAK,EAAC,SAAS,wBAAiB,EACxC,mCAAQ,KAAK,EAAC,MAAM,qBAAc,EAClC,mCAAQ,KAAK,EAAC,SAAS,wBAAiB,EACxC,mCAAQ,KAAK,EAAC,WAAW,0BAAmB,EAC5C,mCAAQ,KAAK,EAAC,WAAW,0BAAmB,EAC5C,mCAAQ,KAAK,EAAC,UAAU,yBAAkB,IACnC,EAGT,oCACE,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAmB,CAAC,EACtD,SAAS,EAAC,wIAAwI,aAElJ,mCAAQ,KAAK,EAAC,QAAQ,6BAAsB,EAC5C,mCAAQ,KAAK,EAAC,QAAQ,6BAAsB,EAC5C,mCAAQ,KAAK,EAAC,YAAY,8BAAuB,EACjD,mCAAQ,KAAK,EAAC,WAAW,6BAAsB,IACxC,IACL,EAGN,iCAAK,SAAS,EAAC,yDAAyD,aACtE,gCAAK,SAAS,EAAC,iBAAiB,YAC9B,mCAAO,SAAS,EAAC,QAAQ,aACvB,4CACE,gCAAI,SAAS,EAAC,kGAAkG,aAC9G,+BAAI,SAAS,EAAC,WAAW,sBAAW,EACpC,+BAAI,SAAS,EAAC,WAAW,yBAAc,EACvC,+BAAI,SAAS,EAAC,WAAW,uBAAY,EACrC,+BAAI,SAAS,EAAC,WAAW,sBAAW,EACpC,+BAAI,SAAS,EAAC,WAAW,qBAAU,EACnC,+BAAI,SAAS,EAAC,WAAW,wBAAa,IACnC,GACC,EACR,kCAAO,SAAS,EAAC,wBAAwB,YACtC,SAAS,CAAC,CAAC,CAAC,CACX,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,2CACE,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,gCAAK,SAAS,EAAC,yCAAyC,GAAG,GACxD,KAlBE,CAAC,CAmBL,CACN,CAAC,CACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACxB,yCACE,+BAAI,OAAO,EAAE,CAAC,EAAE,SAAS,EAAC,8CAA8C,gCAEnE,GACF,CACN,CAAC,CAAC,CAAC,CACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,CACxC,gCAAmB,SAAS,EAAC,mBAAmB,aAC9C,+BAAI,SAAS,EAAC,WAAW,YACvB,oCACE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EACvC,SAAS,EAAC,0CAA0C,kBAElD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAC3B,GACN,EACL,+BAAI,SAAS,EAAC,mCAAmC,YAC9C,KAAK,CAAC,KAAK,GACT,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,uBAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,GAClC,EACL,+BAAI,SAAS,EAAC,+CAA+C,YAC1D,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,GACzB,EACL,+BAAI,SAAS,EAAC,yCAAyC,YACpD,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GACzB,EACL,+BAAI,SAAS,EAAC,WAAW,YACvB,oCACE,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAoB,CAAC,EAC5E,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EACrE,SAAS,EAAC,4JAA4J,aAEtK,mCAAQ,KAAK,EAAC,SAAS,wBAAiB,EACxC,mCAAQ,KAAK,EAAC,MAAM,qBAAc,EAClC,mCAAQ,KAAK,EAAC,SAAS,wBAAiB,EACxC,mCAAQ,KAAK,EAAC,WAAW,0BAAmB,EAC5C,mCAAQ,KAAK,EAAC,WAAW,0BAAmB,EAC5C,mCAAQ,KAAK,EAAC,UAAU,EAAC,QAAQ,+BAAkB,IAC5C,GACN,KAnCE,KAAK,CAAC,EAAE,CAoCZ,CACN,CAAC,CACH,GACK,IACF,GACJ,EAGL,UAAU,GAAG,CAAC,IAAI,CACjB,iCAAK,SAAS,EAAC,oEAAoE,aACjF,+BAAG,SAAS,EAAC,+BAA+B,yBACjC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,UAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAM,KAAK,IACjF,EACJ,iCAAK,SAAS,EAAC,YAAY,aACzB,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,EACzC,QAAQ,EAAE,IAAI,KAAK,CAAC,EACpB,SAAS,EAAC,uEAAuE,yBAG1E,EACT,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,EACzC,QAAQ,EAAE,IAAI,IAAI,UAAU,EAC5B,SAAS,EAAC,uEAAuE,qBAG1E,IACL,IACF,CACP,IACG,IACF,CACP,CAAA;AACH,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { ProductFormProps } from '../types';
2
- /**
3
- * Product form for create and edit.
4
- *
5
- * @example
6
- * ```tsx
7
- * // Create mode
8
- * <ProductForm onSuccess={(id) => router.push(`/admin/products/${id}`)} />
9
- *
10
- * // Edit mode
11
- * <ProductForm
12
- * productId="123"
13
- * onSuccess={() => router.push('/admin/products')}
14
- * />
15
- * ```
16
- */
17
- export declare function ProductForm({ productId, initialData, onSuccess, onCancel, className, }: ProductFormProps): import("react/jsx-runtime").JSX.Element;
18
- //# sourceMappingURL=ProductForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductForm.d.ts","sourceRoot":"","sources":["../../../src/admin/components/ProductForm.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,UAAU,CAAA;AAMjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAc,GACf,EAAE,gBAAgB,2CA+SlB"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProductForm = ProductForm;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/admin/components/ProductForm
8
- *
9
- * Product create/edit form.
10
- */
11
- const react_1 = require("react");
12
- const useAdminProducts_1 = require("../hooks/useAdminProducts");
13
- // =============================================================================
14
- // Component
15
- // =============================================================================
16
- /**
17
- * Product form for create and edit.
18
- *
19
- * @example
20
- * ```tsx
21
- * // Create mode
22
- * <ProductForm onSuccess={(id) => router.push(`/admin/products/${id}`)} />
23
- *
24
- * // Edit mode
25
- * <ProductForm
26
- * productId="123"
27
- * onSuccess={() => router.push('/admin/products')}
28
- * />
29
- * ```
30
- */
31
- function ProductForm({ productId, initialData, onSuccess, onCancel, className = '', }) {
32
- const { getProduct, createProduct, updateProduct } = (0, useAdminProducts_1.useAdminProducts)();
33
- const isEditMode = !!productId;
34
- const [formData, setFormData] = (0, react_1.useState)({
35
- name: initialData?.name || '',
36
- slug: initialData?.slug || '',
37
- description: initialData?.description || '',
38
- price: initialData?.price || 0,
39
- comparePrice: initialData?.comparePrice,
40
- images: initialData?.images || [],
41
- status: initialData?.status || 'draft',
42
- categoryId: initialData?.categoryId,
43
- hasVariants: initialData?.hasVariants || false,
44
- metaTitle: initialData?.metaTitle,
45
- metaDescription: initialData?.metaDescription,
46
- metaKeywords: initialData?.metaKeywords || [],
47
- });
48
- const [imageUrl, setImageUrl] = (0, react_1.useState)('');
49
- const [isLoading, setIsLoading] = (0, react_1.useState)(false);
50
- const [isFetching, setIsFetching] = (0, react_1.useState)(false);
51
- const [error, setError] = (0, react_1.useState)(null);
52
- // Load product data in edit mode
53
- (0, react_1.useEffect)(() => {
54
- if (productId && !initialData) {
55
- setIsFetching(true);
56
- getProduct(productId).then((product) => {
57
- if (product) {
58
- const p = product;
59
- setFormData({
60
- name: p.name,
61
- slug: p.slug,
62
- description: p.description,
63
- price: parseFloat(p.price),
64
- comparePrice: p.comparePrice ? parseFloat(p.comparePrice) : undefined,
65
- images: p.images || [],
66
- status: p.status,
67
- categoryId: p.categoryId || undefined,
68
- hasVariants: p.hasVariants,
69
- metaTitle: p.metaTitle || undefined,
70
- metaDescription: p.metaDescription || undefined,
71
- metaKeywords: p.metaKeywords || [],
72
- });
73
- }
74
- setIsFetching(false);
75
- });
76
- }
77
- }, [productId, initialData, getProduct]);
78
- const handleChange = (0, react_1.useCallback)((e) => {
79
- const { name, value, type } = e.target;
80
- setFormData((prev) => ({
81
- ...prev,
82
- [name]: type === 'number' ? (value ? parseFloat(value) : 0) : value,
83
- }));
84
- }, []);
85
- const handleAddImage = (0, react_1.useCallback)(() => {
86
- if (imageUrl.trim()) {
87
- setFormData((prev) => ({
88
- ...prev,
89
- images: [...prev.images, imageUrl.trim()],
90
- }));
91
- setImageUrl('');
92
- }
93
- }, [imageUrl]);
94
- const handleRemoveImage = (0, react_1.useCallback)((index) => {
95
- setFormData((prev) => ({
96
- ...prev,
97
- images: prev.images.filter((_, i) => i !== index),
98
- }));
99
- }, []);
100
- const handleSubmit = (0, react_1.useCallback)(async (e) => {
101
- e.preventDefault();
102
- setError(null);
103
- setIsLoading(true);
104
- try {
105
- const result = isEditMode
106
- ? await updateProduct(productId, formData)
107
- : await createProduct(formData);
108
- if (!result.success) {
109
- setError(result.error || 'Failed to save product');
110
- return;
111
- }
112
- const savedProduct = result.data;
113
- onSuccess?.(savedProduct.id);
114
- }
115
- catch {
116
- setError('An unexpected error occurred');
117
- }
118
- finally {
119
- setIsLoading(false);
120
- }
121
- }, [isEditMode, productId, formData, createProduct, updateProduct, onSuccess]);
122
- if (isFetching) {
123
- return ((0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center py-12", children: (0, jsx_runtime_1.jsx)("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent" }) }));
124
- }
125
- return ((0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit, className: `space-y-6 ${className}`, children: [error && ((0, jsx_runtime_1.jsx)("div", { className: "rounded-md bg-destructive/10 px-4 py-3 text-sm text-destructive", children: error })), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Basic Information" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "name", className: "block text-sm font-medium text-foreground", children: "Product Name *" }), (0, jsx_runtime_1.jsx)("input", { id: "name", name: "name", type: "text", value: formData.name, onChange: handleChange, required: true, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "slug", className: "block text-sm font-medium text-foreground", children: "Slug" }), (0, jsx_runtime_1.jsx)("input", { id: "slug", name: "slug", type: "text", value: formData.slug, onChange: handleChange, placeholder: "auto-generated-from-name", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "description", className: "block text-sm font-medium text-foreground", children: "Description" }), (0, jsx_runtime_1.jsx)("textarea", { id: "description", name: "description", value: formData.description, onChange: handleChange, rows: 4, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Pricing" }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-4 sm:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "price", className: "block text-sm font-medium text-foreground", children: "Price *" }), (0, jsx_runtime_1.jsx)("input", { id: "price", name: "price", type: "number", step: "0.01", min: "0", value: formData.price, onChange: handleChange, required: true, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "comparePrice", className: "block text-sm font-medium text-foreground", children: "Compare at Price" }), (0, jsx_runtime_1.jsx)("input", { id: "comparePrice", name: "comparePrice", type: "number", step: "0.01", min: "0", value: formData.comparePrice || '', onChange: handleChange, placeholder: "Original price for sales", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Images" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)("input", { type: "url", value: imageUrl, onChange: (e) => setImageUrl(e.target.value), placeholder: "Enter image URL", className: "flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleAddImage, className: "rounded-md bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground hover:bg-secondary/80", children: "Add" })] }), formData.images.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "grid grid-cols-4 gap-4", children: formData.images.map((url, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)("img", { src: url, alt: `Product ${index + 1}`, className: "h-24 w-full rounded object-cover" }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => handleRemoveImage(index), className: "absolute -right-2 -top-2 rounded-full bg-destructive p-1 text-destructive-foreground hover:bg-destructive/80", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })] }, index))) }))] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg border border-border bg-card p-6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Status" }), (0, jsx_runtime_1.jsxs)("select", { name: "status", value: formData.status, onChange: handleChange, className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", children: [(0, jsx_runtime_1.jsx)("option", { value: "draft", children: "Draft" }), (0, jsx_runtime_1.jsx)("option", { value: "active", children: "Active" }), (0, jsx_runtime_1.jsx)("option", { value: "archived", children: "Archived" })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-end gap-4", children: [onCancel && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onCancel, className: "rounded-md border border-border px-4 py-2 text-sm font-medium text-foreground hover:bg-accent", children: "Cancel" })), (0, jsx_runtime_1.jsx)("button", { type: "submit", disabled: isLoading, className: "rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50", children: isLoading ? 'Saving...' : isEditMode ? 'Update Product' : 'Create Product' })] })] }));
126
- }
127
- //# sourceMappingURL=ProductForm.js.map