@rovela-ai/sdk 0.12.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/admin/api/refund.d.ts.map +1 -1
  2. package/dist/admin/api/refund.js +7 -1
  3. package/dist/admin/api/refund.js.map +1 -1
  4. package/dist/admin/api/return.d.ts.map +1 -1
  5. package/dist/admin/api/return.js +7 -1
  6. package/dist/admin/api/return.js.map +1 -1
  7. package/dist/admin/api/settings.d.ts.map +1 -1
  8. package/dist/admin/api/settings.js +3 -2
  9. package/dist/admin/api/settings.js.map +1 -1
  10. package/dist/admin/components/CatalogTranslationsEditor.d.ts.map +1 -1
  11. package/dist/admin/components/CatalogTranslationsEditor.js +1 -4
  12. package/dist/admin/components/CatalogTranslationsEditor.js.map +1 -1
  13. package/dist/admin/components/StoreSettings.d.ts.map +1 -1
  14. package/dist/admin/components/StoreSettings.js +3 -4
  15. package/dist/admin/components/StoreSettings.js.map +1 -1
  16. package/dist/auth/api/request-refund.d.ts.map +1 -1
  17. package/dist/auth/api/request-refund.js +7 -1
  18. package/dist/auth/api/request-refund.js.map +1 -1
  19. package/dist/auth/components/AddressBook.js +3 -3
  20. package/dist/auth/components/AddressBook.js.map +1 -1
  21. package/dist/auth/components/ForgotPasswordForm.js +2 -2
  22. package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
  23. package/dist/auth/components/ResetPasswordForm.js +4 -4
  24. package/dist/auth/components/ResetPasswordForm.js.map +1 -1
  25. package/dist/auth/components/SignInForm.js +1 -1
  26. package/dist/auth/components/SignInForm.js.map +1 -1
  27. package/dist/auth/components/SignUpForm.js +2 -2
  28. package/dist/auth/components/SignUpForm.js.map +1 -1
  29. package/dist/auth/components/UserMenu.js +1 -1
  30. package/dist/auth/components/UserMenu.js.map +1 -1
  31. package/dist/auth/components/VerifyEmailNotice.js +1 -1
  32. package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
  33. package/dist/auth/server/password-reset-service.d.ts.map +1 -1
  34. package/dist/auth/server/password-reset-service.js +1 -0
  35. package/dist/auth/server/password-reset-service.js.map +1 -1
  36. package/dist/auth/server/verification-service.d.ts.map +1 -1
  37. package/dist/auth/server/verification-service.js +7 -1
  38. package/dist/auth/server/verification-service.js.map +1 -1
  39. package/dist/cart/components/AddToCartButton.js +3 -3
  40. package/dist/cart/components/AddToCartButton.js.map +1 -1
  41. package/dist/cart/components/CartDrawer.d.ts.map +1 -1
  42. package/dist/cart/components/CartDrawer.js +7 -5
  43. package/dist/cart/components/CartDrawer.js.map +1 -1
  44. package/dist/cart/components/CartItem.js +1 -1
  45. package/dist/cart/components/CartItem.js.map +1 -1
  46. package/dist/cart/components/QuantitySelector.js +1 -1
  47. package/dist/cart/components/QuantitySelector.js.map +1 -1
  48. package/dist/checkout/components/CheckoutButton.js +3 -3
  49. package/dist/checkout/components/CheckoutButton.js.map +1 -1
  50. package/dist/checkout/components/CheckoutSuccess.d.ts.map +1 -1
  51. package/dist/checkout/components/CheckoutSuccess.js +3 -1
  52. package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
  53. package/dist/checkout/components/OrderSummary.js +1 -1
  54. package/dist/checkout/components/OrderSummary.js.map +1 -1
  55. package/dist/checkout/components/OrderTimeline.js +2 -2
  56. package/dist/checkout/components/OrderTimeline.js.map +1 -1
  57. package/dist/checkout/components/ShippingForm.js +4 -3
  58. package/dist/checkout/components/ShippingForm.js.map +1 -1
  59. package/dist/checkout/server/order-service.d.ts.map +1 -1
  60. package/dist/checkout/server/order-service.js +4 -1
  61. package/dist/checkout/server/order-service.js.map +1 -1
  62. package/dist/core/cookie-consent/CookieBanner.d.ts.map +1 -1
  63. package/dist/core/cookie-consent/CookieBanner.js +6 -4
  64. package/dist/core/cookie-consent/CookieBanner.js.map +1 -1
  65. package/dist/core/cookie-consent/CookiePreferencesLink.d.ts.map +1 -1
  66. package/dist/core/cookie-consent/CookiePreferencesLink.js +4 -2
  67. package/dist/core/cookie-consent/CookiePreferencesLink.js.map +1 -1
  68. package/dist/core/i18n/LanguageSwitcher.d.ts.map +1 -1
  69. package/dist/core/i18n/LanguageSwitcher.js +9 -8
  70. package/dist/core/i18n/LanguageSwitcher.js.map +1 -1
  71. package/dist/core/i18n/catalog.d.ts +1 -1
  72. package/dist/core/i18n/catalog.d.ts.map +1 -1
  73. package/dist/core/i18n/catalog.js +2 -1
  74. package/dist/core/i18n/catalog.js.map +1 -1
  75. package/dist/core/i18n/index.d.ts +2 -2
  76. package/dist/core/i18n/index.d.ts.map +1 -1
  77. package/dist/core/i18n/index.js +2 -2
  78. package/dist/core/i18n/index.js.map +1 -1
  79. package/dist/core/i18n/messages/en.d.ts.map +1 -1
  80. package/dist/core/i18n/messages/en.js +159 -0
  81. package/dist/core/i18n/messages/en.js.map +1 -1
  82. package/dist/core/i18n/messages/fr.d.ts.map +1 -1
  83. package/dist/core/i18n/messages/fr.js +159 -0
  84. package/dist/core/i18n/messages/fr.js.map +1 -1
  85. package/dist/core/i18n/resolve.d.ts +2 -0
  86. package/dist/core/i18n/resolve.d.ts.map +1 -1
  87. package/dist/core/i18n/resolve.js +11 -9
  88. package/dist/core/i18n/resolve.js.map +1 -1
  89. package/dist/core/i18n/types.d.ts +9 -0
  90. package/dist/core/i18n/types.d.ts.map +1 -1
  91. package/dist/core/i18n/types.js +14 -0
  92. package/dist/core/i18n/types.js.map +1 -1
  93. package/dist/core/index.d.ts +1 -0
  94. package/dist/core/index.d.ts.map +1 -1
  95. package/dist/core/index.js +1 -0
  96. package/dist/core/index.js.map +1 -1
  97. package/dist/core/useStoreFormatting.d.ts +10 -0
  98. package/dist/core/useStoreFormatting.d.ts.map +1 -0
  99. package/dist/core/useStoreFormatting.js +57 -0
  100. package/dist/core/useStoreFormatting.js.map +1 -0
  101. package/dist/emails/i18n.d.ts +0 -5
  102. package/dist/emails/i18n.d.ts.map +1 -1
  103. package/dist/emails/i18n.js +9 -4
  104. package/dist/emails/i18n.js.map +1 -1
  105. package/dist/products/api/categories.d.ts +5 -2
  106. package/dist/products/api/categories.d.ts.map +1 -1
  107. package/dist/products/api/categories.js +13 -2
  108. package/dist/products/api/categories.js.map +1 -1
  109. package/dist/products/components/ProductCard.d.ts.map +1 -1
  110. package/dist/products/components/ProductCard.js +6 -2
  111. package/dist/products/components/ProductCard.js.map +1 -1
  112. package/dist/products/components/ProductDetails.d.ts.map +1 -1
  113. package/dist/products/components/ProductDetails.js +11 -7
  114. package/dist/products/components/ProductDetails.js.map +1 -1
  115. package/dist/products/components/ProductGallery.d.ts.map +1 -1
  116. package/dist/products/components/ProductGallery.js +6 -4
  117. package/dist/products/components/ProductGallery.js.map +1 -1
  118. package/dist/products/components/ProductGrid.d.ts.map +1 -1
  119. package/dist/products/components/ProductGrid.js +3 -1
  120. package/dist/products/components/ProductGrid.js.map +1 -1
  121. package/dist/products/components/ProductSearch.d.ts.map +1 -1
  122. package/dist/products/components/ProductSearch.js +5 -2
  123. package/dist/products/components/ProductSearch.js.map +1 -1
  124. package/dist/products/components/ProductSort.d.ts.map +1 -1
  125. package/dist/products/components/ProductSort.js +18 -11
  126. package/dist/products/components/ProductSort.js.map +1 -1
  127. package/dist/products/components/ProductSpecifications.d.ts.map +1 -1
  128. package/dist/products/components/ProductSpecifications.js +5 -2
  129. package/dist/products/components/ProductSpecifications.js.map +1 -1
  130. package/dist/products/components/VariantSelector.d.ts.map +1 -1
  131. package/dist/products/components/VariantSelector.js +4 -2
  132. package/dist/products/components/VariantSelector.js.map +1 -1
  133. package/package.json +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStoreFormatting.d.ts","sourceRoot":"","sources":["../../src/core/useStoreFormatting.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAC/C,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,KAAK,MAAM,CAAA;CAClF;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CA2CpD"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ /**
