@rovela-ai/sdk 0.1.18 → 0.1.19

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 (298) hide show
  1. package/dist/admin/api/auth.js +5 -11
  2. package/dist/admin/api/auth.js.map +1 -1
  3. package/dist/admin/api/categories.js +43 -50
  4. package/dist/admin/api/categories.js.map +1 -1
  5. package/dist/admin/api/check.js +6 -9
  6. package/dist/admin/api/check.js.map +1 -1
  7. package/dist/admin/api/customers.js +17 -21
  8. package/dist/admin/api/customers.js.map +1 -1
  9. package/dist/admin/api/index.js +10 -38
  10. package/dist/admin/api/index.js.map +1 -1
  11. package/dist/admin/api/orders.js +30 -35
  12. package/dist/admin/api/orders.js.map +1 -1
  13. package/dist/admin/api/products.js +56 -66
  14. package/dist/admin/api/products.js.map +1 -1
  15. package/dist/admin/api/refund.js +26 -29
  16. package/dist/admin/api/refund.js.map +1 -1
  17. package/dist/admin/api/settings.js +17 -21
  18. package/dist/admin/api/settings.js.map +1 -1
  19. package/dist/admin/api/setup.js +17 -20
  20. package/dist/admin/api/setup.js.map +1 -1
  21. package/dist/admin/api/stats.js +14 -17
  22. package/dist/admin/api/stats.js.map +1 -1
  23. package/dist/admin/components/AdminGuard.js +13 -17
  24. package/dist/admin/components/AdminGuard.js.map +1 -1
  25. package/dist/admin/components/AdminHeader.js +8 -11
  26. package/dist/admin/components/AdminHeader.js.map +1 -1
  27. package/dist/admin/components/AdminLayout.js +5 -8
  28. package/dist/admin/components/AdminLayout.js.map +1 -1
  29. package/dist/admin/components/AdminLoginForm.js +11 -14
  30. package/dist/admin/components/AdminLoginForm.js.map +1 -1
  31. package/dist/admin/components/AdminNav.js +11 -14
  32. package/dist/admin/components/AdminNav.js.map +1 -1
  33. package/dist/admin/components/AdminSetupForm.js +11 -14
  34. package/dist/admin/components/AdminSetupForm.js.map +1 -1
  35. package/dist/admin/components/InventoryEditor.js +16 -19
  36. package/dist/admin/components/InventoryEditor.js.map +1 -1
  37. package/dist/admin/components/LowStockAlert.js +6 -9
  38. package/dist/admin/components/LowStockAlert.js.map +1 -1
  39. package/dist/admin/components/OrderDetails.js +15 -18
  40. package/dist/admin/components/OrderDetails.js.map +1 -1
  41. package/dist/admin/components/OrderTable.js +13 -16
  42. package/dist/admin/components/OrderTable.js.map +1 -1
  43. package/dist/admin/components/ProductForm.js +17 -20
  44. package/dist/admin/components/ProductForm.js.map +1 -1
  45. package/dist/admin/components/ProductTable.js +15 -18
  46. package/dist/admin/components/ProductTable.js.map +1 -1
  47. package/dist/admin/components/RecentOrders.js +6 -9
  48. package/dist/admin/components/RecentOrders.js.map +1 -1
  49. package/dist/admin/components/RefundDialog.js +12 -15
  50. package/dist/admin/components/RefundDialog.js.map +1 -1
  51. package/dist/admin/components/StatsCards.js +7 -10
  52. package/dist/admin/components/StatsCards.js.map +1 -1
  53. package/dist/admin/components/StoreSettings.js +10 -13
  54. package/dist/admin/components/StoreSettings.js.map +1 -1
  55. package/dist/admin/components/index.js +16 -35
  56. package/dist/admin/components/index.js.map +1 -1
  57. package/dist/admin/config.js +12 -54
  58. package/dist/admin/config.js.map +1 -1
  59. package/dist/admin/hooks/index.js +4 -11
  60. package/dist/admin/hooks/index.js.map +1 -1
  61. package/dist/admin/hooks/useAdminAuth.js +9 -12
  62. package/dist/admin/hooks/useAdminAuth.js.map +1 -1
  63. package/dist/admin/hooks/useAdminOrders.js +11 -14
  64. package/dist/admin/hooks/useAdminOrders.js.map +1 -1
  65. package/dist/admin/hooks/useAdminProducts.js +13 -16
  66. package/dist/admin/hooks/useAdminProducts.js.map +1 -1
  67. package/dist/admin/hooks/useAdminStats.js +11 -14
  68. package/dist/admin/hooks/useAdminStats.js.map +1 -1
  69. package/dist/admin/index.js +13 -66
  70. package/dist/admin/index.js.map +1 -1
  71. package/dist/admin/server/admin-service.js +39 -83
  72. package/dist/admin/server/admin-service.js.map +1 -1
  73. package/dist/admin/server/index.js +3 -13
  74. package/dist/admin/server/index.js.map +1 -1
  75. package/dist/admin/types.js +1 -2
  76. package/dist/admin/types.js.map +1 -1
  77. package/dist/auth/api/auth.js +6 -14
  78. package/dist/auth/api/auth.js.map +1 -1
  79. package/dist/auth/api/forgot-password.js +8 -11
  80. package/dist/auth/api/forgot-password.js.map +1 -1
  81. package/dist/auth/api/index.js +6 -18
  82. package/dist/auth/api/index.js.map +1 -1
  83. package/dist/auth/api/register.js +17 -20
  84. package/dist/auth/api/register.js.map +1 -1
  85. package/dist/auth/api/resend-verification.js +9 -12
  86. package/dist/auth/api/resend-verification.js.map +1 -1
  87. package/dist/auth/api/reset-password.js +18 -22
  88. package/dist/auth/api/reset-password.js.map +1 -1
  89. package/dist/auth/api/verify-email.js +14 -18
  90. package/dist/auth/api/verify-email.js.map +1 -1
  91. package/dist/auth/components/AuthGuard.js +13 -17
  92. package/dist/auth/components/AuthGuard.js.map +1 -1
  93. package/dist/auth/components/ForgotPasswordForm.js +11 -14
  94. package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
  95. package/dist/auth/components/ResetPasswordForm.js +18 -21
  96. package/dist/auth/components/ResetPasswordForm.js.map +1 -1
  97. package/dist/auth/components/SignInForm.js +13 -16
  98. package/dist/auth/components/SignInForm.js.map +1 -1
  99. package/dist/auth/components/SignUpForm.js +15 -18
  100. package/dist/auth/components/SignUpForm.js.map +1 -1
  101. package/dist/auth/components/UserMenu.js +13 -16
  102. package/dist/auth/components/UserMenu.js.map +1 -1
  103. package/dist/auth/components/VerifyEmailNotice.js +10 -13
  104. package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
  105. package/dist/auth/components/index.js +7 -18
  106. package/dist/auth/components/index.js.map +1 -1
  107. package/dist/auth/config.js +9 -49
  108. package/dist/auth/config.js.map +1 -1
  109. package/dist/auth/hooks/index.js +1 -5
  110. package/dist/auth/hooks/index.js.map +1 -1
  111. package/dist/auth/hooks/useAuth.js +14 -17
  112. package/dist/auth/hooks/useAuth.js.map +1 -1
  113. package/dist/auth/index.js +15 -37
  114. package/dist/auth/index.js.map +1 -1
  115. package/dist/auth/server/customer-service.js +39 -83
  116. package/dist/auth/server/customer-service.js.map +1 -1
  117. package/dist/auth/server/email-sender.js +11 -17
  118. package/dist/auth/server/email-sender.js.map +1 -1
  119. package/dist/auth/server/index.js +5 -36
  120. package/dist/auth/server/index.js.map +1 -1
  121. package/dist/auth/server/password-reset-service.js +30 -70
  122. package/dist/auth/server/password-reset-service.js.map +1 -1
  123. package/dist/auth/server/password.js +9 -18
  124. package/dist/auth/server/password.js.map +1 -1
  125. package/dist/auth/server/verification-service.js +35 -76
  126. package/dist/auth/server/verification-service.js.map +1 -1
  127. package/dist/auth/types.js +1 -2
  128. package/dist/auth/types.js.map +1 -1
  129. package/dist/cart/CartProvider.js +13 -17
  130. package/dist/cart/CartProvider.js.map +1 -1
  131. package/dist/cart/components/AddToCartButton.js +16 -19
  132. package/dist/cart/components/AddToCartButton.js.map +1 -1
  133. package/dist/cart/components/CartDrawer.js +17 -23
  134. package/dist/cart/components/CartDrawer.js.map +1 -1
  135. package/dist/cart/components/CartIcon.js +9 -12
  136. package/dist/cart/components/CartIcon.js.map +1 -1
  137. package/dist/cart/components/CartItem.js +7 -13
  138. package/dist/cart/components/CartItem.js.map +1 -1
  139. package/dist/cart/components/CartSummary.js +12 -15
  140. package/dist/cart/components/CartSummary.js.map +1 -1
  141. package/dist/cart/components/QuantitySelector.js +9 -12
  142. package/dist/cart/components/QuantitySelector.js.map +1 -1
  143. package/dist/cart/components/index.js +6 -15
  144. package/dist/cart/components/index.js.map +1 -1
  145. package/dist/cart/index.js +3 -17
  146. package/dist/cart/index.js.map +1 -1
  147. package/dist/cart/store.js +8 -13
  148. package/dist/cart/store.js.map +1 -1
  149. package/dist/checkout/api/checkout.js +12 -15
  150. package/dist/checkout/api/checkout.js.map +1 -1
  151. package/dist/checkout/api/index.js +2 -7
  152. package/dist/checkout/api/index.js.map +1 -1
  153. package/dist/checkout/api/webhook.js +8 -11
  154. package/dist/checkout/api/webhook.js.map +1 -1
  155. package/dist/checkout/components/CheckoutButton.js +8 -11
  156. package/dist/checkout/components/CheckoutButton.js.map +1 -1
  157. package/dist/checkout/components/CheckoutSuccess.js +11 -14
  158. package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
  159. package/dist/checkout/components/OrderSummary.js +8 -11
  160. package/dist/checkout/components/OrderSummary.js.map +1 -1
  161. package/dist/checkout/components/ShippingForm.js +14 -17
  162. package/dist/checkout/components/ShippingForm.js.map +1 -1
  163. package/dist/checkout/components/index.js +4 -11
  164. package/dist/checkout/components/index.js.map +1 -1
  165. package/dist/checkout/hooks/index.js +1 -6
  166. package/dist/checkout/hooks/index.js.map +1 -1
  167. package/dist/checkout/hooks/useCheckout.js +10 -19
  168. package/dist/checkout/hooks/useCheckout.js.map +1 -1
  169. package/dist/checkout/index.js +7 -28
  170. package/dist/checkout/index.js.map +1 -1
  171. package/dist/checkout/server/create-checkout-session.js +11 -16
  172. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  173. package/dist/checkout/server/handle-webhook.js +21 -24
  174. package/dist/checkout/server/handle-webhook.js.map +1 -1
  175. package/dist/checkout/server/index.js +3 -13
  176. package/dist/checkout/server/index.js.map +1 -1
  177. package/dist/checkout/server/order-service.js +11 -16
  178. package/dist/checkout/server/order-service.js.map +1 -1
  179. package/dist/checkout/stripe/client.js +13 -29
  180. package/dist/checkout/stripe/client.js.map +1 -1
  181. package/dist/checkout/stripe/index.js +1 -15
  182. package/dist/checkout/stripe/index.js.map +1 -1
  183. package/dist/checkout/types.js +1 -2
  184. package/dist/checkout/types.js.map +1 -1
  185. package/dist/core/config.js +12 -57
  186. package/dist/core/config.js.map +1 -1
  187. package/dist/core/db/client.js +16 -62
  188. package/dist/core/db/client.js.map +1 -1
  189. package/dist/core/db/index.js +14 -93
  190. package/dist/core/db/index.js.map +1 -1
  191. package/dist/core/db/queries.d.ts +6 -6
  192. package/dist/core/db/queries.js +207 -284
  193. package/dist/core/db/queries.js.map +1 -1
  194. package/dist/core/db/schema.js +179 -182
  195. package/dist/core/db/schema.js.map +1 -1
  196. package/dist/core/index.js +12 -42
  197. package/dist/core/index.js.map +1 -1
  198. package/dist/core/server/index.js +16 -68
  199. package/dist/core/server/index.js.map +1 -1
  200. package/dist/core/types.js +1 -2
  201. package/dist/core/types.js.map +1 -1
  202. package/dist/core/utils.js +26 -51
  203. package/dist/core/utils.js.map +1 -1
  204. package/dist/emails/config.js +13 -21
  205. package/dist/emails/config.js.map +1 -1
  206. package/dist/emails/index.js +10 -72
  207. package/dist/emails/index.js.map +1 -1
  208. package/dist/emails/send/auth.js +26 -34
  209. package/dist/emails/send/auth.js.map +1 -1
  210. package/dist/emails/send/index.js +2 -21
  211. package/dist/emails/send/index.js.map +1 -1
  212. package/dist/emails/send/orders.js +38 -50
  213. package/dist/emails/send/orders.js.map +1 -1
  214. package/dist/emails/sender.js +7 -12
  215. package/dist/emails/sender.js.map +1 -1
  216. package/dist/emails/templates/base.js +37 -53
  217. package/dist/emails/templates/base.js.map +1 -1
  218. package/dist/emails/templates/email-verification.js +12 -16
  219. package/dist/emails/templates/email-verification.js.map +1 -1
  220. package/dist/emails/templates/index.js +9 -43
  221. package/dist/emails/templates/index.js.map +1 -1
  222. package/dist/emails/templates/order-cancelled.js +18 -22
  223. package/dist/emails/templates/order-cancelled.js.map +1 -1
  224. package/dist/emails/templates/order-confirmation.js +30 -34
  225. package/dist/emails/templates/order-confirmation.js.map +1 -1
  226. package/dist/emails/templates/order-delivered.js +20 -24
  227. package/dist/emails/templates/order-delivered.js.map +1 -1
  228. package/dist/emails/templates/order-shipped.js +19 -23
  229. package/dist/emails/templates/order-shipped.js.map +1 -1
  230. package/dist/emails/templates/password-reset.js +12 -16
  231. package/dist/emails/templates/password-reset.js.map +1 -1
  232. package/dist/emails/templates/refund-processed.js +17 -21
  233. package/dist/emails/templates/refund-processed.js.map +1 -1
  234. package/dist/emails/templates/welcome.js +11 -15
  235. package/dist/emails/templates/welcome.js.map +1 -1
  236. package/dist/emails/types.js +1 -2
  237. package/dist/emails/types.js.map +1 -1
  238. package/dist/emails/utils.js +9 -20
  239. package/dist/emails/utils.js.map +1 -1
  240. package/dist/index.js +24 -176
  241. package/dist/index.js.map +1 -1
  242. package/dist/products/api/categories.js +7 -10
  243. package/dist/products/api/categories.js.map +1 -1
  244. package/dist/products/api/index.js +3 -9
  245. package/dist/products/api/index.js.map +1 -1
  246. package/dist/products/api/product.js +10 -13
  247. package/dist/products/api/product.js.map +1 -1
  248. package/dist/products/api/products.js +8 -11
  249. package/dist/products/api/products.js.map +1 -1
  250. package/dist/products/components/CategoryNav.js +20 -26
  251. package/dist/products/components/CategoryNav.js.map +1 -1
  252. package/dist/products/components/ProductBreadcrumb.js +7 -13
  253. package/dist/products/components/ProductBreadcrumb.js.map +1 -1
  254. package/dist/products/components/ProductCard.js +6 -12
  255. package/dist/products/components/ProductCard.js.map +1 -1
  256. package/dist/products/components/ProductDetails.js +14 -17
  257. package/dist/products/components/ProductDetails.js.map +1 -1
  258. package/dist/products/components/ProductFilters.js +15 -18
  259. package/dist/products/components/ProductFilters.js.map +1 -1
  260. package/dist/products/components/ProductGallery.js +17 -23
  261. package/dist/products/components/ProductGallery.js.map +1 -1
  262. package/dist/products/components/ProductGrid.js +10 -13
  263. package/dist/products/components/ProductGrid.js.map +1 -1
  264. package/dist/products/components/ProductSearch.js +14 -17
  265. package/dist/products/components/ProductSearch.js.map +1 -1
  266. package/dist/products/components/ProductSort.js +8 -11
  267. package/dist/products/components/ProductSort.js.map +1 -1
  268. package/dist/products/components/VariantSelector.js +16 -19
  269. package/dist/products/components/VariantSelector.js.map +1 -1
  270. package/dist/products/components/index.js +10 -23
  271. package/dist/products/components/index.js.map +1 -1
  272. package/dist/products/hooks/index.js +4 -11
  273. package/dist/products/hooks/index.js.map +1 -1
  274. package/dist/products/hooks/useCategories.js +12 -15
  275. package/dist/products/hooks/useCategories.js.map +1 -1
  276. package/dist/products/hooks/useProduct.js +9 -12
  277. package/dist/products/hooks/useProduct.js.map +1 -1
  278. package/dist/products/hooks/useProductAttributes.js +10 -13
  279. package/dist/products/hooks/useProductAttributes.js.map +1 -1
  280. package/dist/products/hooks/useProducts.js +15 -18
  281. package/dist/products/hooks/useProducts.js.map +1 -1
  282. package/dist/products/index.js +6 -23
  283. package/dist/products/index.js.map +1 -1
  284. package/dist/theme/ThemeProvider.js +12 -14
  285. package/dist/theme/ThemeProvider.js.map +1 -1
  286. package/dist/theme/colors.js +3 -8
  287. package/dist/theme/colors.js.map +1 -1
  288. package/dist/theme/defaults.js +27 -30
  289. package/dist/theme/defaults.js.map +1 -1
  290. package/dist/theme/fonts.js +12 -18
  291. package/dist/theme/fonts.js.map +1 -1
  292. package/dist/theme/generator.js +63 -69
  293. package/dist/theme/generator.js.map +1 -1
  294. package/dist/theme/hooks.js +11 -16
  295. package/dist/theme/hooks.js.map +1 -1
  296. package/dist/theme/index.js +6 -42
  297. package/dist/theme/index.js.map +1 -1
  298. package/package.json +31 -30
