@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 +0,0 @@
1
- {"version":3,"file":"ProductDetails.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvF,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,oCAAoC;IACpC,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAa,EACb,SAAS,EACT,QAAgB,EAChB,MAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAmB,EACnB,WAAgB,EAChB,SAAiB,EACjB,aAAa,EACb,eAAwB,EACxB,QAAQ,GACT,EAAE,mBAAmB,2CA0OrB"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProductDetails = ProductDetails;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/products/components/ProductDetails
8
- *
9
- * Full product details component for product pages.
10
- */
11
- const react_1 = require("react");
12
- const utils_1 = require("../../core/utils");
13
- const VariantSelector_1 = require("./VariantSelector");
14
- const ProductGallery_1 = require("./ProductGallery");
15
- // =============================================================================
16
- // Component
17
- // =============================================================================
18
- /**
19
- * ProductDetails component for product pages.
20
- *
21
- * @example
22
- * ```tsx
23
- * import { ProductDetails } from '@rovela/sdk/products'
24
- *
25
- * function ProductPage({ product, variants }) {
26
- * return (
27
- * <ProductDetails
28
- * product={product}
29
- * variants={variants}
30
- * onAddToCart={handleAddToCart}
31
- * showBuyNow
32
- * showStock
33
- * />
34
- * )
35
- * }
36
- * ```
37
- */
38
- function ProductDetails({ product, variants = [], className, currency = 'USD', locale = 'en-US', onAddToCart, onBuyNow, addToCartContent, buyNowContent, showBuyNow = false, showQuantity = true, maxQuantity = 99, showStock = false, variantLabels, galleryPosition = 'left', children, }) {
39
- const [selectedVariant, setSelectedVariant] = (0, react_1.useState)(null);
40
- const [quantity, setQuantity] = (0, react_1.useState)(1);
41
- // Calculate current price
42
- const currentPrice = (0, react_1.useMemo)(() => {
43
- if (selectedVariant?.price) {
44
- return typeof selectedVariant.price === 'string'
45
- ? parseFloat(selectedVariant.price)
46
- : selectedVariant.price;
47
- }
48
- return typeof product.price === 'string'
49
- ? parseFloat(product.price)
50
- : product.price;
51
- }, [product.price, selectedVariant]);
52
- const comparePrice = product.comparePrice
53
- ? typeof product.comparePrice === 'string'
54
- ? parseFloat(product.comparePrice)
55
- : product.comparePrice
56
- : null;
57
- // Calculate discount
58
- const discountPercent = comparePrice && comparePrice > currentPrice
59
- ? Math.round(((comparePrice - currentPrice) / comparePrice) * 100)
60
- : null;
61
- // Calculate stock
62
- const currentStock = (0, react_1.useMemo)(() => {
63
- if (selectedVariant) {
64
- return selectedVariant.inventory;
65
- }
66
- // Sum all variant inventory or return -1 if no variants (unlimited)
67
- if (variants.length > 0) {
68
- return variants.reduce((sum, v) => sum + v.inventory, 0);
69
- }
70
- return -1; // No variants, no inventory tracking
71
- }, [selectedVariant, variants]);
72
- const isOutOfStock = currentStock === 0;
73
- const isLowStock = currentStock > 0 && currentStock <= 5;
74
- // Check if variant selection is required
75
- const requiresVariant = product.hasVariants && variants.length > 0;
76
- const canAddToCart = !requiresVariant || selectedVariant !== null;
77
- // Handlers
78
- const handleAddToCart = () => {
79
- if (canAddToCart) {
80
- onAddToCart?.(product, selectedVariant, quantity);
81
- }
82
- };
83
- const handleBuyNow = () => {
84
- if (canAddToCart) {
85
- onBuyNow?.(product, selectedVariant, quantity);
86
- }
87
- };
88
- const handleQuantityChange = (newQuantity) => {
89
- const max = currentStock > 0 ? Math.min(currentStock, maxQuantity) : maxQuantity;
90
- setQuantity(Math.max(1, Math.min(newQuantity, max)));
91
- };
92
- const containerClasses = (0, utils_1.cn)('grid gap-8', galleryPosition === 'left'
93
- ? 'lg:grid-cols-2'
94
- : 'grid-cols-1', className);
95
- return ((0, jsx_runtime_1.jsxs)("div", { className: containerClasses, children: [(0, jsx_runtime_1.jsx)("div", { className: galleryPosition === 'top' ? 'order-first' : '', children: (0, jsx_runtime_1.jsx)(ProductGallery_1.ProductGallery, { images: product.images, alt: product.name }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col", children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: product.name }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-3 flex items-baseline gap-3", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-2xl font-semibold text-foreground", children: (0, utils_1.formatPrice)(currentPrice, { currency, locale }) }), comparePrice && comparePrice > currentPrice && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-lg text-muted-foreground line-through", children: (0, utils_1.formatPrice)(comparePrice, { currency, locale }) }), discountPercent && ((0, jsx_runtime_1.jsxs)("span", { className: "rounded-full bg-destructive px-2 py-0.5 text-sm font-medium text-destructive-foreground", children: ["Save ", discountPercent, "%"] }))] }))] }), showStock && currentStock >= 0 && ((0, jsx_runtime_1.jsx)("div", { className: "mt-3", children: isOutOfStock ? ((0, jsx_runtime_1.jsx)("span", { className: "text-sm font-medium text-destructive", children: "Out of Stock" })) : isLowStock ? ((0, jsx_runtime_1.jsxs)("span", { className: "text-sm font-medium text-warning", children: ["Only ", currentStock, " left in stock"] })) : ((0, jsx_runtime_1.jsxs)("span", { className: "text-sm text-muted-foreground", children: ["In Stock (", currentStock, " available)"] })) })), (0, jsx_runtime_1.jsxs)("div", { className: "mt-6", children: [(0, jsx_runtime_1.jsx)("h2", { className: "sr-only", children: "Description" }), (0, jsx_runtime_1.jsx)("p", { className: "text-base text-muted-foreground", children: product.description })] }), children, requiresVariant && ((0, jsx_runtime_1.jsx)("div", { className: "mt-6", children: (0, jsx_runtime_1.jsx)(VariantSelector_1.VariantSelector, { variants: variants, selected: selectedVariant, onSelect: setSelectedVariant, labels: variantLabels, disableOutOfStock: true }) })), showQuantity && ((0, jsx_runtime_1.jsxs)("div", { className: "mt-6", children: [(0, jsx_runtime_1.jsx)("label", { className: "mb-2 block text-sm font-medium text-foreground", children: "Quantity" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex w-32 items-center rounded-md border border-border", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => handleQuantityChange(quantity - 1), disabled: quantity <= 1, className: "flex h-10 w-10 items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-4 w-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M20 12H4" }) }) }), (0, jsx_runtime_1.jsx)("input", { type: "number", value: quantity, onChange: (e) => handleQuantityChange(parseInt(e.target.value) || 1), className: "h-10 w-full border-0 bg-transparent text-center text-sm focus:outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none", min: 1, max: currentStock > 0 ? Math.min(currentStock, maxQuantity) : maxQuantity }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => handleQuantityChange(quantity + 1), disabled: currentStock > 0 ? quantity >= currentStock : quantity >= maxQuantity, className: "flex h-10 w-10 items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-4 w-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) })] })] })), (0, jsx_runtime_1.jsxs)("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleAddToCart, disabled: !canAddToCart || isOutOfStock, className: (0, utils_1.cn)('flex-1 rounded-md px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
96
- ? 'bg-primary text-primary-foreground hover:bg-primary/90'
97
- : 'cursor-not-allowed bg-muted text-muted-foreground'), children: isOutOfStock
98
- ? 'Out of Stock'
99
- : !canAddToCart
100
- ? 'Select Options'
101
- : addToCartContent || 'Add to Cart' }), showBuyNow && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleBuyNow, disabled: !canAddToCart || isOutOfStock, className: (0, utils_1.cn)('flex-1 rounded-md border px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
102
- ? 'border-primary text-primary hover:bg-primary hover:text-primary-foreground'
103
- : 'cursor-not-allowed border-muted text-muted-foreground'), children: buyNowContent || 'Buy Now' }))] }), requiresVariant && !selectedVariant && ((0, jsx_runtime_1.jsx)("p", { className: "mt-3 text-sm text-muted-foreground", children: "Please select all options to add to cart" }))] })] }));
104
- }
105
- //# sourceMappingURL=ProductDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductDetails.js","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- import type { ProductAttribute, PriceRange } from '../hooks/useProductAttributes';
2
- import type { Category } from '../../core/types';
3
- export interface ProductFilterValues {
4
- categories: string[];
5
- attributes: Record<string, string[]>;
6
- priceRange: {
7
- min?: number;
8
- max?: number;
9
- };
10
- }
11
- export interface ProductFilterPanelProps {
12
- /** Available attributes for filtering */
13
- attributes?: ProductAttribute[];
14
- /** Price range for price filter */
15
- priceRange?: PriceRange | null;
16
- /** Categories for category filter */
17
- categories?: Category[];
18
- /** Current filter values */
19
- values: ProductFilterValues;
20
- /** Callback when filters change */
21
- onChange: (values: ProductFilterValues) => void;
22
- /** Custom className */
23
- className?: string;
24
- /** Currency for price display */
25
- currency?: string;
26
- /** Locale for price formatting */
27
- locale?: string;
28
- /** Show category filter */
29
- showCategories?: boolean;
30
- /** Show price filter */
31
- showPriceFilter?: boolean;
32
- /** Collapsible sections */
33
- collapsible?: boolean;
34
- /** Initially expanded sections */
35
- defaultExpanded?: string[];
36
- /** Show clear all button */
37
- showClearAll?: boolean;
38
- /** Layout direction */
39
- layout?: 'vertical' | 'horizontal';
40
- }
41
- /**
42
- * ProductFilterPanel component for filtering product listings.
43
- *
44
- * @example
45
- * ```tsx
46
- * import { ProductFilters, useProductAttributes } from '@rovela/sdk/products'
47
- *
48
- * function Sidebar() {
49
- * const { attributes, priceRange } = useProductAttributes()
50
- * const [filters, setFilters] = useState({
51
- * categories: [],
52
- * attributes: {},
53
- * priceRange: {},
54
- * })
55
- *
56
- * return (
57
- * <ProductFilters
58
- * attributes={attributes}
59
- * priceRange={priceRange}
60
- * values={filters}
61
- * onChange={setFilters}
62
- * collapsible
63
- * showClearAll
64
- * />
65
- * )
66
- * }
67
- * ```
68
- */
69
- export declare function ProductFilterPanel({ attributes, priceRange, categories, values, onChange, className, currency, locale, showCategories, showPriceFilter, collapsible, defaultExpanded, showClearAll, layout, }: ProductFilterPanelProps): import("react/jsx-runtime").JSX.Element;
70
- //# sourceMappingURL=ProductFilters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductFilters.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAMhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACpC,UAAU,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,yCAAyC;IACzC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,mCAAmC;IACnC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,qCAAqC;IACrC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,4BAA4B;IAC5B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uBAAuB;IACvB,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;CACnC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAe,EACf,UAAU,EACV,UAAe,EACf,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAgB,EAChB,MAAgB,EAChB,cAAqB,EACrB,eAAsB,EACtB,WAAkB,EAClB,eAAyC,EACzC,YAAmB,EACnB,MAAmB,GACpB,EAAE,uBAAuB,2CAqNzB"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProductFilterPanel = ProductFilterPanel;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- /**
7
- * @rovela/sdk/products/components/ProductFilters
8
- *
9
- * Comprehensive filter panel for product listings.
10
- */
11
- const react_1 = require("react");
12
- const utils_1 = require("../../core/utils");
13
- // =============================================================================
14
- // Component
15
- // =============================================================================
16
- /**
17
- * ProductFilterPanel component for filtering product listings.
18
- *
19
- * @example
20
- * ```tsx
21
- * import { ProductFilters, useProductAttributes } from '@rovela/sdk/products'
22
- *
23
- * function Sidebar() {
24
- * const { attributes, priceRange } = useProductAttributes()
25
- * const [filters, setFilters] = useState({
26
- * categories: [],
27
- * attributes: {},
28
- * priceRange: {},
29
- * })
30
- *
31
- * return (
32
- * <ProductFilters
33
- * attributes={attributes}
34
- * priceRange={priceRange}
35
- * values={filters}
36
- * onChange={setFilters}
37
- * collapsible
38
- * showClearAll
39
- * />
40
- * )
41
- * }
42
- * ```
43
- */
44
- function ProductFilterPanel({ attributes = [], priceRange, categories = [], values, onChange, className, currency = 'USD', locale = 'en-US', showCategories = true, showPriceFilter = true, collapsible = true, defaultExpanded = ['price', 'categories'], showClearAll = true, layout = 'vertical', }) {
45
- const [expandedSections, setExpandedSections] = (0, react_1.useState)(new Set(defaultExpanded));
46
- // Check if any filters are active
47
- const hasActiveFilters = (0, react_1.useMemo)(() => {
48
- return (values.categories.length > 0 ||
49
- Object.values(values.attributes).some((v) => v.length > 0) ||
50
- values.priceRange.min !== undefined ||
51
- values.priceRange.max !== undefined);
52
- }, [values]);
53
- // Toggle section expansion
54
- const toggleSection = (0, react_1.useCallback)((section) => {
55
- setExpandedSections((prev) => {
56
- const next = new Set(prev);
57
- if (next.has(section)) {
58
- next.delete(section);
59
- }
60
- else {
61
- next.add(section);
62
- }
63
- return next;
64
- });
65
- }, []);
66
- // Handle category toggle
67
- const handleCategoryToggle = (0, react_1.useCallback)((categoryId) => {
68
- const newCategories = values.categories.includes(categoryId)
69
- ? values.categories.filter((id) => id !== categoryId)
70
- : [...values.categories, categoryId];
71
- onChange({ ...values, categories: newCategories });
72
- }, [values, onChange]);
73
- // Handle attribute toggle
74
- const handleAttributeToggle = (0, react_1.useCallback)((attributeName, attributeValue) => {
75
- const currentValues = values.attributes[attributeName] || [];
76
- const newValues = currentValues.includes(attributeValue)
77
- ? currentValues.filter((v) => v !== attributeValue)
78
- : [...currentValues, attributeValue];
79
- onChange({
80
- ...values,
81
- attributes: {
82
- ...values.attributes,
83
- [attributeName]: newValues,
84
- },
85
- });
86
- }, [values, onChange]);
87
- // Handle price range change
88
- const handlePriceChange = (0, react_1.useCallback)((type, value) => {
89
- onChange({
90
- ...values,
91
- priceRange: {
92
- ...values.priceRange,
93
- [type]: value,
94
- },
95
- });
96
- }, [values, onChange]);
97
- // Clear all filters
98
- const handleClearAll = (0, react_1.useCallback)(() => {
99
- onChange({
100
- categories: [],
101
- attributes: {},
102
- priceRange: {},
103
- });
104
- }, [onChange]);
105
- const containerClasses = (0, utils_1.cn)(layout === 'vertical' ? 'space-y-4' : 'flex flex-wrap gap-4', className);
106
- return ((0, jsx_runtime_1.jsxs)("div", { className: containerClasses, children: [showClearAll && hasActiveFilters && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm font-medium text-foreground", children: "Filters" }), (0, jsx_runtime_1.jsx)("button", { onClick: handleClearAll, className: "text-sm text-primary hover:underline", children: "Clear all" })] })), showCategories && categories.length > 0 && ((0, jsx_runtime_1.jsx)(FilterSection, { title: "Category", sectionId: "categories", isExpanded: expandedSections.has('categories'), onToggle: collapsible ? () => toggleSection('categories') : undefined, layout: layout, children: (0, jsx_runtime_1.jsx)("div", { className: "space-y-2", children: categories.map((category) => ((0, jsx_runtime_1.jsxs)("label", { className: "flex cursor-pointer items-center gap-2", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: values.categories.includes(category.id), onChange: () => handleCategoryToggle(category.id), className: "h-4 w-4 rounded border-border text-primary focus:ring-primary" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm text-foreground", children: category.name })] }, category.id))) }) })), showPriceFilter && priceRange && ((0, jsx_runtime_1.jsx)(FilterSection, { title: "Price", sectionId: "price", isExpanded: expandedSections.has('price'), onToggle: collapsible ? () => toggleSection('price') : undefined, layout: layout, children: (0, jsx_runtime_1.jsxs)("div", { className: "space-y-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex-1", children: [(0, jsx_runtime_1.jsx)("label", { className: "sr-only", children: "Min price" }), (0, jsx_runtime_1.jsx)("input", { type: "number", placeholder: (0, utils_1.formatPrice)(priceRange.min, { currency, locale }), value: values.priceRange.min ?? '', onChange: (e) => handlePriceChange('min', e.target.value ? parseFloat(e.target.value) : undefined), min: 0, className: "w-full rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), (0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "to" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1", children: [(0, jsx_runtime_1.jsx)("label", { className: "sr-only", children: "Max price" }), (0, jsx_runtime_1.jsx)("input", { type: "number", placeholder: (0, utils_1.formatPrice)(priceRange.max, { currency, locale }), value: values.priceRange.max ?? '', onChange: (e) => handlePriceChange('max', e.target.value ? parseFloat(e.target.value) : undefined), min: 0, className: "w-full rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] }), (0, jsx_runtime_1.jsxs)("p", { className: "text-xs text-muted-foreground", children: ["Range: ", (0, utils_1.formatPrice)(priceRange.min, { currency, locale }), " -", ' ', (0, utils_1.formatPrice)(priceRange.max, { currency, locale })] })] }) })), attributes.map((attribute) => ((0, jsx_runtime_1.jsx)(FilterSection, { title: formatAttributeName(attribute.name), sectionId: attribute.name, isExpanded: expandedSections.has(attribute.name), onToggle: collapsible ? () => toggleSection(attribute.name) : undefined, layout: layout, children: (0, jsx_runtime_1.jsx)("div", { className: "space-y-2", children: attribute.values.map((value) => ((0, jsx_runtime_1.jsxs)("label", { className: "flex cursor-pointer items-center gap-2", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: (values.attributes[attribute.name] || []).includes(value), onChange: () => handleAttributeToggle(attribute.name, value), className: "h-4 w-4 rounded border-border text-primary focus:ring-primary" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm text-foreground", children: value })] }, value))) }) }, attribute.name)))] }));
107
- }
108
- function FilterSection({ title, sectionId, isExpanded, onToggle, children, layout = 'vertical', }) {
109
- const isCollapsible = !!onToggle;
110
- if (layout === 'horizontal') {
111
- return ((0, jsx_runtime_1.jsxs)("div", { className: "rounded-md border border-border p-3", children: [(0, jsx_runtime_1.jsx)("span", { className: "mb-2 block text-sm font-medium text-foreground", children: title }), children] }));
112
- }
113
- return ((0, jsx_runtime_1.jsxs)("div", { className: "border-b border-border pb-4", children: [isCollapsible ? ((0, jsx_runtime_1.jsxs)("button", { onClick: onToggle, className: "flex w-full items-center justify-between py-2 text-sm font-medium text-foreground", "aria-expanded": isExpanded, "aria-controls": `filter-section-${sectionId}`, children: [(0, jsx_runtime_1.jsx)("span", { children: title }), (0, jsx_runtime_1.jsx)("svg", { className: (0, utils_1.cn)('h-4 w-4 text-muted-foreground transition-transform', isExpanded && 'rotate-180'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })] })) : ((0, jsx_runtime_1.jsx)("span", { className: "block py-2 text-sm font-medium text-foreground", children: title })), (!isCollapsible || isExpanded) && ((0, jsx_runtime_1.jsx)("div", { id: `filter-section-${sectionId}`, children: children }))] }));
114
- }
115
- // =============================================================================
116
- // Helpers
117
- // =============================================================================
118
- function formatAttributeName(name) {
119
- return name
120
- .replace(/_/g, ' ')
121
- .replace(/([A-Z])/g, ' $1')
122
- .trim()
123
- .split(' ')
124
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
125
- .join(' ');
126
- }
127
- //# sourceMappingURL=ProductFilters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductFilters.js","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- export interface ProductGalleryProps {
2
- /** Array of image URLs */
3
- images: string[];
4
- /** Alt text for images */
5
- alt: string;
6
- /** Custom className */
7
- className?: string;
8
- /** Thumbnail position */
9
- thumbnailPosition?: 'bottom' | 'left';
10
- /** Main image aspect ratio */
11
- aspectRatio?: 'square' | 'portrait' | 'landscape';
12
- /** Enable zoom on click */
13
- enableZoom?: boolean;
14
- /** Show navigation arrows */
15
- showArrows?: boolean;
16
- }
17
- /**
18
- * ProductGallery component for displaying product images.
19
- *
20
- * @example
21
- * ```tsx
22
- * import { ProductGallery } from '@rovela/sdk/products'
23
- *
24
- * function ProductPage({ product }) {
25
- * return (
26
- * <ProductGallery
27
- * images={product.images}
28
- * alt={product.name}
29
- * thumbnailPosition="left"
30
- * aspectRatio="square"
31
- * />
32
- * )
33
- * }
34
- * ```
35
- */
36
- export declare function ProductGallery({ images, alt, className, thumbnailPosition, aspectRatio, enableZoom, showArrows, }: ProductGalleryProps): import("react/jsx-runtime").JSX.Element;
37
- //# sourceMappingURL=ProductGallery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductGallery.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACrC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACjD,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,GAAG,EACH,SAAS,EACT,iBAA4B,EAC5B,WAAsB,EACtB,UAAkB,EAClB,UAAiB,GAClB,EAAE,mBAAmB,2CA+NrB"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ProductGallery = ProductGallery;
8
- const jsx_runtime_1 = require("react/jsx-runtime");
9
- /**
10
- * @rovela/sdk/products/components/ProductGallery
11
- *
12
- * Image gallery component for product pages.
13
- */
14
- const react_1 = require("react");
15
- const image_1 = __importDefault(require("next/image"));
16
- const utils_1 = require("../../core/utils");
17
- // =============================================================================
18
- // Component
19
- // =============================================================================
20
- /**
21
- * ProductGallery component for displaying product images.
22
- *
23
- * @example
24
- * ```tsx
25
- * import { ProductGallery } from '@rovela/sdk/products'
26
- *
27
- * function ProductPage({ product }) {
28
- * return (
29
- * <ProductGallery
30
- * images={product.images}
31
- * alt={product.name}
32
- * thumbnailPosition="left"
33
- * aspectRatio="square"
34
- * />
35
- * )
36
- * }
37
- * ```
38
- */
39
- function ProductGallery({ images, alt, className, thumbnailPosition = 'bottom', aspectRatio = 'square', enableZoom = false, showArrows = true, }) {
40
- const [activeIndex, setActiveIndex] = (0, react_1.useState)(0);
41
- const [isZoomed, setIsZoomed] = (0, react_1.useState)(false);
42
- const aspectClasses = {
43
- square: 'aspect-square',
44
- portrait: 'aspect-[3/4]',
45
- landscape: 'aspect-[4/3]',
46
- };
47
- // Handle keyboard navigation
48
- const handleKeyDown = (0, react_1.useCallback)((e) => {
49
- if (e.key === 'ArrowLeft') {
50
- setActiveIndex((prev) => (prev > 0 ? prev - 1 : images.length - 1));
51
- }
52
- else if (e.key === 'ArrowRight') {
53
- setActiveIndex((prev) => (prev < images.length - 1 ? prev + 1 : 0));
54
- }
55
- }, [images.length]);
56
- const goToPrevious = (0, react_1.useCallback)(() => {
57
- setActiveIndex((prev) => (prev > 0 ? prev - 1 : images.length - 1));
58
- }, [images.length]);
59
- const goToNext = (0, react_1.useCallback)(() => {
60
- setActiveIndex((prev) => (prev < images.length - 1 ? prev + 1 : 0));
61
- }, [images.length]);
62
- const handleThumbnailClick = (0, react_1.useCallback)((index) => {
63
- setActiveIndex(index);
64
- }, []);
65
- const handleMainImageClick = (0, react_1.useCallback)(() => {
66
- if (enableZoom) {
67
- setIsZoomed(!isZoomed);
68
- }
69
- }, [enableZoom, isZoomed]);
70
- // Empty state
71
- if (!images || images.length === 0) {
72
- return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('relative overflow-hidden rounded-lg bg-muted', aspectClasses[aspectRatio], className), children: (0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-16 w-16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) }) }));
73
- }
74
- const containerClasses = (0, utils_1.cn)('flex gap-4', thumbnailPosition === 'left' ? 'flex-row' : 'flex-col', className);
75
- const thumbnailContainerClasses = (0, utils_1.cn)('flex gap-2', thumbnailPosition === 'left' ? 'flex-col' : 'flex-row', thumbnailPosition === 'left' ? 'order-first w-20' : 'order-last');
76
- return ((0, jsx_runtime_1.jsxs)("div", { className: containerClasses, onKeyDown: handleKeyDown, tabIndex: 0, children: [(0, jsx_runtime_1.jsxs)("div", { className: "relative flex-1", children: [(0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('relative overflow-hidden rounded-lg bg-muted', aspectClasses[aspectRatio], enableZoom && 'cursor-zoom-in'), onClick: handleMainImageClick, children: (0, jsx_runtime_1.jsx)(image_1.default, { src: images[activeIndex], alt: `${alt} - Image ${activeIndex + 1}`, fill: true, sizes: "(max-width: 768px) 100vw, 50vw", className: (0, utils_1.cn)('object-cover transition-transform duration-300', isZoomed && 'scale-150 cursor-zoom-out'), priority: activeIndex === 0 }) }), showArrows && images.length > 1 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: goToPrevious, className: "absolute left-2 top-1/2 -translate-y-1/2 rounded-full bg-background/80 p-2 shadow-sm transition-colors hover:bg-background", "aria-label": "Previous image", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-5 w-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: goToNext, className: "absolute right-2 top-1/2 -translate-y-1/2 rounded-full bg-background/80 p-2 shadow-sm transition-colors hover:bg-background", "aria-label": "Next image", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-5 w-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) }) })] })), images.length > 1 && ((0, jsx_runtime_1.jsxs)("div", { className: "absolute bottom-2 right-2 rounded-full bg-background/80 px-2 py-1 text-xs font-medium", children: [activeIndex + 1, " / ", images.length] }))] }), images.length > 1 && ((0, jsx_runtime_1.jsx)("div", { className: thumbnailContainerClasses, children: images.map((image, index) => ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => handleThumbnailClick(index), className: (0, utils_1.cn)('relative aspect-square overflow-hidden rounded-md transition-all', thumbnailPosition === 'left' ? 'w-full' : 'w-16 sm:w-20', activeIndex === index
77
- ? 'ring-2 ring-primary ring-offset-2'
78
- : 'opacity-70 hover:opacity-100'), "aria-label": `View image ${index + 1}`, "aria-current": activeIndex === index ? 'true' : 'false', children: (0, jsx_runtime_1.jsx)(image_1.default, { src: image, alt: `${alt} thumbnail ${index + 1}`, fill: true, sizes: "80px", className: "object-cover" }) }, index))) })), isZoomed && enableZoom && ((0, jsx_runtime_1.jsxs)("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80", onClick: () => setIsZoomed(false), children: [(0, jsx_runtime_1.jsx)("button", { className: "absolute right-4 top-4 rounded-full bg-white/10 p-2 text-white transition-colors hover:bg-white/20", onClick: () => setIsZoomed(false), "aria-label": "Close zoom", children: (0, jsx_runtime_1.jsx)("svg", { className: "h-6 w-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), (0, jsx_runtime_1.jsx)("div", { className: "relative h-[90vh] w-[90vw]", children: (0, jsx_runtime_1.jsx)(image_1.default, { src: images[activeIndex], alt: `${alt} - Zoomed`, fill: true, sizes: "90vw", className: "object-contain" }) })] }))] }));
79
- }
80
- //# sourceMappingURL=ProductGallery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductGallery.js","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;;AAwDZ,wCAuOC;;AA7RD;;;;GAIG;AAEH,iCAA6C;AAC7C,uDAA8B;AAC9B,4CAAqC;AAuBrC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,GAAG,EACH,SAAS,EACT,iBAAiB,GAAG,QAAQ,EAC5B,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,KAAK,EAClB,UAAU,GAAG,IAAI,GACG;IACpB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG;QACpB,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,cAAc;KAC1B,CAAA;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,CAAsB,EAAE,EAAE;QACzB,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC1B,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACrE,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAClC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,MAAM,CAAC,CAChB,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACpC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEnB,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAChC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEnB,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,CAAC,KAAa,EAAE,EAAE;QACzD,cAAc,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC5C,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1B,cAAc;IACd,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CACL,gCACE,SAAS,EAAE,IAAA,UAAE,EACX,8CAA8C,EAC9C,aAAa,CAAC,WAAW,CAAC,EAC1B,SAAS,CACV,YAED,gCAAK,SAAS,EAAC,yEAAyE,YACtF,gCACE,SAAS,EAAC,WAAW,EACrB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,iCACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,2JAA2J,GAC7J,GACE,GACF,GACF,CACP,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,UAAE,EACzB,YAAY,EACZ,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EACtD,SAAS,CACV,CAAA;IAED,MAAM,yBAAyB,GAAG,IAAA,UAAE,EAClC,YAAY,EACZ,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EACtD,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CACjE,CAAA;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,aAErE,iCAAK,SAAS,EAAC,iBAAiB,aAC9B,gCACE,SAAS,EAAE,IAAA,UAAE,EACX,8CAA8C,EAC9C,aAAa,CAAC,WAAW,CAAC,EAC1B,UAAU,IAAI,gBAAgB,CAC/B,EACD,OAAO,EAAE,oBAAoB,YAE7B,uBAAC,eAAK,IACJ,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EACxB,GAAG,EAAE,GAAG,GAAG,YAAY,WAAW,GAAG,CAAC,EAAE,EACxC,IAAI,QACJ,KAAK,EAAC,gCAAgC,EACtC,SAAS,EAAE,IAAA,UAAE,EACX,gDAAgD,EAChD,QAAQ,IAAI,2BAA2B,CACxC,EACD,QAAQ,EAAE,WAAW,KAAK,CAAC,GAC3B,GACE,EAGL,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,6DACE,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,4HAA4H,gBAC3H,gBAAgB,YAE3B,gCACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,iCACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,iBAAiB,GACnB,GACE,GACC,EACT,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,6HAA6H,gBAC5H,YAAY,YAEvB,gCACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,iCACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,cAAc,GAChB,GACE,GACC,IACR,CACJ,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,iCAAK,SAAS,EAAC,uFAAuF,aACnG,WAAW,GAAG,CAAC,SAAK,MAAM,CAAC,MAAM,IAC9B,CACP,IACG,EAGL,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,gCAAK,SAAS,EAAE,yBAAyB,YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,mCAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAC1C,SAAS,EAAE,IAAA,UAAE,EACX,kEAAkE,EAClE,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EACxD,WAAW,KAAK,KAAK;wBACnB,CAAC,CAAC,mCAAmC;wBACrC,CAAC,CAAC,8BAA8B,CACnC,gBACW,cAAc,KAAK,GAAG,CAAC,EAAE,kBACvB,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAEtD,uBAAC,eAAK,IACJ,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,GAAG,GAAG,cAAc,KAAK,GAAG,CAAC,EAAE,EACpC,IAAI,QACJ,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,cAAc,GACxB,IAnBG,KAAK,CAoBH,CACV,CAAC,GACE,CACP,EAGA,QAAQ,IAAI,UAAU,IAAI,CACzB,iCACE,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,aAEjC,mCACE,SAAS,EAAC,oGAAoG,EAC9G,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,gBACtB,YAAY,YAEvB,gCAAK,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,YAC5E,iCACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,GACxB,GACE,GACC,EACT,gCAAK,SAAS,EAAC,4BAA4B,YACzC,uBAAC,eAAK,IACJ,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EACxB,GAAG,EAAE,GAAG,GAAG,WAAW,EACtB,IAAI,QACJ,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,gBAAgB,GAC1B,GACE,IACF,CACP,IACG,CACP,CAAA;AACH,CAAC"}
@@ -1,50 +0,0 @@
1
- import { type ProductCardProps } from './ProductCard';
2
- import type { Product } from '../../core/types';
3
- export interface ProductGridProps {
4
- /** Products to display */
5
- products: Product[];
6
- /** Number of columns on different screen sizes */
7
- columns?: {
8
- sm?: 1 | 2;
9
- md?: 2 | 3 | 4;
10
- lg?: 3 | 4 | 5 | 6;
11
- };
12
- /** Gap between items */
13
- gap?: 'sm' | 'md' | 'lg';
14
- /** Custom className */
15
- className?: string;
16
- /** Props to pass to each ProductCard */
17
- cardProps?: Omit<ProductCardProps, 'product'>;
18
- /** Empty state content */
19
- emptyState?: React.ReactNode;
20
- /** Loading state */
21
- isLoading?: boolean;
22
- /** Number of skeleton cards to show while loading */
23
- skeletonCount?: number;
24
- }
25
- /**
26
- * ProductGrid component for displaying products in a responsive grid.
27
- *
28
- * @example
29
- * ```tsx
30
- * import { ProductGrid } from '@rovela/sdk/products'
31
- *
32
- * function ProductListing() {
33
- * const { products, isLoading } = useProducts()
34
- *
35
- * return (
36
- * <ProductGrid
37
- * products={products}
38
- * isLoading={isLoading}
39
- * columns={{ sm: 2, md: 3, lg: 4 }}
40
- * cardProps={{
41
- * showQuickAdd: true,
42
- * onQuickAdd: handleQuickAdd,
43
- * }}
44
- * />
45
- * )
46
- * }
47
- * ```
48
- */
49
- export declare function ProductGrid({ products, columns, gap, className, cardProps, emptyState, isLoading, skeletonCount, }: ProductGridProps): import("react/jsx-runtime").JSX.Element;
50
- //# sourceMappingURL=ProductGrid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductGrid.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGrid.tsx"],"names":[],"mappings":"AASA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QACV,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACd,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACnB,CAAA;IACD,wBAAwB;IACxB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACxB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAC7C,0BAA0B;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAiC,EACjC,GAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAiB,EACjB,aAAiB,GAClB,EAAE,gBAAgB,2CAiFlB"}