3
+ * @rovela-ai/sdk/core/useStoreFormatting
4
+ *
5
+ * Locale-aware store formatting (i18n). `useStoreSettings().formatPrice` /
6
+ * `.formatDate` derive their Intl locale from the STORE CURRENCY (a
7
+ * currency→locale map) — correct for single-language stores, wrong on a
8
+ * bilingual store where a French visitor would see "9 Jul 2026" / "€537.56"
9
+ * instead of "9 juil. 2026" / "537,56 €".
10
+ *
11
+ * This hook composes the two contexts: currency + timezone come from
12
+ * StoreSettingsProvider, the FORMATTING locale comes from the active i18n
13
+ * locale (RovelaLocaleProvider). Without a locale provider it falls back to
14
+ * 'en-US' — new templates always mount the provider, and pre-i18n templates
15
+ * never import this hook, so legacy stores are untouched by construction.
16
+ *
17
+ * StoreSettingsProvider itself is deliberately NOT locale-aware: it mounts
18
+ * ABOVE RovelaLocaleProvider (Providers.tsx wraps LayoutContent) and also
19
+ * serves the admin branch, which stays English by design.
20
+ */
21
+ import { useCallback } from 'react';
22
+ import { useIntlLocale } from './i18n';
23
+ import { useStoreSettingsOptional } from './StoreSettingsProvider';
24
+ const DEFAULT_TIMEZONE = 'America/New_York';
25
+ export function useStoreFormatting() {
26
+ const intlLocale = useIntlLocale();
27
+ const store = useStoreSettingsOptional();
28
+ const currency = store?.currency ?? 'USD';
29
+ const timezone = store?.settings?.storeTimezone || DEFAULT_TIMEZONE;
30
+ const formatPrice = useCallback((price) => {
31
+ let numPrice = typeof price === 'string' ? parseFloat(price) : price;
32
+ // Same cents heuristic as StoreSettingsProvider.formatPrice — keep in
33
+ // lockstep (large whole integers are assumed to be cents).
34
+ if (Number.isInteger(numPrice) && numPrice > 100) {
35
+ numPrice = numPrice / 100;
36
+ }
37
+ return new Intl.NumberFormat(intlLocale, {
38
+ style: 'currency',
39
+ currency,
40
+ minimumFractionDigits: 2,
41
+ maximumFractionDigits: 2,
42
+ }).format(numPrice);
43
+ }, [intlLocale, currency]);
44
+ const formatDate = useCallback((date, options = {
45
+ year: 'numeric',
46
+ month: 'short',
47
+ day: 'numeric',
48
+ }) => {
49
+ const d = typeof date === 'string' ? new Date(date) : date;
50
+ return new Intl.DateTimeFormat(intlLocale, {
51
+ ...options,
52
+ timeZone: timezone,
53
+ }).format(d);
54
+ }, [intlLocale, timezone]);
55
+ return { currency, intlLocale, formatPrice, formatDate };
56
+ }
57
+ //# sourceMappingURL=useStoreFormatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStoreFormatting.js","sourceRoot":"","sources":["../../src/core/useStoreFormatting.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAW3C,MAAM,UAAU,kBAAkB;IAChC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,wBAAwB,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAA;IACzC,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,aAAa,IAAI,gBAAgB,CAAA;IAEnE,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAsB,EAAU,EAAE;QACjC,IAAI,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACpE,sEAAsE;QACtE,2DAA2D;QAC3D,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACjD,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA;QAC3B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YACvC,KAAK,EAAE,UAAU;YACjB,QAAQ;YACR,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;SACzB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAA;IAED,MAAM,UAAU,GAAG,WAAW,CAC5B,CACE,IAAmB,EACnB,UAAsC;QACpC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACf,EACO,EAAE;QACV,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1D,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YACzC,GAAG,OAAO;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACd,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAA;IAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA;AAC1D,CAAC"}
@@ -18,10 +18,5 @@
18
18
  * never touch a French word ("Mon compte").