@@ -1,19 +1,13 @@
1
- "use strict";
2
1
  '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.CategoryNav = CategoryNav;
8
- const jsx_runtime_1 = require("react/jsx-runtime");
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
3
  /**
10
4
  * @rovela/sdk/products/components/CategoryNav
11
5
  *
12
6
  * Category navigation component with hierarchical support.
13
7
  */
14
- const react_1 = require("react");
15
- const link_1 = __importDefault(require("next/link"));
16
- const utils_1 = require("../../core/utils");
8
+ import { useState, useCallback } from 'react';
9
+ import Link from 'next/link';
10
+ import { cn } from '../../core/utils';
17
11
  // =============================================================================
18
12
  // Component
19
13
  // =============================================================================
@@ -40,7 +34,7 @@ const utils_1 = require("../../core/utils");
40
34
  * }
41
35
  * ```
42
36
  */
43
- function CategoryNav({ categories, activeSlug, className, variant = 'vertical', hrefPattern = '/categories/[slug]', showCount = false, counts = {}, showAllLink = true, allLinkLabel = 'All Products', collapsible = false, maxDepth = 3, }) {
37
+ export function CategoryNav({ categories, activeSlug, className, variant = 'vertical', hrefPattern = '/categories/[slug]', showCount = false, counts = {}, showAllLink = true, allLinkLabel = 'All Products', collapsible = false, maxDepth = 3, }) {
44
38
  // Check if categories have children (tree structure)
45
39
  const isTree = categories.length > 0 && 'children' in categories[0];
46
40
  const baseClasses = {
@@ -49,23 +43,23 @@ function CategoryNav({ categories, activeSlug, className, variant = 'vertical',
49
43
  dropdown: 'relative',
50
44
  };
51
45
  if (variant === 'dropdown') {
52
- return ((0, jsx_runtime_1.jsx)(CategoryDropdown, { categories: categories, activeSlug: activeSlug, className: className, hrefPattern: hrefPattern, showCount: showCount, counts: counts, showAllLink: showAllLink, allLinkLabel: allLinkLabel }));
46
+ return (_jsx(CategoryDropdown, { categories: categories, activeSlug: activeSlug, className: className, hrefPattern: hrefPattern, showCount: showCount, counts: counts, showAllLink: showAllLink, allLinkLabel: allLinkLabel }));
53
47
  }
54
- return ((0, jsx_runtime_1.jsxs)("nav", { className: (0, utils_1.cn)(baseClasses[variant], className), "aria-label": "Categories", children: [showAllLink && ((0, jsx_runtime_1.jsx)(CategoryLink, { href: "/products", label: allLinkLabel, isActive: !activeSlug, variant: variant })), isTree ? (
48
+ return (_jsxs("nav", { className: cn(baseClasses[variant], className), "aria-label": "Categories", children: [showAllLink && (_jsx(CategoryLink, { href: "/products", label: allLinkLabel, isActive: !activeSlug, variant: variant })), isTree ? (
55
49
  // Render tree structure
56
- categories.map((category) => ((0, jsx_runtime_1.jsx)(CategoryTreeItem, { category: category, activeSlug: activeSlug, hrefPattern: hrefPattern, showCount: showCount, counts: counts, collapsible: collapsible, variant: variant, depth: 0, maxDepth: maxDepth }, category.id)))) : (
50
+ categories.map((category) => (_jsx(CategoryTreeItem, { category: category, activeSlug: activeSlug, hrefPattern: hrefPattern, showCount: showCount, counts: counts, collapsible: collapsible, variant: variant, depth: 0, maxDepth: maxDepth }, category.id)))) : (
57
51
  // Render flat structure
58
- categories.map((category) => ((0, jsx_runtime_1.jsx)(CategoryLink, { href: hrefPattern.replace('[slug]', category.slug), label: category.name, isActive: category.slug === activeSlug, count: showCount ? counts[category.id] : undefined, variant: variant }, category.id))))] }));
52
+ categories.map((category) => (_jsx(CategoryLink, { href: hrefPattern.replace('[slug]', category.slug), label: category.name, isActive: category.slug === activeSlug, count: showCount ? counts[category.id] : undefined, variant: variant }, category.id))))] }));
59
53
  }
60
54
  function CategoryLink({ href, label, isActive = false, count, variant = 'vertical', className, depth = 0, }) {
61
- const linkClasses = (0, utils_1.cn)('block transition-colors', variant === 'horizontal'
62
- ? (0, utils_1.cn)('rounded-full px-4 py-2 text-sm', isActive
55
+ const linkClasses = cn('block transition-colors', variant === 'horizontal'
56
+ ? cn('rounded-full px-4 py-2 text-sm', isActive
63
57
  ? 'bg-primary text-primary-foreground'
64
58
  : 'bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground')
65
- : (0, utils_1.cn)('rounded-md px-3 py-2 text-sm', isActive
59
+ : cn('rounded-md px-3 py-2 text-sm', isActive
66
60
  ? 'bg-primary/10 font-medium text-primary'
67
61
  : 'text-muted-foreground hover:bg-muted hover:text-foreground'), depth > 0 && variant === 'vertical' && `ml-${Math.min(depth * 4, 12)}`, className);
68
- return ((0, jsx_runtime_1.jsx)(link_1.default, { href: href, className: linkClasses, children: (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: label }), count !== undefined && ((0, jsx_runtime_1.jsxs)("span", { className: "ml-2 text-xs text-muted-foreground", children: ["(", count, ")"] }))] }) }));
62
+ return (_jsx(Link, { href: href, className: linkClasses, children: _jsxs("span", { className: "flex items-center justify-between", children: [_jsx("span", { children: label }), count !== undefined && (_jsxs("span", { className: "ml-2 text-xs text-muted-foreground", children: ["(", count, ")"] }))] }) }));
69
63
  }
70
64
  function CategoryTreeItem({ category, activeSlug, hrefPattern, showCount, counts, collapsible, variant, depth, maxDepth, }) {
71
65
  const hasChildren = category.children && category.children.length > 0;
@@ -73,8 +67,8 @@ function CategoryTreeItem({ category, activeSlug, hrefPattern, showCount, counts
73
67
  const isActiveParent = hasChildren &&
74
68
  category.children.some(child => child.slug === activeSlug ||
75
69
  (child.children && child.children.some(gc => gc.slug === activeSlug)));
76
- const [isExpanded, setIsExpanded] = (0, react_1.useState)(isActive || isActiveParent);
77
- const handleToggle = (0, react_1.useCallback)((e) => {
70
+ const [isExpanded, setIsExpanded] = useState(isActive || isActiveParent);
71
+ const handleToggle = useCallback((e) => {
78
72
  if (collapsible && hasChildren) {
79
73
  e.preventDefault();
80
74
  setIsExpanded(!isExpanded);
@@ -83,18 +77,18 @@ function CategoryTreeItem({ category, activeSlug, hrefPattern, showCount, counts
83
77
  // Don't render beyond max depth
84
78
  if (depth >= maxDepth)
85
79
  return null;
86
- return ((0, jsx_runtime_1.jsxs)("div", { className: variant === 'vertical' ? 'space-y-1' : '', children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [collapsible && hasChildren && variant === 'vertical' && ((0, jsx_runtime_1.jsx)("button", { onClick: handleToggle, className: "mr-1 flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-muted", "aria-label": isExpanded ? 'Collapse' : 'Expand', children: (0, jsx_runtime_1.jsx)("svg", { className: (0, utils_1.cn)('h-4 w-4 transition-transform', isExpanded && 'rotate-90'), 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" }) }) })), (0, jsx_runtime_1.jsx)(CategoryLink, { href: hrefPattern.replace('[slug]', category.slug), label: category.name, isActive: isActive, count: showCount ? counts[category.id] : undefined, variant: variant, depth: collapsible ? 0 : depth, className: "flex-1" })] }), hasChildren && (collapsible ? isExpanded : true) && ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(variant === 'vertical' && 'ml-4 space-y-1'), children: category.children.map((child) => ((0, jsx_runtime_1.jsx)(CategoryTreeItem, { category: child, activeSlug: activeSlug, hrefPattern: hrefPattern, showCount: showCount, counts: counts, collapsible: collapsible, variant: variant, depth: depth + 1, maxDepth: maxDepth }, child.id))) }))] }));
80
+ return (_jsxs("div", { className: variant === 'vertical' ? 'space-y-1' : '', children: [_jsxs("div", { className: "flex items-center", children: [collapsible && hasChildren && variant === 'vertical' && (_jsx("button", { onClick: handleToggle, className: "mr-1 flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-muted", "aria-label": isExpanded ? 'Collapse' : 'Expand', children: _jsx("svg", { className: cn('h-4 w-4 transition-transform', isExpanded && 'rotate-90'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) }) })), _jsx(CategoryLink, { href: hrefPattern.replace('[slug]', category.slug), label: category.name, isActive: isActive, count: showCount ? counts[category.id] : undefined, variant: variant, depth: collapsible ? 0 : depth, className: "flex-1" })] }), hasChildren && (collapsible ? isExpanded : true) && (_jsx("div", { className: cn(variant === 'vertical' && 'ml-4 space-y-1'), children: category.children.map((child) => (_jsx(CategoryTreeItem, { category: child, activeSlug: activeSlug, hrefPattern: hrefPattern, showCount: showCount, counts: counts, collapsible: collapsible, variant: variant, depth: depth + 1, maxDepth: maxDepth }, child.id))) }))] }));
87
81
  }
88
82
  function CategoryDropdown({ categories, activeSlug, className, hrefPattern, showCount, counts, showAllLink, allLinkLabel, }) {
89
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
83
+ const [isOpen, setIsOpen] = useState(false);
90
84
  // Find active category name
91
85
  const flatCategories = flattenCategories(categories);
92
86
  const activeCategory = flatCategories.find((c) => c.slug === activeSlug);
93
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('relative', className), children: [(0, jsx_runtime_1.jsxs)("button", { onClick: () => setIsOpen(!isOpen), className: "flex w-full items-center justify-between rounded-md border border-border bg-background px-4 py-2 text-sm", children: [(0, jsx_runtime_1.jsx)("span", { children: activeCategory?.name || allLinkLabel }), (0, jsx_runtime_1.jsx)("svg", { className: (0, utils_1.cn)('h-4 w-4 transition-transform', isOpen && '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" }) })] }), isOpen && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "fixed inset-0 z-10", onClick: () => setIsOpen(false) }), (0, jsx_runtime_1.jsxs)("div", { className: "absolute z-20 mt-1 w-full rounded-md border border-border bg-background py-1 shadow-lg", children: [showAllLink && ((0, jsx_runtime_1.jsx)(link_1.default, { href: "/products", onClick: () => setIsOpen(false), className: (0, utils_1.cn)('block px-4 py-2 text-sm', !activeSlug
87
+ return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { onClick: () => setIsOpen(!isOpen), className: "flex w-full items-center justify-between rounded-md border border-border bg-background px-4 py-2 text-sm", children: [_jsx("span", { children: activeCategory?.name || allLinkLabel }), _jsx("svg", { className: cn('h-4 w-4 transition-transform', isOpen && 'rotate-180'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })] }), isOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-10", onClick: () => setIsOpen(false) }), _jsxs("div", { className: "absolute z-20 mt-1 w-full rounded-md border border-border bg-background py-1 shadow-lg", children: [showAllLink && (_jsx(Link, { href: "/products", onClick: () => setIsOpen(false), className: cn('block px-4 py-2 text-sm', !activeSlug
94
88
  ? 'bg-primary/10 text-primary'
95
- : 'text-foreground hover:bg-muted'), children: allLinkLabel })), flatCategories.map((category) => ((0, jsx_runtime_1.jsx)(link_1.default, { href: hrefPattern.replace('[slug]', category.slug), onClick: () => setIsOpen(false), className: (0, utils_1.cn)('block px-4 py-2 text-sm', category.slug === activeSlug
89
+ : 'text-foreground hover:bg-muted'), children: allLinkLabel })), flatCategories.map((category) => (_jsx(Link, { href: hrefPattern.replace('[slug]', category.slug), onClick: () => setIsOpen(false), className: cn('block px-4 py-2 text-sm', category.slug === activeSlug
96
90
  ? 'bg-primary/10 text-primary'
97
- : 'text-foreground hover:bg-muted'), children: (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: category.name }), showCount && counts[category.id] !== undefined && ((0, jsx_runtime_1.jsxs)("span", { className: "text-xs text-muted-foreground", children: ["(", counts[category.id], ")"] }))] }) }, category.id)))] })] }))] }));
91
+ : 'text-foreground hover:bg-muted'), children: _jsxs("span", { className: "flex items-center justify-between", children: [_jsx("span", { children: category.name }), showCount && counts[category.id] !== undefined && (_jsxs("span", { className: "text-xs text-muted-foreground", children: ["(", counts[category.id], ")"] }))] }) }, category.id)))] })] }))] }));
98
92
  }
99
93
  // =============================================================================
100
94
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryNav.js","sourceRoot":"","sources":["../../../src/products/components/CategoryNav.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CategoryNav.js","sourceRoot":"","sources":["../../../src/products/components/CategoryNav.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,12 @@
1
- "use strict";
2
1
  '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.ProductBreadcrumb = ProductBreadcrumb;
8
- const jsx_runtime_1 = require("react/jsx-runtime");
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
3
  /**
10
4
  * @rovela/sdk/products/components/ProductBreadcrumb
11
5
  *
12
6
  * Breadcrumb navigation for product and category pages.
13
7
  */
14
- const link_1 = __importDefault(require("next/link"));
15
- const utils_1 = require("../../core/utils");
8
+ import Link from 'next/link';
9
+ import { cn } from '../../core/utils';
16
10
  // =============================================================================
17
11
  // Component
18
12
  // =============================================================================
@@ -41,7 +35,7 @@ const utils_1 = require("../../core/utils");
41
35
  * }
42
36
  * ```