19
19
  */
20
20
  import { type StoreLocale } from '../core/i18n/types';
21
- /**
22
- * Localize a rendered email (HTML body or subject line) for a locale.
23
- * English (or anything unmapped) returns the input unchanged — the email is
24
- * NEVER broken by localization, worst case it ships in English.
25
- */
26
21
  export declare function localizeEmail(input: string, locale: StoreLocale | string | null | undefined): string;
27
22
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/emails/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AA2PlE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIpG"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/emails/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAuQlE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIpG"}
@@ -221,6 +221,7 @@ const FR_PHRASES = [
221
221
  [`>Account Created:<`, `>Compte créé le :<`],
222
222
  [`>Free<`, `>Gratuite<`],
223
223
  [`>Paid<`, `>Payée<`],
224
+ [`Original payment method`, `Moyen de paiement d'origine`],
224
225
  [` business days`, ` jours ouvrés`],
225
226
  // ── Shared footer & link fallback ───────────────────────────────────────
226
227
  [`Need help? Contact us at`, `Besoin d'aide ? Contactez-nous à`],
@@ -263,11 +264,15 @@ function localizeFrench(input) {
263
264
  * English (or anything unmapped) returns the input unchanged — the email is
264
265
  * NEVER broken by localization, worst case it ships in English.
265
266
  */
267
+ // Per-locale localizers. Adding a language = author its phrase table +
268
+ // register it here; unregistered locales fail open to English.
269
+ const LOCALIZERS = {
270
+ fr: localizeFrench,
271
+ };
266
272
  export function localizeEmail(input, locale) {
267
- if (!input || !locale || locale === 'en')
273
+ if (!input || !locale)
268
274
  return input;
269
- if (locale === 'fr')
270
- return localizeFrench(input);
271
- return input;
275
+ const localizer = LOCALIZERS[locale];
276
+ return localizer ? localizer(input) : input;
272
277
  }
273
278
  //# sourceMappingURL=i18n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/emails/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,oBAAoB,CAAA;AAElE,MAAM,SAAS,GAA2B;IACxC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACrB,CAAA;AAED,4EAA4E;AAC5E,MAAM,UAAU,GAA4B;IAC1C,2EAA2E;IAC3E,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IACpD,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/B,2EAA2E;IAC3E,CAAC,2BAA2B,EAAE,6BAA6B,CAAC;IAC5D,CAAC,2BAA2B,EAAE,+BAA+B,CAAC;IAC9D,CAAC,gCAAgC,EAAE,+BAA+B,CAAC;IACnE,CAAC,+BAA+B,EAAE,6BAA6B,CAAC;IAChE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;IAC3D,2EAA2E;IAC3E,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;IAChF,CAAC,gCAAgC,EAAE,yCAAyC,CAAC;IAC7E,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAC5C,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACzC,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChC,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACzC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;IAClD,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACvC,CAAC,+BAA+B,EAAE,uCAAuC,CAAC;IAC1E,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAC5C,wEAAwE;IACxE,GAAG,CAAC,GAAG,EAAE;QACP,MAAM,IAAI,GAA4B;YACpC,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;YACf,CAAC,KAAK,EAAE,MAAM,CAAC;SAChB,CAAA;QACD,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,EAAE;IACJ,CAAC,gCAAgC,EAAE,oCAAoC,CAAC;IACxE,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAClD,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACzC,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACtC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACvC,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IAC9C,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3B,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;IAC/D,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;IAC/D,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;IAC3D,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;IAC3D,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACjC,CAAC,6BAA6B,EAAE,mCAAmC,CAAC;IACpE,2EAA2E;IAC3E;QACE,mIAAmI;QACnI,2IAA2I;KAC5I;IACD;QACE,kEAAkE;QAClE,mEAAmE;KACpE;IACD;QACE,8CAA8C;QAC9C,kDAAkD;KACnD;IACD;QACE,wHAAwH;QACxH,4IAA4I;KAC7I;IACD;QACE,6CAA6C;QAC7C,4DAA4D;KAC7D;IACD;QACE,6EAA6E;QAC7E,sFAAsF;KACvF;IACD;QACE,gGAAgG;QAChG,oIAAoI;KACrI;IACD;QACE,gHAAgH;QAChH,yHAAyH;KAC1H;IACD;QACE,4EAA4E;QAC5E,sFAAsF;KACvF;IACD,CAAC,6BAA6B,EAAE,iCAAiC,CAAC;IAClE;QACE,oHAAoH;QACpH,mIAAmI;KACpI;IACD;QACE,0FAA0F;QAC1F,wFAAwF;KACzF;IACD;QACE,4HAA4H;QAC5H,6HAA6H;KAC9H;IACD,CAAC,mCAAmC,EAAE,+BAA+B,CAAC;IACtE,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC;QACE,4GAA4G;QAC5G,yGAAyG;KAC1G;IACD,CAAC,oCAAoC,EAAE,2DAA2D,CAAC;IACnG;QACE,iEAAiE;QACjE,mEAAmE;KACpE;IACD;QACE,gHAAgH;QAChH,6IAA6I;KAC9I;IACD,CAAC,eAAe,EAAE,kBAAkB,CAAC;IACrC;QACE,mFAAmF;QACnF,yFAAyF;KAC1F;IACD,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAC3C;QACE,0FAA0F;QAC1F,0FAA0F;KAC3F;IACD,CAAC,uCAAuC,EAAE,gDAAgD,CAAC;IAC3F,oBAAoB;IACpB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IACtD,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;IAC3D;QACE,+EAA+E;QAC/E,mGAAmG;KACpG;IACD,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;IACnD,CAAC,6BAA6B,EAAE,+BAA+B,CAAC;IAChE;QACE,iFAAiF;QACjF,oFAAoF;KACrF;IACD,yCAAyC;IACzC,CAAC,2BAA2B,EAAE,wBAAwB,CAAC;IACvD,CAAC,8BAA8B,EAAE,uCAAuC,CAAC;IACzE,CAAC,6BAA6B,EAAE,sCAAsC,CAAC;IACvE,2EAA2E;IAC3E,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IACvD,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IAC3C,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAC1C,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IAC7C,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAC1C,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;IACvD,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;IACnD,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;IACxD,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IAC9C,2EAA2E;IAC3E,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAC1C,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAC5C,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACzC,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;IAChD,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC1C,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;IAC/C,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACjC,CAAC,gBAAgB,EAAE,YAAY,CAAC;IAChC,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAClC,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;IAC1C,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAC5C,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;IAC3D,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;IAClD,CAAC,wBAAwB,EAAE,gCAAgC,CAAC;IAC5D,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IAC9C,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IACjD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAC5C,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,QAAQ,EAAE,SAAS,CAAC;IACrB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IACnC,2EAA2E;IAC3E,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;IAChE;QACE,yEAAyE;QACzE,kFAAkF;KACnF;IACD,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;CAClD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAA4B,CAAA;AAEtE,uEAAuE;AACvE,MAAM,gBAAgB,GAA2B,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;AAE/D,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,GAAG,GAAG,KAAK,CAAA;IAEf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC5D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;IACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;IAE/C,sEAAsE;IACtE,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,mHAAmH,EACnH,CAAC,EAAE,EAAE,KAAa,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CACvF,CAAA;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,kCAAkC;IAClC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACxF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,MAAM,oCAAoC,EAAE,GAAG,CAAC,CAAA;QAC/E,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAC/C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACrC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAA+C;IAC1F,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACtD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;IACjD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/emails/i18n.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * export { GET } from '@rovela/sdk/products/api'
11
11
  * ```
12
12
  */
13
- import { NextResponse } from 'next/server';
13
+ import { NextResponse, type NextRequest } from 'next/server';
14
14
  import { findCategories } from '../../core/db/queries';
15
15
  export interface CategoriesApiResponse {
16
16
  data: Awaited<ReturnType<typeof findCategories>>;
@@ -24,6 +24,9 @@ export interface CategoriesApiError {
24
24
  *
25
25
  * Returns all categories for the current tenant, ordered by sort order.
26
26
  * Categories include parentId for building hierarchical navigation.
27
+ * Category names/descriptions are localized for the requested locale
28
+ * (?locale= or the x-rovela-locale header) — same contract as the
29
+ * products endpoint.
27
30
  */
28
- export declare function GET(): Promise<NextResponse<CategoriesApiResponse | CategoriesApiError>>;
31
+ export declare function GET(request?: NextRequest): Promise<NextResponse<CategoriesApiResponse | CategoriesApiError>>;
29
32
  //# sourceMappingURL=categories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/products/api/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAMtD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAMD;;;;;GAKG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAClC,YAAY,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,CACzD,CA6BA"}
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/products/api/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAQtD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAMD;;;;;;;;GAQG;AACH,wBAAsB,GAAG,CACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAsCnE"}
@@ -12,6 +12,8 @@
12
12
  */
13
13
  import { NextResponse } from 'next/server';
14
14
  import { findCategories } from '../../core/db/queries';
15
+ import { getRequestLocale } from '../../core/server/request-locale';
16
+ import { localizeCatalogRows } from '../../core/i18n/catalog';
15
17
  // =============================================================================
16
18
  // Handler
17
19
  // =============================================================================
@@ -20,12 +22,21 @@ import { findCategories } from '../../core/db/queries';
20
22
  *
21
23
  * Returns all categories for the current tenant, ordered by sort order.
22
24
  * Categories include parentId for building hierarchical navigation.
25
+ * Category names/descriptions are localized for the requested locale
26
+ * (?locale= or the x-rovela-locale header) — same contract as the
27
+ * products endpoint.
23
28
  */
24
- export async function GET() {
29
+ export async function GET(request) {
25
30
  try {
26
31
  const categories = await findCategories();
32
+ // Localize catalog content (translations jsonb overlay, field-by-field
33
+ // fallback). `request` is optional for back-compat with routes that
34
+ // re-export a zero-arg GET — header detection still applies via
35
+ // getRequestLocale's internal headers() read.
36
+ const { locale, config } = await getRequestLocale(request?.nextUrl?.searchParams?.get('locale') ?? null);
37
+ const localized = localizeCatalogRows(categories, locale, config.defaultLocale);
27
38
  return NextResponse.json({
28
- data: categories,
39
+ data: localized,
29
40
  });
30
41
  }
31
42
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/products/api/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAetD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG;IAGvB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;QAEzC,OAAO,YAAY,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAE/C,yCAAyC;QACzC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1E,OAAO,YAAY,CAAC,IAAI,CACtB;gBACE,KAAK,EAAE,kEAAkE;gBACzE,IAAI,EAAE,gBAAgB;aACvB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CACtB;YACE,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,gBAAgB;SACvB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/products/api/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAe7D,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;QAEzC,uEAAuE;QACvE,oEAAoE;QACpE,gEAAgE;QAChE,8CAA8C;QAC9C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAC/C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CACtD,CAAA;QACD,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;QAE/E,OAAO,YAAY,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAE/C,yCAAyC;QACzC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1E,OAAO,YAAY,CAAC,IAAI,CACtB;gBACE,KAAK,EAAE,kEAAkE;gBACzE,IAAI,EAAE,gBAAgB;aACvB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CACtB;YACE,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,gBAAgB;SACvB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductCard.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductCard.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,yBAAyB;IACzB,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACjD,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,YAAoB,EACpB,UAAU,EACV,WAAsB,EACtB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,IAAI,EACJ,YAAmB,GACpB,EAAE,gBAAgB,2CAoHlB"}
1
+ {"version":3,"file":"ProductCard.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductCard.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,yBAAyB;IACzB,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACjD,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,YAAoB,EACpB,UAAU,EACV,WAAsB,EACtB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,IAAI,EACJ,YAAmB,GACpB,EAAE,gBAAgB,2CAuHlB"}
@@ -4,6 +4,7 @@ import Image from 'next/image';
4
4
  import { LocaleLink as Link } from '../../core/i18n/LocaleLink';
5
5
  import { ImageIcon } from 'lucide-react';
6
6
  import { cn, formatPrice } from '../../core/utils';
7
+ import { useT, useIntlLocale } from '../../core/i18n';
7
8
  import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
8
9
  // =============================================================================
9
10
  // Component
@@ -33,9 +34,12 @@ import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
33
34
  */
34
35
  export function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAspect = 'square', className, currency, locale, quickAddContent, href, showDiscount = true, }) {
35
36
  // Get currency from context if not provided via props
37
+ const t = useT();
38
+ const intlLocale = useIntlLocale();
36
39
  const storeSettings = useStoreSettingsOptional();
37
40
  const resolvedCurrency = currency ?? storeSettings?.currency ?? 'USD';
38
- const resolvedLocale = locale ?? storeSettings?.locale ?? 'en-US';
41
+ // Active i18n locale drives number shapes; explicit prop still wins.
42
+ const resolvedLocale = locale ?? intlLocale;
39
43
  const aspectClasses = {
40
44
  square: 'aspect-square',
41
45
  portrait: 'aspect-[3/4]',
@@ -67,6 +71,6 @@ export function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAs
67
71
  // already has bg-muted, so letterbox reads as intentional. Hover
68
72
  // scale-105 still works identically. Tradeoff vs grid uniformity
69
73
  // accepted — merchant intent over visual lockstep.
70
- _jsx(Image, { src: mainImage, alt: product.name, fill: true, sizes: "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw", className: "object-contain transition-transform duration-300 group-hover:scale-105" })) : (_jsx("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: _jsx(ImageIcon, { className: "h-12 w-12", strokeWidth: 1 }) })), 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: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > price && (_jsx("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }))] }), product.hasVariants && (_jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Multiple options available" }))] })] }));
74
+ _jsx(Image, { src: mainImage, alt: product.name, fill: true, sizes: "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw", className: "object-contain transition-transform duration-300 group-hover:scale-105" })) : (_jsx("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: _jsx(ImageIcon, { className: "h-12 w-12", strokeWidth: 1 }) })), 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 || t('product.quickAdd') }) }))] }) }), _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: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > price && (_jsx("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }))] }), product.hasVariants && (_jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: t('product.multipleOptions') }))] })] }));
71
75
  }
72
76
  //# 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 +1 @@
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;AAIzD,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,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAmB,EACnB,WAAgB,EAChB,SAAiB,EACjB,aAAa,EACb,eAAwB,EACxB,QAAQ,GACT,EAAE,mBAAmB,2CA4QrB"}
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;AAKzD,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,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAmB,EACnB,WAAgB,EAChB,SAAiB,EACjB,aAAa,EACb,eAAwB,EACxB,QAAQ,GACT,EAAE,mBAAmB,2CA+QrB"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
4
  * @rovela/sdk/products/components/ProductDetails
5
5
  *
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
8
8
  import { useState, useMemo } from 'react';
9
9
  import { Minus, Plus } from 'lucide-react';
10
10
  import { cn, formatPrice } from '../../core/utils';
11
+ import { useT, useIntlLocale } from '../../core/i18n';
11
12
  import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
12
13
  import { VariantSelector } from './VariantSelector';
13
14
  import { ProductGallery } from './ProductGallery';
@@ -38,9 +39,12 @@ export function ProductDetails({ product, variants = [], className, currency, lo
38
39
  const [selectedVariant, setSelectedVariant] = useState(null);
39
40
  const [quantity, setQuantity] = useState(1);
40
41
  // Get currency from context if not provided via props
42
+ const t = useT();
43
+ const intlLocale = useIntlLocale();
41
44
  const storeSettings = useStoreSettingsOptional();
42
45
  const resolvedCurrency = currency ?? storeSettings?.currency ?? 'USD';
43
- const resolvedLocale = locale ?? storeSettings?.locale ?? 'en-US';
46
+ // Active i18n locale drives number shapes; explicit prop still wins.
47
+ const resolvedLocale = locale ?? intlLocale;
44
48
  // Calculate current price
45
49
  const currentPrice = useMemo(() => {
46
50
  if (selectedVariant?.price) {
@@ -119,7 +123,7 @@ export function ProductDetails({ product, variants = [], className, currency, lo
119
123
  const containerClasses = cn('grid gap-8', galleryPosition === 'left'
120
124
  ? 'lg:grid-cols-2'
121
125
  : 'grid-cols-1', className);
122
- return (_jsxs("div", { className: containerClasses, children: [_jsx("div", { className: galleryPosition === 'top' ? 'order-first' : '', children: _jsx(ProductGallery, { media: galleryMedia, alt: product.name }, galleryKey) }), _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: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > currentPrice && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-lg text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }), 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 whitespace-pre-line 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(Minus, { className: "h-4 w-4" }) }), _jsx("input", { type: "number", value: quantity, onChange: (e) => {
126
+ return (_jsxs("div", { className: containerClasses, children: [_jsx("div", { className: galleryPosition === 'top' ? 'order-first' : '', children: _jsx(ProductGallery, { media: galleryMedia, alt: product.name }, galleryKey) }), _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: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > currentPrice && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-lg text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }), discountPercent && (_jsx("span", { className: "rounded-full bg-destructive px-2 py-0.5 text-sm font-medium text-destructive-foreground", children: t('product.savePercent', { percent: String(discountPercent) }) }))] }))] }), showStock && currentStock >= 0 && (_jsx("div", { className: "mt-3", children: isOutOfStock ? (_jsx("span", { className: "text-sm font-medium text-destructive", children: t('product.outOfStock') })) : isLowStock ? (_jsx("span", { className: "text-sm font-medium text-warning", children: t('product.onlyLeftInStock', { count: String(currentStock) }) })) : (_jsx("span", { className: "text-sm text-muted-foreground", children: t('product.inStockAvailable', { count: String(currentStock) }) })) })), _jsxs("div", { className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: t('product.description') }), _jsx("p", { className: "text-base whitespace-pre-line 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: t('cart.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(Minus, { className: "h-4 w-4" }) }), _jsx("input", { type: "number", value: quantity, onChange: (e) => {
123
127
  const val = e.target.value;
124
128
  if (val === '')
125
129
  return; // Allow empty during typing
@@ -127,11 +131,11 @@ export function ProductDetails({ product, variants = [], className, currency, lo
127
131
  }, 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(Plus, { className: "h-4 w-4" }) })] })] })), _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
128
132
  ? 'bg-primary text-primary-foreground hover:bg-primary/90'
129
133
  : 'cursor-not-allowed bg-muted text-muted-foreground'), children: isOutOfStock
130
- ? 'Out of Stock'
134
+ ? t('product.outOfStock')
131
135
  : !canAddToCart
132
- ? 'Select Options'
133
- : 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
136
+ ? t('product.selectOptions')
137
+ : addToCartContent || t('cart.addToCart') }), 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
134
138
  ? 'border-primary text-primary hover:bg-primary hover:text-primary-foreground'
135
- : '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" }))] })] }));
139
+ : 'cursor-not-allowed border-muted text-muted-foreground'), children: buyNowContent || t('product.buyNow') }))] }), requiresVariant && !selectedVariant && (_jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: t('product.selectOptionsHint') }))] })] }));
136
140
  }
137
141
  //# 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 +1 @@
1
- {"version":3,"file":"ProductGallery.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,kDAAkD;IAClD,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,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,SAAS,EACT,iBAA4B,EAC5B,WAAsB,EACtB,UAAkB,EAClB,UAAiB,GAClB,EAAE,mBAAmB,2CA8OrB"}
1
+ {"version":3,"file":"ProductGallery.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,kDAAkD;IAClD,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,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,SAAS,EACT,iBAA4B,EAC5B,WAAsB,EACtB,UAAkB,EAClB,UAAiB,GAClB,EAAE,mBAAmB,2CA+OrB"}
@@ -11,6 +11,7 @@ import { useState, useCallback, useMemo } from 'react';
11
11
  import Image from 'next/image';
12
12
  import { ImageIcon, ChevronLeft, ChevronRight, X, Play } from 'lucide-react';
13
13
  import { cn } from '../../core/utils';
14
+ import { useT } from '../../core/i18n';
14
15
  import { isVideoUrl } from '../../media';
15
16
  // =============================================================================
16
17
  // Component
@@ -28,6 +29,7 @@ import { isVideoUrl } from '../../media';
28
29
  * ```
29
30
  */
30
31
  export function ProductGallery({ media, alt, className, thumbnailPosition = 'bottom', aspectRatio = 'square', enableZoom = false, showArrows = true, }) {
32
+ const t = useT();
31
33
  const items = useMemo(() => media ?? [], [media]);
32
34
  const [activeIndex, setActiveIndex] = useState(0);
33
35
  const [isZoomed, setIsZoomed] = useState(false);
@@ -75,17 +77,17 @@ export function ProductGallery({ media, alt, className, thumbnailPosition = 'bot
75
77
  // reads as intentional. Hover/click zoom (scale transforms) still
76
78
  // works the same with contain. Same policy on admin
77
79
  // ImageGalleryUpload + ProductCard.
78
- _jsx(Image, { src: activeUrl, alt: `${alt} - Image ${activeIndex + 1}`, fill: true, sizes: "(max-width: 768px) 100vw, 50vw", className: cn('object-contain transition-transform duration-300', isZoomed && 'scale-150 cursor-zoom-out'), priority: activeIndex === 0 })) }), showArrows && items.length > 1 && (_jsxs(_Fragment, { children: [_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 media", children: _jsx(ChevronLeft, { className: "h-5 w-5" }) }), _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 media", children: _jsx(ChevronRight, { className: "h-5 w-5" }) })] })), items.length > 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, " / ", items.length] }))] }), items.length > 1 && (_jsx("div", { className: thumbnailContainerClasses, children: items.map((url, index) => {
80
+ _jsx(Image, { src: activeUrl, alt: `${alt} - Image ${activeIndex + 1}`, fill: true, sizes: "(max-width: 768px) 100vw, 50vw", className: cn('object-contain transition-transform duration-300', isZoomed && 'scale-150 cursor-zoom-out'), priority: activeIndex === 0 })) }), showArrows && items.length > 1 && (_jsxs(_Fragment, { children: [_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": t('product.previousMedia'), children: _jsx(ChevronLeft, { className: "h-5 w-5" }) }), _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": t('product.nextMedia'), children: _jsx(ChevronRight, { className: "h-5 w-5" }) })] })), items.length > 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, " / ", items.length] }))] }), items.length > 1 && (_jsx("div", { className: thumbnailContainerClasses, children: items.map((url, index) => {
79
81
  const tileIsVideo = isVideoUrl(url);
80
82
  return (_jsx("button", { type: "button", onClick: () => handleThumbnailClick(index), className: cn('relative aspect-square overflow-hidden rounded-md transition-all bg-muted/30', thumbnailPosition === 'left' ? 'w-full' : 'w-16 sm:w-20', activeIndex === index
81
83
  ? 'ring-2 ring-primary ring-offset-2'
82
84
  : 'opacity-70 hover:opacity-100'), "aria-label": tileIsVideo
83
- ? `View video ${index + 1}`
84
- : `View image ${index + 1}`, "aria-current": activeIndex === index ? 'true' : 'false', children: tileIsVideo ? (_jsxs(_Fragment, { children: [_jsx("video", { src: url, preload: "metadata", muted: true, playsInline: true, className: "absolute inset-0 h-full w-full object-cover" }), _jsx("span", { className: "pointer-events-none absolute inset-0 flex items-center justify-center bg-black/20", "aria-hidden": "true", children: _jsx(Play, { className: "h-5 w-5 fill-white text-white drop-shadow" }) })] })) : (
85
+ ? t('product.viewVideoN', { n: index + 1 })
86
+ : t('product.viewImageN', { n: index + 1 }), "aria-current": activeIndex === index ? 'true' : 'false', children: tileIsVideo ? (_jsxs(_Fragment, { children: [_jsx("video", { src: url, preload: "metadata", muted: true, playsInline: true, className: "absolute inset-0 h-full w-full object-cover" }), _jsx("span", { className: "pointer-events-none absolute inset-0 flex items-center justify-center bg-black/20", "aria-hidden": "true", children: _jsx(Play, { className: "h-5 w-5 fill-white text-white drop-shadow" }) })] })) : (
85
87
  // Match the main image policy — object-contain so the
86
88
  // thumbnail truthfully represents what the customer will
87
89
  // see when they click it (including aspect-ratio shape).
88
90
  _jsx(Image, { src: url, alt: `${alt} thumbnail ${index + 1}`, fill: true, sizes: "80px", className: "object-contain" })) }, url));
89
- }) })), isZoomed && enableZoom && !activeIsVideo && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80", onClick: () => setIsZoomed(false), children: [_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: _jsx(X, { className: "h-6 w-6" }) }), _jsx("div", { className: "relative h-[90vh] w-[90vw]", children: _jsx(Image, { src: activeUrl, alt: `${alt} - Zoomed`, fill: true, sizes: "90vw", className: "object-contain" }) })] }))] }));
91
+ }) })), isZoomed && enableZoom && !activeIsVideo && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80", onClick: () => setIsZoomed(false), children: [_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": t('product.closeZoom'), children: _jsx(X, { className: "h-6 w-6" }) }), _jsx("div", { className: "relative h-[90vh] w-[90vw]", children: _jsx(Image, { src: activeUrl, alt: `${alt} - Zoomed`, fill: true, sizes: "90vw", className: "object-contain" }) })] }))] }));
90
92
  }
91
93
  //# sourceMappingURL=ProductGallery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductGallery.js","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductGallery.js","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductGrid.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGrid.tsx"],"names":[],"mappings":"AAUA,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,2CAqElB"}
1
+ {"version":3,"file":"ProductGrid.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGrid.tsx"],"names":[],"mappings":"AAWA,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,2CAsElB"}
@@ -7,6 +7,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
7
7
  */
8
8
  import { Package } from 'lucide-react';
9
9
  import { cn } from '../../core/utils';
10
+ import { useT } from '../../core/i18n';
10
11
  import { ProductCard } from './ProductCard';
11
12
  // =============================================================================
12
13
  // Component
@@ -36,6 +37,7 @@ import { ProductCard } from './ProductCard';
36
37
  * ```
37
38
  */
38
39
  export function ProductGrid({ products, columns = { sm: 2, md: 3, lg: 4 }, gap = 'md', className, cardProps, emptyState, isLoading = false, skeletonCount = 8, }) {
40
+ const t = useT();
39
41
  const columnClasses = {
40
42
  sm: {
41
43
  1: 'grid-cols-1',
@@ -68,7 +70,7 @@ export function ProductGrid({ products, columns = { sm: 2, md: 3, lg: 4 }, gap =
68
70
  if (emptyState) {
69
71
  return _jsx(_Fragment, { children: emptyState });
70
72
  }
71
- return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx(Package, { className: "mb-4 h-12 w-12 text-muted-foreground", strokeWidth: 1 }), _jsx("h3", { className: "text-lg font-medium text-foreground", children: "No products found" }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: "Try adjusting your filters or search terms." })] }));
73
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx(Package, { className: "mb-4 h-12 w-12 text-muted-foreground", strokeWidth: 1 }), _jsx("h3", { className: "text-lg font-medium text-foreground", children: t('product.noneFound') }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: t('product.noneFoundHint') })] }));
72
74
  }
73
75
  return (_jsx("div", { className: gridClassName, children: products.map((product) => (_jsx(ProductCard, { product: product, ...cardProps }, product.id))) }));
74
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["../../../src/products/components/ProductGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["../../../src/products/components/ProductGrid.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSearch.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductSearch.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAU,EACV,QAAQ,EACR,WAAkC,EAClC,SAAS,EACT,UAAgB,EAChB,SAAgB,EAChB,SAAiB,EACjB,IAAW,EACX,QAAe,GAChB,EAAE,kBAAkB,2CAiHpB"}
1
+ {"version":3,"file":"ProductSearch.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductSearch.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAgB,EAChB,SAAgB,EAChB,SAAiB,EACjB,IAAW,EACX,QAAe,GAChB,EAAE,kBAAkB,2CAmHpB"}
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useState, useCallback, useRef, useEffect } from 'react';
9
9
  import { Search, X } from 'lucide-react';
10
10
  import { cn } from '../../core/utils';
11
+ import { useT } from '../../core/i18n';
11
12
  // =============================================================================
12
13
  // Component
13
14
  // =============================================================================
@@ -32,7 +33,9 @@ import { cn } from '../../core/utils';
32
33
  * }
33
34
  * ```