43
37
  */
44
- function ProductBreadcrumb({ categories = [], product, className, showHome = true, homeLabel = 'Home', homeHref = '/', categoryHrefPattern = '/categories/[slug]', separator, items: customItems, }) {
38
+ export function ProductBreadcrumb({ categories = [], product, className, showHome = true, homeLabel = 'Home', homeHref = '/', categoryHrefPattern = '/categories/[slug]', separator, items: customItems, }) {
45
39
  // Build breadcrumb items
46
40
  const items = [];
47
41
  if (customItems) {
@@ -67,10 +61,10 @@ function ProductBreadcrumb({ categories = [], product, className, showHome = tru
67
61
  items.push({ label: product.name });
68
62
  }
69
63
  }
70
- const defaultSeparator = ((0, jsx_runtime_1.jsx)("svg", { className: "h-4 w-4 flex-shrink-0 text-muted-foreground", 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" }) }));
71
- return ((0, jsx_runtime_1.jsx)("nav", { className: (0, utils_1.cn)('flex items-center text-sm', className), "aria-label": "Breadcrumb", children: (0, jsx_runtime_1.jsx)("ol", { className: "flex flex-wrap items-center gap-1.5", children: items.map((item, index) => {
64
+ const defaultSeparator = (_jsx("svg", { className: "h-4 w-4 flex-shrink-0 text-muted-foreground", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) }));
65
+ return (_jsx("nav", { className: cn('flex items-center text-sm', className), "aria-label": "Breadcrumb", children: _jsx("ol", { className: "flex flex-wrap items-center gap-1.5", children: items.map((item, index) => {
72
66
  const isLast = index === items.length - 1;
73
- return ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center gap-1.5", children: [index > 0 && ((0, jsx_runtime_1.jsx)("span", { className: "flex-shrink-0", "aria-hidden": "true", children: separator || defaultSeparator })), item.href && !isLast ? ((0, jsx_runtime_1.jsx)(link_1.default, { href: item.href, className: "text-muted-foreground transition-colors hover:text-foreground", children: item.label })) : ((0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)(isLast
67
+ return (_jsxs("li", { className: "flex items-center gap-1.5", children: [index > 0 && (_jsx("span", { className: "flex-shrink-0", "aria-hidden": "true", children: separator || defaultSeparator })), item.href && !isLast ? (_jsx(Link, { href: item.href, className: "text-muted-foreground transition-colors hover:text-foreground", children: item.label })) : (_jsx("span", { className: cn(isLast
74
68
  ? 'font-medium text-foreground'
75
69
  : 'text-muted-foreground'), "aria-current": isLast ? 'page' : undefined, children: item.label }))] }, index));
76
70
  }) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"ProductBreadcrumb.js","sourceRoot":"","sources":["../../../src/products/components/ProductBreadcrumb.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductBreadcrumb.js","sourceRoot":"","sources":["../../../src/products/components/ProductBreadcrumb.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,8 @@
1
- "use strict";
2
1
  '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.ProductCard = ProductCard;
8
- const jsx_runtime_1 = require("react/jsx-runtime");
9
- const image_1 = __importDefault(require("next/image"));
10
- const link_1 = __importDefault(require("next/link"));
11
- const utils_1 = require("../../core/utils");
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Image from 'next/image';
4
+ import Link from 'next/link';
5
+ import { cn, formatPrice } from '../../core/utils';
12
6
  // =============================================================================
13
7
  // Component
14
8
  // =============================================================================
@@ -35,7 +29,7 @@ const utils_1 = require("../../core/utils");
35
29
  * }
36
30
  * ```
37
31
  */
38
- function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAspect = 'square', className, currency = 'USD', locale = 'en-US', quickAddContent, href, showDiscount = true, }) {
32
+ export function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAspect = 'square', className, currency = 'USD', locale = 'en-US', quickAddContent, href, showDiscount = true, }) {
39
33
  const aspectClasses = {
40
34
  square: 'aspect-square',
41
35
  portrait: 'aspect-[3/4]',
@@ -60,6 +54,6 @@ function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAspect =
60
54
  e.stopPropagation();
61
55
  onQuickAdd?.(product);
62
56
  };
63
- return ((0, jsx_runtime_1.jsxs)("article", { className: (0, utils_1.cn)('group relative flex flex-col overflow-hidden rounded-lg border bg-card text-card-foreground transition-shadow hover:shadow-md', className), children: [(0, jsx_runtime_1.jsx)(link_1.default, { href: productHref, className: "relative block overflow-hidden", children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('relative w-full bg-muted', aspectClasses[imageAspect]), children: [mainImage ? ((0, jsx_runtime_1.jsx)(image_1.default, { src: mainImage, alt: product.name, fill: true, sizes: "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw", className: "object-cover transition-transform duration-300 group-hover:scale-105" })) : ((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-12 w-12", 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" }) }) })), showDiscount && discountPercent && ((0, jsx_runtime_1.jsxs)("span", { className: "absolute left-2 top-2 rounded-full bg-destructive px-2 py-0.5 text-xs font-medium text-destructive-foreground", children: ["-", discountPercent, "%"] })), showQuickAdd && ((0, jsx_runtime_1.jsx)("div", { className: "absolute inset-x-0 bottom-0 translate-y-full bg-gradient-to-t from-black/60 to-transparent p-4 opacity-0 transition-all duration-200 group-hover:translate-y-0 group-hover:opacity-100", children: (0, jsx_runtime_1.jsx)("button", { onClick: handleQuickAdd, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90", children: quickAddContent || 'Quick Add' }) }))] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-1 flex-col p-4", children: [(0, jsx_runtime_1.jsx)(link_1.default, { href: productHref, className: "flex-1", children: (0, jsx_runtime_1.jsx)("h3", { className: "line-clamp-2 font-medium text-foreground transition-colors hover:text-primary", children: product.name }) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2 flex items-baseline gap-2", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-lg font-semibold text-foreground", children: (0, utils_1.formatPrice)(price, { currency, locale }) }), comparePrice && comparePrice > price && ((0, jsx_runtime_1.jsx)("span", { className: "text-sm text-muted-foreground line-through", children: (0, utils_1.formatPrice)(comparePrice, { currency, locale }) }))] }), product.hasVariants && ((0, jsx_runtime_1.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: "Multiple options available" }))] })] }));
57
+ return (_jsxs("article", { className: cn('group relative flex flex-col overflow-hidden rounded-lg border bg-card text-card-foreground transition-shadow hover:shadow-md', className), children: [_jsx(Link, { href: productHref, className: "relative block overflow-hidden", children: _jsxs("div", { className: cn('relative w-full bg-muted', aspectClasses[imageAspect]), children: [mainImage ? (_jsx(Image, { src: mainImage, alt: product.name, fill: true, sizes: "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw", className: "object-cover transition-transform duration-300 group-hover:scale-105" })) : (_jsx("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: _jsx("svg", { className: "h-12 w-12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _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" }) }) })), showDiscount && discountPercent && (_jsxs("span", { className: "absolute left-2 top-2 rounded-full bg-destructive px-2 py-0.5 text-xs font-medium text-destructive-foreground", children: ["-", discountPercent, "%"] })), showQuickAdd && (_jsx("div", { className: "absolute inset-x-0 bottom-0 translate-y-full bg-gradient-to-t from-black/60 to-transparent p-4 opacity-0 transition-all duration-200 group-hover:translate-y-0 group-hover:opacity-100", children: _jsx("button", { onClick: handleQuickAdd, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90", children: quickAddContent || 'Quick Add' }) }))] }) }), _jsxs("div", { className: "flex flex-1 flex-col p-4", children: [_jsx(Link, { href: productHref, className: "flex-1", children: _jsx("h3", { className: "line-clamp-2 font-medium text-foreground transition-colors hover:text-primary", children: product.name }) }), _jsxs("div", { className: "mt-2 flex items-baseline gap-2", children: [_jsx("span", { className: "text-lg font-semibold text-foreground", children: formatPrice(price, { currency, locale }) }), comparePrice && comparePrice > price && (_jsx("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(comparePrice, { currency, locale }) }))] }), product.hasVariants && (_jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Multiple options available" }))] })] }));
64
58
  }
65
59
  //# sourceMappingURL=ProductCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../../src/products/components/ProductCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../../src/products/components/ProductCard.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,14 @@
1
- "use strict";
2
1
  'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProductDetails = ProductDetails;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
6
3
  /**
7
4
  * @rovela/sdk/products/components/ProductDetails
8
5
  *
9
6
  * Full product details component for product pages.
10
7
  */
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");
8
+ import { useState, useMemo } from 'react';
9
+ import { cn, formatPrice } from '../../core/utils';
10
+ import { VariantSelector } from './VariantSelector';
11
+ import { ProductGallery } from './ProductGallery';
15
12
  // =============================================================================
16
13
  // Component
17
14
  // =============================================================================
@@ -35,11 +32,11 @@ const ProductGallery_1 = require("./ProductGallery");
35
32
  * }
36
33
  * ```
37
34
  */
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);
35
+ export 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, }) {
36
+ const [selectedVariant, setSelectedVariant] = useState(null);
37
+ const [quantity, setQuantity] = useState(1);
41
38
  // Calculate current price
42
- const currentPrice = (0, react_1.useMemo)(() => {
39
+ const currentPrice = useMemo(() => {
43
40
  if (selectedVariant?.price) {
44
41
  return typeof selectedVariant.price === 'string'
45
42
  ? parseFloat(selectedVariant.price)
@@ -59,7 +56,7 @@ function ProductDetails({ product, variants = [], className, currency = 'USD', l
59
56
  ? Math.round(((comparePrice - currentPrice) / comparePrice) * 100)
60
57
  : null;
61
58
  // Calculate stock
62
- const currentStock = (0, react_1.useMemo)(() => {
59
+ const currentStock = useMemo(() => {
63
60
  if (selectedVariant) {
64
61
  return selectedVariant.inventory;
65
62
  }
@@ -89,17 +86,17 @@ function ProductDetails({ product, variants = [], className, currency = 'USD', l
89
86
  const max = currentStock > 0 ? Math.min(currentStock, maxQuantity) : maxQuantity;
90
87
  setQuantity(Math.max(1, Math.min(newQuantity, max)));
91
88
  };
92
- const containerClasses = (0, utils_1.cn)('grid gap-8', galleryPosition === 'left'
89
+ const containerClasses = cn('grid gap-8', galleryPosition === 'left'
93
90
  ? 'lg:grid-cols-2'
94
91
  : '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
92
+ return (_jsxs("div", { className: containerClasses, children: [_jsx("div", { className: galleryPosition === 'top' ? 'order-first' : '', children: _jsx(ProductGallery, { images: product.images, alt: product.name }) }), _jsxs("div", { className: "flex flex-col", children: [_jsx("h1", { className: "text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: product.name }), _jsxs("div", { className: "mt-3 flex items-baseline gap-3", children: [_jsx("span", { className: "text-2xl font-semibold text-foreground", children: formatPrice(currentPrice, { currency, locale }) }), comparePrice && comparePrice > currentPrice && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-lg text-muted-foreground line-through", children: formatPrice(comparePrice, { currency, locale }) }), discountPercent && (_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 && (_jsx("div", { className: "mt-3", children: isOutOfStock ? (_jsx("span", { className: "text-sm font-medium text-destructive", children: "Out of Stock" })) : isLowStock ? (_jsxs("span", { className: "text-sm font-medium text-warning", children: ["Only ", currentStock, " left in stock"] })) : (_jsxs("span", { className: "text-sm text-muted-foreground", children: ["In Stock (", currentStock, " available)"] })) })), _jsxs("div", { className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: "Description" }), _jsx("p", { className: "text-base text-muted-foreground", children: product.description })] }), children, requiresVariant && (_jsx("div", { className: "mt-6", children: _jsx(VariantSelector, { variants: variants, selected: selectedVariant, onSelect: setSelectedVariant, labels: variantLabels, disableOutOfStock: true }) })), showQuantity && (_jsxs("div", { className: "mt-6", children: [_jsx("label", { className: "mb-2 block text-sm font-medium text-foreground", children: "Quantity" }), _jsxs("div", { className: "flex w-32 items-center rounded-md border border-border", children: [_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: _jsx("svg", { className: "h-4 w-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M20 12H4" }) }) }), _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 }), _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: _jsx("svg", { className: "h-4 w-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) })] })] })), _jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row", children: [_jsx("button", { type: "button", onClick: handleAddToCart, disabled: !canAddToCart || isOutOfStock, className: cn('flex-1 rounded-md px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
96
93
  ? 'bg-primary text-primary-foreground hover:bg-primary/90'
97
94
  : 'cursor-not-allowed bg-muted text-muted-foreground'), children: isOutOfStock
98
95
  ? 'Out of Stock'
99
96
  : !canAddToCart
100
97
  ? '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
98
+ : addToCartContent || 'Add to Cart' }), showBuyNow && (_jsx("button", { type: "button", onClick: handleBuyNow, disabled: !canAddToCart || isOutOfStock, className: cn('flex-1 rounded-md border px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
102
99
  ? '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" }))] })] }));
100
+ : 'cursor-not-allowed border-muted text-muted-foreground'), children: buyNowContent || 'Buy Now' }))] }), requiresVariant && !selectedVariant && (_jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: "Please select all options to add to cart" }))] })] }));
104
101
  }
105
102
  //# sourceMappingURL=ProductDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductDetails.js","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductDetails.js","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
- "use strict";
2
1
  'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProductFilterPanel = ProductFilterPanel;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
3
  /**
7
4
  * @rovela/sdk/products/components/ProductFilters
8
5
  *
9
6
  * Comprehensive filter panel for product listings.
10
7
  */
11
- const react_1 = require("react");
12
- const utils_1 = require("../../core/utils");
8
+ import { useState, useCallback, useMemo } from 'react';
9
+ import { cn, formatPrice } from '../../core/utils';
13
10
  // =============================================================================
14
11
  // Component
15
12
  // =============================================================================
@@ -41,17 +38,17 @@ const utils_1 = require("../../core/utils");
41
38
  * }
42
39
  * ```
43
40
  */
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));
41
+ export 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', }) {
42
+ const [expandedSections, setExpandedSections] = useState(new Set(defaultExpanded));
46
43
  // Check if any filters are active
47
- const hasActiveFilters = (0, react_1.useMemo)(() => {
44
+ const hasActiveFilters = useMemo(() => {
48
45
  return (values.categories.length > 0 ||
49
46
  Object.values(values.attributes).some((v) => v.length > 0) ||
50
47
  values.priceRange.min !== undefined ||
51
48
  values.priceRange.max !== undefined);
52
49
  }, [values]);
53
50
  // Toggle section expansion
54
- const toggleSection = (0, react_1.useCallback)((section) => {
51
+ const toggleSection = useCallback((section) => {
55
52
  setExpandedSections((prev) => {
56
53
  const next = new Set(prev);
57
54
  if (next.has(section)) {
@@ -64,14 +61,14 @@ function ProductFilterPanel({ attributes = [], priceRange, categories = [], valu
64
61
  });
65
62
  }, []);
66
63
  // Handle category toggle
67
- const handleCategoryToggle = (0, react_1.useCallback)((categoryId) => {
64
+ const handleCategoryToggle = useCallback((categoryId) => {
68
65
  const newCategories = values.categories.includes(categoryId)
69
66
  ? values.categories.filter((id) => id !== categoryId)
70
67
  : [...values.categories, categoryId];
71
68
  onChange({ ...values, categories: newCategories });
72
69
  }, [values, onChange]);
73
70
  // Handle attribute toggle
74
- const handleAttributeToggle = (0, react_1.useCallback)((attributeName, attributeValue) => {
71
+ const handleAttributeToggle = useCallback((attributeName, attributeValue) => {
75
72
  const currentValues = values.attributes[attributeName] || [];
76
73
  const newValues = currentValues.includes(attributeValue)
77
74
  ? currentValues.filter((v) => v !== attributeValue)
@@ -85,7 +82,7 @@ function ProductFilterPanel({ attributes = [], priceRange, categories = [], valu
85
82
  });
86
83
  }, [values, onChange]);
87
84
  // Handle price range change
88
- const handlePriceChange = (0, react_1.useCallback)((type, value) => {
85
+ const handlePriceChange = useCallback((type, value) => {
89
86
  onChange({
90
87
  ...values,
91
88
  priceRange: {
@@ -95,22 +92,22 @@ function ProductFilterPanel({ attributes = [], priceRange, categories = [], valu
95
92
  });
96
93
  }, [values, onChange]);
97
94
  // Clear all filters
98
- const handleClearAll = (0, react_1.useCallback)(() => {
95
+ const handleClearAll = useCallback(() => {
99
96
  onChange({
100
97
  categories: [],
101
98
  attributes: {},
102
99
  priceRange: {},
103
100
  });
104
101
  }, [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)))] }));
102
+ const containerClasses = cn(layout === 'vertical' ? 'space-y-4' : 'flex flex-wrap gap-4', className);
103
+ return (_jsxs("div", { className: containerClasses, children: [showClearAll && hasActiveFilters && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Filters" }), _jsx("button", { onClick: handleClearAll, className: "text-sm text-primary hover:underline", children: "Clear all" })] })), showCategories && categories.length > 0 && (_jsx(FilterSection, { title: "Category", sectionId: "categories", isExpanded: expandedSections.has('categories'), onToggle: collapsible ? () => toggleSection('categories') : undefined, layout: layout, children: _jsx("div", { className: "space-y-2", children: categories.map((category) => (_jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [_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" }), _jsx("span", { className: "text-sm text-foreground", children: category.name })] }, category.id))) }) })), showPriceFilter && priceRange && (_jsx(FilterSection, { title: "Price", sectionId: "price", isExpanded: expandedSections.has('price'), onToggle: collapsible ? () => toggleSection('price') : undefined, layout: layout, children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "sr-only", children: "Min price" }), _jsx("input", { type: "number", placeholder: 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" })] }), _jsx("span", { className: "text-muted-foreground", children: "to" }), _jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "sr-only", children: "Max price" }), _jsx("input", { type: "number", placeholder: 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" })] })] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Range: ", formatPrice(priceRange.min, { currency, locale }), " -", ' ', formatPrice(priceRange.max, { currency, locale })] })] }) })), attributes.map((attribute) => (_jsx(FilterSection, { title: formatAttributeName(attribute.name), sectionId: attribute.name, isExpanded: expandedSections.has(attribute.name), onToggle: collapsible ? () => toggleSection(attribute.name) : undefined, layout: layout, children: _jsx("div", { className: "space-y-2", children: attribute.values.map((value) => (_jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [_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" }), _jsx("span", { className: "text-sm text-foreground", children: value })] }, value))) }) }, attribute.name)))] }));
107
104
  }
108
105
  function FilterSection({ title, sectionId, isExpanded, onToggle, children, layout = 'vertical', }) {
109
106
  const isCollapsible = !!onToggle;
110
107
  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] }));
108
+ return (_jsxs("div", { className: "rounded-md border border-border p-3", children: [_jsx("span", { className: "mb-2 block text-sm font-medium text-foreground", children: title }), children] }));
112
109
  }
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 }))] }));
110
+ return (_jsxs("div", { className: "border-b border-border pb-4", children: [isCollapsible ? (_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: [_jsx("span", { children: title }), _jsx("svg", { className: cn('h-4 w-4 text-muted-foreground transition-transform', isExpanded && 'rotate-180'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })] })) : (_jsx("span", { className: "block py-2 text-sm font-medium text-foreground", children: title })), (!isCollapsible || isExpanded) && (_jsx("div", { id: `filter-section-${sectionId}`, children: children }))] }));
114
111
  }
115
112
  // =============================================================================
116
113
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"ProductFilters.js","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductFilters.js","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"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"}