34
35
  */
35
- export function ProductSearch({ value = '', onSearch, placeholder = 'Search products...', className, debounceMs = 300, showClear = true, autoFocus = false, size = 'md', showIcon = true, }) {
36
+ export function ProductSearch({ value = '', onSearch, placeholder, className, debounceMs = 300, showClear = true, autoFocus = false, size = 'md', showIcon = true, }) {
37
+ const t = useT();
38
+ const resolvedPlaceholder = placeholder ?? t('product.searchPlaceholder');
36
39
  const [localValue, setLocalValue] = useState(value);
37
40
  const debounceRef = useRef(undefined);
38
41
  const inputRef = useRef(null);
@@ -92,6 +95,6 @@ export function ProductSearch({ value = '', onSearch, placeholder = 'Search prod
92
95
  md: 'h-5 w-5',
93
96
  lg: 'h-5 w-5',
94
97
  };
95
- return (_jsxs("form", { onSubmit: handleSubmit, className: cn('relative', className), children: [showIcon && (_jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3", children: _jsx(Search, { className: cn('text-muted-foreground', iconSizeClasses[size]) }) })), _jsx("input", { ref: inputRef, type: "search", value: localValue, onChange: handleChange, placeholder: placeholder, className: cn('w-full rounded-md border border-border bg-background transition-colors', 'focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary', 'placeholder:text-muted-foreground', sizeClasses[size], showIcon ? 'pl-10' : 'pl-4', showClear && localValue ? 'pr-10' : 'pr-4', '[&::-webkit-search-cancel-button]:hidden') }), showClear && localValue && (_jsx("button", { type: "button", onClick: handleClear, className: "absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground", children: _jsx(X, { className: iconSizeClasses[size] }) }))] }));
98
+ return (_jsxs("form", { onSubmit: handleSubmit, className: cn('relative', className), children: [showIcon && (_jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3", children: _jsx(Search, { className: cn('text-muted-foreground', iconSizeClasses[size]) }) })), _jsx("input", { ref: inputRef, type: "search", value: localValue, onChange: handleChange, placeholder: resolvedPlaceholder, className: cn('w-full rounded-md border border-border bg-background transition-colors', 'focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary', 'placeholder:text-muted-foreground', sizeClasses[size], showIcon ? 'pl-10' : 'pl-4', showClear && localValue ? 'pr-10' : 'pr-4', '[&::-webkit-search-cancel-button]:hidden') }), showClear && localValue && (_jsx("button", { type: "button", onClick: handleClear, className: "absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground", children: _jsx(X, { className: iconSizeClasses[size] }) }))] }));
96
99
  }
97
100
  //# sourceMappingURL=ProductSearch.js.map