@salla.sa/twilight-theme-engine 1.0.20 → 1.0.21

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 (117) hide show
  1. package/dist/{AddToCartForm-CIECUCZA.js → AddToCartForm-V65EFF2J.js} +3 -3
  2. package/dist/{AddToCartForm-CIECUCZA.js.map → AddToCartForm-V65EFF2J.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-2E2F2QS2.js → BlogAuthorPage-H7SFROIO.js} +6 -6
  4. package/dist/{BlogAuthorPage-2E2F2QS2.js.map → BlogAuthorPage-H7SFROIO.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-RQUYCRPX.js → BlogCategoryPage-BGQKOVAH.js} +6 -6
  6. package/dist/{BlogCategoryPage-RQUYCRPX.js.map → BlogCategoryPage-BGQKOVAH.js.map} +1 -1
  7. package/dist/{BlogPage-4LAXPYGX.js → BlogPage-KJHT2ELP.js} +5 -5
  8. package/dist/{BlogPage-4LAXPYGX.js.map → BlogPage-KJHT2ELP.js.map} +1 -1
  9. package/dist/{BlogSinglePage-C5236HUA.js → BlogSinglePage-2MO5LRC7.js} +5 -5
  10. package/dist/{BlogSinglePage-C5236HUA.js.map → BlogSinglePage-2MO5LRC7.js.map} +1 -1
  11. package/dist/{BlogTagPage-CM4KSUFE.js → BlogTagPage-4VEHMKEO.js} +6 -6
  12. package/dist/{BlogTagPage-CM4KSUFE.js.map → BlogTagPage-4VEHMKEO.js.map} +1 -1
  13. package/dist/{BrandsPage-NKZMOZSZ.js → BrandsPage-6U5KINLH.js} +5 -5
  14. package/dist/{BrandsPage-NKZMOZSZ.js.map → BrandsPage-6U5KINLH.js.map} +1 -1
  15. package/dist/{Breadcrumb-34XQ6PMD.js → Breadcrumb-MUODPDBG.js} +5 -5
  16. package/dist/{Breadcrumb-34XQ6PMD.js.map → Breadcrumb-MUODPDBG.js.map} +1 -1
  17. package/dist/{CartItem-MQQK5S4C.js → CartItem-Z3FZXCKE.js} +5 -5
  18. package/dist/{CartItem-MQQK5S4C.js.map → CartItem-Z3FZXCKE.js.map} +1 -1
  19. package/dist/{CartSummary-GUS25WHY.js → CartSummary-GZCVRNZL.js} +5 -5
  20. package/dist/{CartSummary-GUS25WHY.js.map → CartSummary-GZCVRNZL.js.map} +1 -1
  21. package/dist/{Copyright-27APDWRX.js → Copyright-CO6FBBIZ.js} +3 -3
  22. package/dist/{Copyright-27APDWRX.js.map → Copyright-CO6FBBIZ.js.map} +1 -1
  23. package/dist/{CustomerLayout-LJOF63SO.js → CustomerLayout-SJ4Q6QKL.js} +5 -5
  24. package/dist/{CustomerLayout-LJOF63SO.js.map → CustomerLayout-SJ4Q6QKL.js.map} +1 -1
  25. package/dist/{Footer-6U5OYVCY.js → Footer-JVJOQZ4Z.js} +5 -5
  26. package/dist/{Footer-6U5OYVCY.js.map → Footer-JVJOQZ4Z.js.map} +1 -1
  27. package/dist/{Header-ZTLAALOG.js → Header-CNNVY3QN.js} +4 -4
  28. package/dist/{Header-ZTLAALOG.js.map → Header-CNNVY3QN.js.map} +1 -1
  29. package/dist/{LoyaltyPage-ZWAL7OZY.js → LoyaltyPage-5JAASU2M.js} +5 -5
  30. package/dist/{LoyaltyPage-ZWAL7OZY.js.map → LoyaltyPage-5JAASU2M.js.map} +1 -1
  31. package/dist/{MainMenu-VMX2F7YG.js → MainMenu-MJ724YI4.js} +3 -3
  32. package/dist/{MainMenu-VMX2F7YG.js.map → MainMenu-MJ724YI4.js.map} +1 -1
  33. package/dist/{MasterLayout-ABJMLUFZ.js → MasterLayout-XAVLZKHR.js} +5 -5
  34. package/dist/{MasterLayout-ABJMLUFZ.js.map → MasterLayout-XAVLZKHR.js.map} +1 -1
  35. package/dist/{MobileMenu-PLHN3ADM.js → MobileMenu-OK2MQJFF.js} +5 -5
  36. package/dist/{MobileMenu-PLHN3ADM.js.map → MobileMenu-OK2MQJFF.js.map} +1 -1
  37. package/dist/{NotificationsPage-QVJV32FO.js → NotificationsPage-3FRFG4TX.js} +5 -5
  38. package/dist/{NotificationsPage-QVJV32FO.js.map → NotificationsPage-3FRFG4TX.js.map} +1 -1
  39. package/dist/{OrderSinglePage-HZQDE3T6.js → OrderSinglePage-Q75A343N.js} +5 -5
  40. package/dist/{OrderSinglePage-HZQDE3T6.js.map → OrderSinglePage-Q75A343N.js.map} +1 -1
  41. package/dist/{OrdersPage-NATGDGVM.js → OrdersPage-OREDRY44.js} +5 -5
  42. package/dist/{OrdersPage-NATGDGVM.js.map → OrdersPage-OREDRY44.js.map} +1 -1
  43. package/dist/{PageSingle-H33LLMHH.js → PageSingle-B4VYKEOW.js} +3 -3
  44. package/dist/{PageSingle-H33LLMHH.js.map → PageSingle-B4VYKEOW.js.map} +1 -1
  45. package/dist/{ProductDetails-UAJQH46Y.js → ProductDetails-SBWIKUY2.js} +3 -3
  46. package/dist/{ProductDetails-UAJQH46Y.js.map → ProductDetails-SBWIKUY2.js.map} +1 -1
  47. package/dist/{ProfilePage-REICPRPO.js → ProfilePage-XQOSI4BT.js} +5 -5
  48. package/dist/{ProfilePage-REICPRPO.js.map → ProfilePage-XQOSI4BT.js.map} +1 -1
  49. package/dist/{SeoCartWidget-2SZCXC6C.js → SeoCartWidget-6BMPQMJ6.js} +5 -5
  50. package/dist/{SeoCartWidget-2SZCXC6C.js.map → SeoCartWidget-6BMPQMJ6.js.map} +1 -1
  51. package/dist/{SettingsPage-SAWJUVUN.js → SettingsPage-SJ672AXG.js} +5 -5
  52. package/dist/{SettingsPage-SAWJUVUN.js.map → SettingsPage-SJ672AXG.js.map} +1 -1
  53. package/dist/{StoreClosedNotification-WFRDR7WA.js → StoreClosedNotification-LY3T2KUX.js} +6 -6
  54. package/dist/{StoreClosedNotification-WFRDR7WA.js.map → StoreClosedNotification-LY3T2KUX.js.map} +1 -1
  55. package/dist/{TestimonialsPage-JPT5IGK2.js → TestimonialsPage-U4RMFKZL.js} +3 -3
  56. package/dist/{TestimonialsPage-JPT5IGK2.js.map → TestimonialsPage-U4RMFKZL.js.map} +1 -1
  57. package/dist/{ThankYouPage-G5MUKOGP.js → ThankYouPage-G5FKAX74.js} +5 -5
  58. package/dist/{ThankYouPage-G5MUKOGP.js.map → ThankYouPage-G5FKAX74.js.map} +1 -1
  59. package/dist/{WalletPage-VQWVBHWW.js → WalletPage-VLDLQGTT.js} +5 -5
  60. package/dist/{WalletPage-VQWVBHWW.js.map → WalletPage-VLDLQGTT.js.map} +1 -1
  61. package/dist/{WishlistPage-5IYTXOYT.js → WishlistPage-G3C3LTNS.js} +5 -5
  62. package/dist/{WishlistPage-5IYTXOYT.js.map → WishlistPage-G3C3LTNS.js.map} +1 -1
  63. package/dist/chunk-2VIPKS2L.js +14 -0
  64. package/dist/{chunk-6HGG4GII.js.map → chunk-2VIPKS2L.js.map} +1 -1
  65. package/dist/{chunk-33G2WUWG.js → chunk-B6SE6VEN.js} +3 -3
  66. package/dist/{chunk-33G2WUWG.js.map → chunk-B6SE6VEN.js.map} +1 -1
  67. package/dist/{chunk-ZVRRUEVF.js → chunk-EXRHA6PI.js} +3 -3
  68. package/dist/{chunk-ZVRRUEVF.js.map → chunk-EXRHA6PI.js.map} +1 -1
  69. package/dist/{chunk-KAEHFQCJ.js → chunk-F7OGO5CK.js} +3 -3
  70. package/dist/{chunk-KAEHFQCJ.js.map → chunk-F7OGO5CK.js.map} +1 -1
  71. package/dist/{chunk-2V5MRDHQ.js → chunk-FM3MWV3M.js} +7 -7
  72. package/dist/{chunk-2V5MRDHQ.js.map → chunk-FM3MWV3M.js.map} +1 -1
  73. package/dist/{chunk-3TTJ75XL.js → chunk-GADCE7SI.js} +4 -4
  74. package/dist/{chunk-3TTJ75XL.js.map → chunk-GADCE7SI.js.map} +1 -1
  75. package/dist/{chunk-UVWTPNGO.js → chunk-RL42ONPS.js} +5 -5
  76. package/dist/{chunk-UVWTPNGO.js.map → chunk-RL42ONPS.js.map} +1 -1
  77. package/dist/{chunk-AVTHVTA5.js → chunk-VRXSS77W.js} +4 -4
  78. package/dist/{chunk-AVTHVTA5.js.map → chunk-VRXSS77W.js.map} +1 -1
  79. package/dist/{chunk-4C4ZVSYC.js → chunk-Y4IIITDZ.js} +4 -4
  80. package/dist/{chunk-4C4ZVSYC.js.map → chunk-Y4IIITDZ.js.map} +1 -1
  81. package/dist/{chunk-4DKOABYV.js → chunk-Y4RBYCX5.js} +6 -6
  82. package/dist/{chunk-4DKOABYV.js.map → chunk-Y4RBYCX5.js.map} +1 -1
  83. package/dist/{chunk-W2LYNXAS.js → chunk-ZODEBSEF.js} +3 -3
  84. package/dist/{chunk-W2LYNXAS.js.map → chunk-ZODEBSEF.js.map} +1 -1
  85. package/dist/components/cart/index.js +1 -1
  86. package/dist/components/common/index.js +1 -1
  87. package/dist/components/drawer/index.js +3 -3
  88. package/dist/components/home/index.js +5 -5
  89. package/dist/components/layout/index.js +5 -5
  90. package/dist/components/product/index.js +4 -4
  91. package/dist/components/store/index.js +5 -5
  92. package/dist/{document-class-SQJXMFBI.js → document-class-DNRBTCPO.js} +3 -3
  93. package/dist/{document-class-SQJXMFBI.js.map → document-class-DNRBTCPO.js.map} +1 -1
  94. package/dist/hooks/index.js +3 -3
  95. package/dist/hooks/useGtm.js +3 -3
  96. package/dist/hooks/useMoney.js +3 -3
  97. package/dist/hooks/useStore.js +3 -3
  98. package/dist/index.js +3 -3
  99. package/dist/{not-found-55WSAE63.js → not-found-F6RKN427.js} +5 -5
  100. package/dist/{not-found-55WSAE63.js.map → not-found-F6RKN427.js.map} +1 -1
  101. package/dist/providers/index.js +3 -3
  102. package/dist/routes/account/orders.js +1 -1
  103. package/dist/routes/account.js +6 -6
  104. package/dist/routes/blog.js +5 -5
  105. package/dist/routes/brands.js +1 -1
  106. package/dist/routes/cart.js +7 -7
  107. package/dist/routes/home.js +6 -6
  108. package/dist/routes/loyalty.js +1 -1
  109. package/dist/routes/page.js +1 -1
  110. package/dist/routes/product-listing.js +5 -5
  111. package/dist/routes/product.js +5 -5
  112. package/dist/routes/testimonials.js +1 -1
  113. package/dist/routes/thank-you.js +1 -1
  114. package/dist/skeleton.js +6 -6
  115. package/dist/tanstack.js +2 -2
  116. package/package.json +2 -2
  117. package/dist/chunk-6HGG4GII.js +0 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/product/ProductDetails.tsx"],"names":["Fragment"],"mappings":"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","file":"ProductDetails-UAJQH46Y.js","sourcesContent":["import { Fragment, useState } from 'react';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { HookName } from '../../types/hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { CurrencySymbol, Link, Image } from '../common';\nimport { SallaRatingStars } from '@salla.sa/twilight-components-react/rating-stars';\nimport { SallaSocialShare } from '@salla.sa/twilight-components-react/social-share';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { SallaInstallment } from '@salla.sa/twilight-components-react/installment';\nimport { SallaMetadata } from '@salla.sa/twilight-components-react/metadata';\nimport { formatSallaPlural } from '../../utils/salla-plural';\nimport type { Product } from '../../types';\n\ninterface ProductDetailsProps {\n product: Product;\n showTags?: boolean;\n}\n\nexport function ProductDetails({ product, showTags = true }: ProductDetailsProps) {\n const { t } = useTranslation();\n\n // Context for all product hooks - contains product data\n const productHookContext = { product };\n\n return (\n <>\n <HookSlot name={HookName.PRODUCT_DESCRIPTION_START} context={productHookContext} />\n\n {product.brand?.name && (\n <div className=\"product-brand mb-5 w-12\">\n <Link className=\"brand-logo\" to={product.brand.url || '#'} title={product.brand.name}>\n <Image\n className=\"max-h-full object-contain\"\n src={product.brand.logo}\n title={product.brand.name}\n alt={product.brand.name}\n aspectRatio=\"1/1\"\n />\n </Link>\n </div>\n )}\n\n <h1 className=\"text-xl md:text-2xl leading-10 font-bold mb-6 text-gray-800\">\n {product.name}\n </h1>\n\n {product.subtitle && (\n <h2 className=\"product-entry__sub-title text-sm text-gray-500 leading-6 mb-2.5\">\n {product.subtitle}\n </h2>\n )}\n\n {product.rating && (\n <SallaRatingStars value={product.rating.stars} reviews={product.rating.count} />\n )}\n\n {product.is_taxable && (\n <small className=\"color-grey\">{t('pages.products.tax_included', 'VAT Inclusive')}</small>\n )}\n\n <ProductPrice product={product} />\n\n <ProductDescription product={product} />\n\n {!!product.tags?.length && showTags && (\n <div className=\"mb-3\">\n {product.tags.map((tag, index) => (\n <Fragment key={tag.name}>\n <Link\n to={tag.url}\n className=\"rtl:ml-2 ltr:mr-2 inline-flex text-gray-500 hover:text-primary underline text-sm mb-1\"\n >\n {tag.name}\n </Link>\n {index < product.tags!.length - 1 && ','}\n </Fragment>\n ))}\n </div>\n )}\n\n <div className=\"flex rtl:space-x-reverse space-x-3\">\n <SallaSocialShare className=\"inline-flex mb-5\" aria-label=\"social share\" />\n\n <SallaButton\n className=\"btn--wishlist animated hidden sm:inline-flex\"\n data-id={product.id}\n onClick={() => window.salla?.wishlist.toggle(product.id)}\n shape=\"icon\"\n fill=\"outline\"\n color=\"light\"\n ariaLabel=\"add to wishlist\"\n >\n <i className=\"sicon-heart\"></i>\n </SallaButton>\n </div>\n\n <ProductQuantityInfo product={product} />\n\n {product.sku && (\n <div className=\"mb-4 flex justify-between sm:grid sm:grid-cols-3 bg-white rounded-md px-4 py-2\">\n <div className=\"flex items-center\">\n <i className=\"sicon-barcode mx-1\"></i>\n {t('pages.products.sku', 'SKU')}\n </div>\n <div className=\"text-unicode\">{product.sku}</div>\n </div>\n )}\n\n {product.show_availability && (\n <section className=\"bg-white p-5 rounded-md mb-5 last:mb-0\">\n <div className=\"center-between\">\n <label className=\"flex items-center text-base\">\n <span className=\"sicon-location rtl:ml-1 ltr:mr-1\"></span>\n <span className=\"inline-block\">\n {t('pages.products.availability', 'Availability')}\n </span>\n </label>\n <div className=\"mt-1 sm:mt-0 sm:col-span-2 text-end\">\n <div className=\"flex rtl:space-x-reverse space-x-3\">\n <a\n href=\"#!\"\n onClick={() =>\n window.salla?.event?.dispatch('scopes::open', {\n mode: 'availability',\n product_id: String(product.id),\n })\n }\n className=\"group text-primary flex items-center justify-center\"\n >\n <span>{t('pages.products.select_branch', 'Select Branch')}</span>\n <span className=\"sicon-keyboard_arrow_left mr-2 transition-all group-hover:-translate-x-1\"></span>\n </a>\n </div>\n </div>\n </div>\n </section>\n )}\n\n <HookSlot name={HookName.PRODUCT_DESCRIPTION} context={productHookContext} />\n\n <SallaInstallment\n price={String(\n typeof product.base_currency_price === 'object'\n ? product.base_currency_price.amount\n : product.base_currency_price\n )}\n />\n\n {product.has_metadata && <SallaMetadata />}\n\n <HookSlot name={HookName.PRODUCT_DESCRIPTION_END} context={productHookContext} />\n </>\n );\n}\n\nfunction ProductPrice({ product }: { product: Product }) {\n const { t } = useTranslation();\n\n return (\n <div className=\"flex whitespace-nowrap gap-4 items-center\">\n <div\n className={`${product.is_on_sale ? '' : 'hidden'} space-x-2 rtl:space-x-reverse whitespace-nowrap`}\n >\n <p className=\"text-red-800 font-bold text-xl inline-block\">\n {product.sale_price} <CurrencySymbol currency={product.currency} />\n </p>\n <span className=\"text-gray-500 line-through\">\n {product.regular_price} <CurrencySymbol currency={product.currency} />\n </span>\n </div>\n <div className={`gap-4 ${product.is_on_sale ? 'hidden' : 'flex'}`}>\n {product.starting_price && (\n <span>{t('pages.products.starting_price', 'Starting from')}</span>\n )}\n <p className=\"font-bold text-xl inline-block\">\n {product.starting_price ?? product.price} <CurrencySymbol currency={product.currency} />\n </p>\n </div>\n </div>\n );\n}\n\nfunction ProductDescription({ product }: { product: Product }) {\n const { t } = useTranslation();\n const [isExpanded, setIsExpanded] = useState(false);\n\n if (!product.description) return null;\n\n const description = product.description.replace(/&nbsp;/g, '\\n');\n\n if (product.has_read_more) {\n return (\n <div className=\"product__description p-2 px-5 sm:p-1 leading-7 mb-3\">\n <article\n className=\"article article--main relative leading-8 overflow-hidden transition-all duration-300 py-4\"\n id=\"more-content\"\n style={{ maxHeight: isExpanded ? 'none' : '5.25rem' }}\n dangerouslySetInnerHTML={{ __html: description }}\n />\n <button\n type=\"button\"\n id=\"btn-show-more\"\n className={`link--primary inline-block mt-2 cursor-pointer bg-transparent border-0 p-0 ${isExpanded ? 'is-expanded' : ''}`}\n onClick={() => setIsExpanded(true)}\n >\n {t('pages.products.read_more', 'Read more')}\n </button>\n </div>\n );\n }\n\n return (\n <div className=\"product__description p-2 px-5 sm:p-1 leading-7 mb-3\">\n <article className=\"article--main pb-1\" dangerouslySetInnerHTML={{ __html: description }} />\n </div>\n );\n}\n\nfunction ProductQuantityInfo({ product }: { product: Product }) {\n const { t } = useTranslation();\n if (product.sold_quantity == null && !product.can_show_remained_quantity) {\n return null;\n }\n\n return (\n <div className=\"bg-white py-2.5 mb-5 rounded-md inline-flex text-sm\">\n {(product.sold_quantity ?? 0) > 0 && (\n <div className=\"px-4 !text-red-800\">\n <i className=\"sicon-fire rtl:ml-1.5 ltr:mr-1.5\"></i> {t('pages.products.sold', 'Sold')}{' '}\n {/* Salla ships `sold_times` in Laravel plural format; resolve it for the count. */}\n <span>{formatSallaPlural(t('pages.products.sold_times'), product.sold_quantity!)}</span>\n </div>\n )}\n {product.can_show_remained_quantity && (\n <div className=\"px-4 rtl:even:border-r ltr:even:border-l even:border-gray-200\">\n <i className=\"!text-red-800 sicon-box-bankers rtl:ml-1.5 ltr:mr-1.5\"></i>\n {t('pages.products.remained', 'Remained')}: {product.quantity}\n </div>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/product/ProductDetails.tsx"],"names":["Fragment"],"mappings":"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","file":"ProductDetails-SBWIKUY2.js","sourcesContent":["import { Fragment, useState } from 'react';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { HookName } from '../../types/hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { CurrencySymbol, Link, Image } from '../common';\nimport { SallaRatingStars } from '@salla.sa/twilight-components-react/rating-stars';\nimport { SallaSocialShare } from '@salla.sa/twilight-components-react/social-share';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { SallaInstallment } from '@salla.sa/twilight-components-react/installment';\nimport { SallaMetadata } from '@salla.sa/twilight-components-react/metadata';\nimport { formatSallaPlural } from '../../utils/salla-plural';\nimport type { Product } from '../../types';\n\ninterface ProductDetailsProps {\n product: Product;\n showTags?: boolean;\n}\n\nexport function ProductDetails({ product, showTags = true }: ProductDetailsProps) {\n const { t } = useTranslation();\n\n // Context for all product hooks - contains product data\n const productHookContext = { product };\n\n return (\n <>\n <HookSlot name={HookName.PRODUCT_DESCRIPTION_START} context={productHookContext} />\n\n {product.brand?.name && (\n <div className=\"product-brand mb-5 w-12\">\n <Link className=\"brand-logo\" to={product.brand.url || '#'} title={product.brand.name}>\n <Image\n className=\"max-h-full object-contain\"\n src={product.brand.logo}\n title={product.brand.name}\n alt={product.brand.name}\n aspectRatio=\"1/1\"\n />\n </Link>\n </div>\n )}\n\n <h1 className=\"text-xl md:text-2xl leading-10 font-bold mb-6 text-gray-800\">\n {product.name}\n </h1>\n\n {product.subtitle && (\n <h2 className=\"product-entry__sub-title text-sm text-gray-500 leading-6 mb-2.5\">\n {product.subtitle}\n </h2>\n )}\n\n {product.rating && (\n <SallaRatingStars value={product.rating.stars} reviews={product.rating.count} />\n )}\n\n {product.is_taxable && (\n <small className=\"color-grey\">{t('pages.products.tax_included', 'VAT Inclusive')}</small>\n )}\n\n <ProductPrice product={product} />\n\n <ProductDescription product={product} />\n\n {!!product.tags?.length && showTags && (\n <div className=\"mb-3\">\n {product.tags.map((tag, index) => (\n <Fragment key={tag.name}>\n <Link\n to={tag.url}\n className=\"rtl:ml-2 ltr:mr-2 inline-flex text-gray-500 hover:text-primary underline text-sm mb-1\"\n >\n {tag.name}\n </Link>\n {index < product.tags!.length - 1 && ','}\n </Fragment>\n ))}\n </div>\n )}\n\n <div className=\"flex rtl:space-x-reverse space-x-3\">\n <SallaSocialShare className=\"inline-flex mb-5\" aria-label=\"social share\" />\n\n <SallaButton\n className=\"btn--wishlist animated hidden sm:inline-flex\"\n data-id={product.id}\n onClick={() => window.salla?.wishlist.toggle(product.id)}\n shape=\"icon\"\n fill=\"outline\"\n color=\"light\"\n ariaLabel=\"add to wishlist\"\n >\n <i className=\"sicon-heart\"></i>\n </SallaButton>\n </div>\n\n <ProductQuantityInfo product={product} />\n\n {product.sku && (\n <div className=\"mb-4 flex justify-between sm:grid sm:grid-cols-3 bg-white rounded-md px-4 py-2\">\n <div className=\"flex items-center\">\n <i className=\"sicon-barcode mx-1\"></i>\n {t('pages.products.sku', 'SKU')}\n </div>\n <div className=\"text-unicode\">{product.sku}</div>\n </div>\n )}\n\n {product.show_availability && (\n <section className=\"bg-white p-5 rounded-md mb-5 last:mb-0\">\n <div className=\"center-between\">\n <label className=\"flex items-center text-base\">\n <span className=\"sicon-location rtl:ml-1 ltr:mr-1\"></span>\n <span className=\"inline-block\">\n {t('pages.products.availability', 'Availability')}\n </span>\n </label>\n <div className=\"mt-1 sm:mt-0 sm:col-span-2 text-end\">\n <div className=\"flex rtl:space-x-reverse space-x-3\">\n <a\n href=\"#!\"\n onClick={() =>\n window.salla?.event?.dispatch('scopes::open', {\n mode: 'availability',\n product_id: String(product.id),\n })\n }\n className=\"group text-primary flex items-center justify-center\"\n >\n <span>{t('pages.products.select_branch', 'Select Branch')}</span>\n <span className=\"sicon-keyboard_arrow_left mr-2 transition-all group-hover:-translate-x-1\"></span>\n </a>\n </div>\n </div>\n </div>\n </section>\n )}\n\n <HookSlot name={HookName.PRODUCT_DESCRIPTION} context={productHookContext} />\n\n <SallaInstallment\n price={String(\n typeof product.base_currency_price === 'object'\n ? product.base_currency_price.amount\n : product.base_currency_price\n )}\n />\n\n {product.has_metadata && <SallaMetadata />}\n\n <HookSlot name={HookName.PRODUCT_DESCRIPTION_END} context={productHookContext} />\n </>\n );\n}\n\nfunction ProductPrice({ product }: { product: Product }) {\n const { t } = useTranslation();\n\n return (\n <div className=\"flex whitespace-nowrap gap-4 items-center\">\n <div\n className={`${product.is_on_sale ? '' : 'hidden'} space-x-2 rtl:space-x-reverse whitespace-nowrap`}\n >\n <p className=\"text-red-800 font-bold text-xl inline-block\">\n {product.sale_price} <CurrencySymbol currency={product.currency} />\n </p>\n <span className=\"text-gray-500 line-through\">\n {product.regular_price} <CurrencySymbol currency={product.currency} />\n </span>\n </div>\n <div className={`gap-4 ${product.is_on_sale ? 'hidden' : 'flex'}`}>\n {product.starting_price && (\n <span>{t('pages.products.starting_price', 'Starting from')}</span>\n )}\n <p className=\"font-bold text-xl inline-block\">\n {product.starting_price ?? product.price} <CurrencySymbol currency={product.currency} />\n </p>\n </div>\n </div>\n );\n}\n\nfunction ProductDescription({ product }: { product: Product }) {\n const { t } = useTranslation();\n const [isExpanded, setIsExpanded] = useState(false);\n\n if (!product.description) return null;\n\n const description = product.description.replace(/&nbsp;/g, '\\n');\n\n if (product.has_read_more) {\n return (\n <div className=\"product__description p-2 px-5 sm:p-1 leading-7 mb-3\">\n <article\n className=\"article article--main relative leading-8 overflow-hidden transition-all duration-300 py-4\"\n id=\"more-content\"\n style={{ maxHeight: isExpanded ? 'none' : '5.25rem' }}\n dangerouslySetInnerHTML={{ __html: description }}\n />\n <button\n type=\"button\"\n id=\"btn-show-more\"\n className={`link--primary inline-block mt-2 cursor-pointer bg-transparent border-0 p-0 ${isExpanded ? 'is-expanded' : ''}`}\n onClick={() => setIsExpanded(true)}\n >\n {t('pages.products.read_more', 'Read more')}\n </button>\n </div>\n );\n }\n\n return (\n <div className=\"product__description p-2 px-5 sm:p-1 leading-7 mb-3\">\n <article className=\"article--main pb-1\" dangerouslySetInnerHTML={{ __html: description }} />\n </div>\n );\n}\n\nfunction ProductQuantityInfo({ product }: { product: Product }) {\n const { t } = useTranslation();\n if (product.sold_quantity == null && !product.can_show_remained_quantity) {\n return null;\n }\n\n return (\n <div className=\"bg-white py-2.5 mb-5 rounded-md inline-flex text-sm\">\n {(product.sold_quantity ?? 0) > 0 && (\n <div className=\"px-4 !text-red-800\">\n <i className=\"sicon-fire rtl:ml-1.5 ltr:mr-1.5\"></i> {t('pages.products.sold', 'Sold')}{' '}\n {/* Salla ships `sold_times` in Laravel plural format; resolve it for the count. */}\n <span>{formatSallaPlural(t('pages.products.sold_times'), product.sold_quantity!)}</span>\n </div>\n )}\n {product.can_show_remained_quantity && (\n <div className=\"px-4 rtl:even:border-r ltr:even:border-l even:border-gray-200\">\n <i className=\"!text-red-800 sicon-box-bankers rtl:ml-1.5 ltr:mr-1.5\"></i>\n {t('pages.products.remained', 'Remained')}: {product.quantity}\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './chunk-2V5MRDHQ.js';
2
- import './chunk-UVWTPNGO.js';
1
+ import './chunk-FM3MWV3M.js';
2
+ import './chunk-RL42ONPS.js';
3
3
  import './chunk-JKIRRMBU.js';
4
4
  import './chunk-2JV6WZ6O.js';
5
5
  import './chunk-VVZNW5CB.js';
@@ -26,7 +26,7 @@ import './chunk-YMVLYYLU.js';
26
26
  import './chunk-RJPPO3ET.js';
27
27
  import { HookSlot } from './chunk-Q7VWURUR.js';
28
28
  import './chunk-GU2KUQVD.js';
29
- import './chunk-W2LYNXAS.js';
29
+ import './chunk-ZODEBSEF.js';
30
30
  import './chunk-AXW67SY7.js';
31
31
  import './chunk-BYMOPN2S.js';
32
32
  import './chunk-6BZ5TKEV.js';
@@ -61,5 +61,5 @@ function ProfilePage(_props) {
61
61
  }
62
62
 
63
63
  export { ProfilePage };
64
- //# sourceMappingURL=ProfilePage-REICPRPO.js.map
65
- //# sourceMappingURL=ProfilePage-REICPRPO.js.map
64
+ //# sourceMappingURL=ProfilePage-XQOSI4BT.js.map
65
+ //# sourceMappingURL=ProfilePage-XQOSI4BT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/account/profile/ProfilePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,YAAY,MAAA,EAA0B;AACpD,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,OAAA,EAAQ;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,wBAAA,EAAyB,CAAA;AAAA,oBAExC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,6BAAA,EAA8B,CAAA;AAAA,wBAE5C,gBAAA,EAAA,EAAiB,CAAA;AAAA,oBAElB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,2BAAA,EAA4B,CAAA;AAAA,wBAE1C,WAAA,EAAA,EAAY,CAAA;AAAA,oBAEb,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAI,MAAM,WAAA,EAAa,qBAAA,GAAwB,EAAE,YAAA,EAAc,IAAA,KAAS,EAAC;AAAA,QAC1E,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,sBAAA,EAAuB;AAAA,GAAA,EACxC,CAAA;AAEJ","file":"ProfilePage-REICPRPO.js","sourcesContent":["import { SallaUserProfile } from '@salla.sa/twilight-components-react/user-profile';\nimport { SallaVerify } from '@salla.sa/twilight-components-react/verify';\nimport { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot, useUser } from '../../../hooks';\nimport type { ProfilePageProps } from './types';\n\nexport function ProfilePage(_props: ProfilePageProps) {\n const { data: user } = useUser();\n\n return (\n <>\n <HookSlot name=\"customer:profile.start\" />\n\n <HookSlot name=\"customer:profile.form.start\" />\n\n <SallaUserProfile />\n\n <HookSlot name=\"customer:profile.form.end\" />\n\n <SallaVerify />\n\n <SallaUserSettings\n {...(user?.preferences?.notifications_enabled ? { isNotifiable: true } : {})}\n className=\"mt-10 block\"\n />\n\n <HookSlot name=\"customer:profile.end\" />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/account/profile/ProfilePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,YAAY,MAAA,EAA0B;AACpD,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,OAAA,EAAQ;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,wBAAA,EAAyB,CAAA;AAAA,oBAExC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,6BAAA,EAA8B,CAAA;AAAA,wBAE5C,gBAAA,EAAA,EAAiB,CAAA;AAAA,oBAElB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,2BAAA,EAA4B,CAAA;AAAA,wBAE1C,WAAA,EAAA,EAAY,CAAA;AAAA,oBAEb,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAI,MAAM,WAAA,EAAa,qBAAA,GAAwB,EAAE,YAAA,EAAc,IAAA,KAAS,EAAC;AAAA,QAC1E,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,sBAAA,EAAuB;AAAA,GAAA,EACxC,CAAA;AAEJ","file":"ProfilePage-XQOSI4BT.js","sourcesContent":["import { SallaUserProfile } from '@salla.sa/twilight-components-react/user-profile';\nimport { SallaVerify } from '@salla.sa/twilight-components-react/verify';\nimport { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot, useUser } from '../../../hooks';\nimport type { ProfilePageProps } from './types';\n\nexport function ProfilePage(_props: ProfilePageProps) {\n const { data: user } = useUser();\n\n return (\n <>\n <HookSlot name=\"customer:profile.start\" />\n\n <HookSlot name=\"customer:profile.form.start\" />\n\n <SallaUserProfile />\n\n <HookSlot name=\"customer:profile.form.end\" />\n\n <SallaVerify />\n\n <SallaUserSettings\n {...(user?.preferences?.notifications_enabled ? { isNotifiable: true } : {})}\n className=\"mt-10 block\"\n />\n\n <HookSlot name=\"customer:profile.end\" />\n </>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './chunk-2V5MRDHQ.js';
2
- import './chunk-UVWTPNGO.js';
1
+ import './chunk-FM3MWV3M.js';
2
+ import './chunk-RL42ONPS.js';
3
3
  import './chunk-JKIRRMBU.js';
4
4
  import './chunk-2JV6WZ6O.js';
5
5
  import './chunk-VVZNW5CB.js';
@@ -26,7 +26,7 @@ import './chunk-YMVLYYLU.js';
26
26
  import './chunk-RJPPO3ET.js';
27
27
  import './chunk-Q7VWURUR.js';
28
28
  import './chunk-GU2KUQVD.js';
29
- import './chunk-W2LYNXAS.js';
29
+ import './chunk-ZODEBSEF.js';
30
30
  import './chunk-AXW67SY7.js';
31
31
  import './chunk-BYMOPN2S.js';
32
32
  import './chunk-6BZ5TKEV.js';
@@ -106,5 +106,5 @@ function SeoCartWidget({ cart, step = 1 }) {
106
106
  }
107
107
 
108
108
  export { SeoCartWidget };
109
- //# sourceMappingURL=SeoCartWidget-2SZCXC6C.js.map
110
- //# sourceMappingURL=SeoCartWidget-2SZCXC6C.js.map
109
+ //# sourceMappingURL=SeoCartWidget-6BMPQMJ6.js.map
110
+ //# sourceMappingURL=SeoCartWidget-6BMPQMJ6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/analytics/gtm.ts","../src/components/cart/SeoCartWidget.tsx"],"names":[],"mappings":"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","file":"SeoCartWidget-2SZCXC6C.js","sourcesContent":["import type { Cart, CartItem } from '../../types';\n\n// ─── Payload Types ───────────────────────────────────────────────────────────\n\nexport interface GtmCheckoutProduct {\n id: number;\n name: string;\n price: number;\n quantity: number;\n}\n\nexport interface GtmCheckoutEvent {\n event: 'checkout';\n ecommerce: {\n checkout: {\n actionField: { step: 1 | 2 | 3 };\n products: GtmCheckoutProduct[];\n cart_total: number;\n currency: string;\n };\n };\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction getPriceAmount(value: CartItem['price']): number {\n if (typeof value === 'number') return value;\n return value.amount;\n}\n\nfunction getTotalAmount(value: Cart['total']): number {\n if (typeof value === 'number') return value;\n return parseFloat(value) || 0;\n}\n\n/**\n * Maps `Cart.items` to the GTM product array format.\n *\n * Only available items are included — mirrors PHP `$cartService->getAvailableItems()`.\n */\nexport function mapCartItemsToProducts(items: CartItem[]): GtmCheckoutProduct[] {\n return items\n .filter((item) => item.is_available)\n .map((item) => ({\n id: item.product_id,\n name: item.product_name,\n price: getPriceAmount(item.price),\n quantity: item.quantity,\n }));\n}\n\n// ─── Main Utility ─────────────────────────────────────────────────────────────\n\n/**\n * Pushes a GTM `checkout` event to `window.dataLayer`.\n *\n * Safe to call in SSR environments — guards against `typeof window`.\n * Initialises `window.dataLayer` if GTM hasn't done so yet.\n *\n * @param step Checkout funnel step (1 = cart, 2 = shipping, 3 = payment)\n * @param cart Current cart data from the Twilight loader\n * @param currencyCode ISO 4217 currency code, e.g. \"SAR\"\n */\nexport function pushCheckoutEvent(step: 1 | 2 | 3, cart: Cart, currencyCode: string): void {\n if (typeof window === 'undefined') return;\n\n window.dataLayer = window.dataLayer ?? [];\n\n const payload: GtmCheckoutEvent = {\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step },\n products: mapCartItemsToProducts(cart.items),\n cart_total: getTotalAmount(cart.total),\n currency: currencyCode,\n },\n },\n };\n\n window.dataLayer.push(payload);\n}\n","import { useEffect } from 'react';\nimport { useTwilight } from '../../providers/TwilightProvider';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { Cart } from '../../types';\nimport { pushCheckoutEvent } from '../../lib/analytics/gtm';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface SeoCartWidgetProps {\n /**\n * Cart data from the TanStack Router loader — no extra fetch needed.\n */\n cart: Cart;\n /**\n * Current checkout funnel step.\n * Defaults to `1` (cart view) — CartPage always passes this default.\n * The widget internally listens to Salla SDK events to promote to 2 / 3.\n */\n step?: 1 | 2 | 3;\n}\n\n// ─── Page title translation keys (mirrors PHP SeoCartWidget::$pageTitle) ─────\n\n/**\n * Matches the PHP backend exactly:\n * ```php\n * protected $pageTitle = [\n * self::STEP_CART => 'common.titles.cart',\n * self::STEP_SHIPPING => 'common.titles.shipping',\n * self::STEP_PAYMENT => 'common.titles.checkout',\n * ];\n * ```\n */\nconst PAGE_TITLE_KEYS: Record<1 | 2 | 3, string> = {\n 1: 'common.titles.cart',\n 2: 'common.titles.shipping',\n 3: 'common.titles.checkout',\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * SeoCartWidget — Null-rendering analytics side-effect component.\n *\n * Responsibilities:\n * 1. Fires a GTM `checkout` event (step 1) on cart page load.\n * 2. Listens to Salla SDK checkout overlay events to fire steps 2 & 3.\n * 3. Updates `document.title` to reflect the cart context.\n *\n * Architecture:\n * - Lives in `theme-engine` so all themes using the engine get GTM tracking.\n * - Mounted directly inside `CartPage`, which already has loader data.\n * - `window.dataLayer` must be initialised by the store's GTM embed snippet;\n * the widget initialises it as a safe-guard but does NOT inject GTM itself.\n * - Must be mounted inside `<TwilightProvider>` (reads `currency` from context).\n *\n * @example\n * // In CartPage:\n * <SeoCartWidget cart={cart} />\n */\nexport function SeoCartWidget({ cart, step = 1 }: SeoCartWidgetProps) {\n const { store, currency } = useTwilight();\n const { t } = useTranslation();\n const currencyCode = currency?.code ?? 'SAR';\n\n // ── Fire GTM checkout event for step 1 (or whichever step is passed) ────────\n useEffect(() => {\n pushCheckoutEvent(step, cart, currencyCode);\n // Re-fire if the cart id, contents, or currency changes\n }, [step, cart, currencyCode]);\n\n // ── Subscribe to Salla SDK checkout step events (steps 2 & 3) ──────────────\n // Fires GTM events when the user advances through the checkout overlay.\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.event?.on) return;\n\n const onShipping = () => pushCheckoutEvent(2, cart, currencyCode);\n const onPayment = () => pushCheckoutEvent(3, cart, currencyCode);\n\n salla.event.on('checkout::step.shipping', onShipping);\n salla.event.on('checkout::step.payment', onPayment);\n\n return () => {\n salla.event?.off?.('checkout::step.shipping', onShipping);\n salla.event?.off?.('checkout::step.payment', onPayment);\n };\n }, [cart, currencyCode]);\n\n // ── Update document title — mirrors PHP SeoCartWidget::$pageTitle ───────────\n // Step 1 → 'common.titles.cart' (e.g. \"Cart\")\n // Step 2 → 'common.titles.shipping' (e.g. \"Shipping\")\n // Step 3 → 'common.titles.checkout' (e.g. \"Checkout\")\n useEffect(() => {\n const storeName = store.name ?? '';\n const stepTitle = t(PAGE_TITLE_KEYS[step], PAGE_TITLE_KEYS[step]);\n document.title = storeName ? `${stepTitle} — ${storeName}` : stepTitle;\n }, [step, store.name, t]);\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/analytics/gtm.ts","../src/components/cart/SeoCartWidget.tsx"],"names":[],"mappings":"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","file":"SeoCartWidget-6BMPQMJ6.js","sourcesContent":["import type { Cart, CartItem } from '../../types';\n\n// ─── Payload Types ───────────────────────────────────────────────────────────\n\nexport interface GtmCheckoutProduct {\n id: number;\n name: string;\n price: number;\n quantity: number;\n}\n\nexport interface GtmCheckoutEvent {\n event: 'checkout';\n ecommerce: {\n checkout: {\n actionField: { step: 1 | 2 | 3 };\n products: GtmCheckoutProduct[];\n cart_total: number;\n currency: string;\n };\n };\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction getPriceAmount(value: CartItem['price']): number {\n if (typeof value === 'number') return value;\n return value.amount;\n}\n\nfunction getTotalAmount(value: Cart['total']): number {\n if (typeof value === 'number') return value;\n return parseFloat(value) || 0;\n}\n\n/**\n * Maps `Cart.items` to the GTM product array format.\n *\n * Only available items are included — mirrors PHP `$cartService->getAvailableItems()`.\n */\nexport function mapCartItemsToProducts(items: CartItem[]): GtmCheckoutProduct[] {\n return items\n .filter((item) => item.is_available)\n .map((item) => ({\n id: item.product_id,\n name: item.product_name,\n price: getPriceAmount(item.price),\n quantity: item.quantity,\n }));\n}\n\n// ─── Main Utility ─────────────────────────────────────────────────────────────\n\n/**\n * Pushes a GTM `checkout` event to `window.dataLayer`.\n *\n * Safe to call in SSR environments — guards against `typeof window`.\n * Initialises `window.dataLayer` if GTM hasn't done so yet.\n *\n * @param step Checkout funnel step (1 = cart, 2 = shipping, 3 = payment)\n * @param cart Current cart data from the Twilight loader\n * @param currencyCode ISO 4217 currency code, e.g. \"SAR\"\n */\nexport function pushCheckoutEvent(step: 1 | 2 | 3, cart: Cart, currencyCode: string): void {\n if (typeof window === 'undefined') return;\n\n window.dataLayer = window.dataLayer ?? [];\n\n const payload: GtmCheckoutEvent = {\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step },\n products: mapCartItemsToProducts(cart.items),\n cart_total: getTotalAmount(cart.total),\n currency: currencyCode,\n },\n },\n };\n\n window.dataLayer.push(payload);\n}\n","import { useEffect } from 'react';\nimport { useTwilight } from '../../providers/TwilightProvider';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { Cart } from '../../types';\nimport { pushCheckoutEvent } from '../../lib/analytics/gtm';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface SeoCartWidgetProps {\n /**\n * Cart data from the TanStack Router loader — no extra fetch needed.\n */\n cart: Cart;\n /**\n * Current checkout funnel step.\n * Defaults to `1` (cart view) — CartPage always passes this default.\n * The widget internally listens to Salla SDK events to promote to 2 / 3.\n */\n step?: 1 | 2 | 3;\n}\n\n// ─── Page title translation keys (mirrors PHP SeoCartWidget::$pageTitle) ─────\n\n/**\n * Matches the PHP backend exactly:\n * ```php\n * protected $pageTitle = [\n * self::STEP_CART => 'common.titles.cart',\n * self::STEP_SHIPPING => 'common.titles.shipping',\n * self::STEP_PAYMENT => 'common.titles.checkout',\n * ];\n * ```\n */\nconst PAGE_TITLE_KEYS: Record<1 | 2 | 3, string> = {\n 1: 'common.titles.cart',\n 2: 'common.titles.shipping',\n 3: 'common.titles.checkout',\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * SeoCartWidget — Null-rendering analytics side-effect component.\n *\n * Responsibilities:\n * 1. Fires a GTM `checkout` event (step 1) on cart page load.\n * 2. Listens to Salla SDK checkout overlay events to fire steps 2 & 3.\n * 3. Updates `document.title` to reflect the cart context.\n *\n * Architecture:\n * - Lives in `theme-engine` so all themes using the engine get GTM tracking.\n * - Mounted directly inside `CartPage`, which already has loader data.\n * - `window.dataLayer` must be initialised by the store's GTM embed snippet;\n * the widget initialises it as a safe-guard but does NOT inject GTM itself.\n * - Must be mounted inside `<TwilightProvider>` (reads `currency` from context).\n *\n * @example\n * // In CartPage:\n * <SeoCartWidget cart={cart} />\n */\nexport function SeoCartWidget({ cart, step = 1 }: SeoCartWidgetProps) {\n const { store, currency } = useTwilight();\n const { t } = useTranslation();\n const currencyCode = currency?.code ?? 'SAR';\n\n // ── Fire GTM checkout event for step 1 (or whichever step is passed) ────────\n useEffect(() => {\n pushCheckoutEvent(step, cart, currencyCode);\n // Re-fire if the cart id, contents, or currency changes\n }, [step, cart, currencyCode]);\n\n // ── Subscribe to Salla SDK checkout step events (steps 2 & 3) ──────────────\n // Fires GTM events when the user advances through the checkout overlay.\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.event?.on) return;\n\n const onShipping = () => pushCheckoutEvent(2, cart, currencyCode);\n const onPayment = () => pushCheckoutEvent(3, cart, currencyCode);\n\n salla.event.on('checkout::step.shipping', onShipping);\n salla.event.on('checkout::step.payment', onPayment);\n\n return () => {\n salla.event?.off?.('checkout::step.shipping', onShipping);\n salla.event?.off?.('checkout::step.payment', onPayment);\n };\n }, [cart, currencyCode]);\n\n // ── Update document title — mirrors PHP SeoCartWidget::$pageTitle ───────────\n // Step 1 → 'common.titles.cart' (e.g. \"Cart\")\n // Step 2 → 'common.titles.shipping' (e.g. \"Shipping\")\n // Step 3 → 'common.titles.checkout' (e.g. \"Checkout\")\n useEffect(() => {\n const storeName = store.name ?? '';\n const stepTitle = t(PAGE_TITLE_KEYS[step], PAGE_TITLE_KEYS[step]);\n document.title = storeName ? `${stepTitle} — ${storeName}` : stepTitle;\n }, [step, store.name, t]);\n\n return null;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './chunk-2V5MRDHQ.js';
2
- import './chunk-UVWTPNGO.js';
1
+ import './chunk-FM3MWV3M.js';
2
+ import './chunk-RL42ONPS.js';
3
3
  import './chunk-JKIRRMBU.js';
4
4
  import './chunk-2JV6WZ6O.js';
5
5
  import './chunk-VVZNW5CB.js';
@@ -26,7 +26,7 @@ import './chunk-YMVLYYLU.js';
26
26
  import './chunk-RJPPO3ET.js';
27
27
  import { HookSlot } from './chunk-Q7VWURUR.js';
28
28
  import './chunk-GU2KUQVD.js';
29
- import './chunk-W2LYNXAS.js';
29
+ import './chunk-ZODEBSEF.js';
30
30
  import './chunk-AXW67SY7.js';
31
31
  import './chunk-BYMOPN2S.js';
32
32
  import './chunk-6BZ5TKEV.js';
@@ -48,5 +48,5 @@ function SettingsPage(_props) {
48
48
  }
49
49
 
50
50
  export { SettingsPage };
51
- //# sourceMappingURL=SettingsPage-SAWJUVUN.js.map
52
- //# sourceMappingURL=SettingsPage-SAWJUVUN.js.map
51
+ //# sourceMappingURL=SettingsPage-SJ672AXG.js.map
52
+ //# sourceMappingURL=SettingsPage-SJ672AXG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/account/settings/SettingsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,aAAa,MAAA,EAA2B;AACtD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,yBAAA,EAA0B,CAAA;AAAA,wBACxC,iBAAA,EAAA,EAAkB,CAAA;AAAA,oBACnB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,uBAAA,EAAwB;AAAA,GAAA,EACzC,CAAA;AAEJ","file":"SettingsPage-SAWJUVUN.js","sourcesContent":["import { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot } from '../../../hooks';\nimport type { SettingsPageProps } from './types';\n\nexport function SettingsPage(_props: SettingsPageProps) {\n return (\n <>\n <HookSlot name=\"customer:settings.start\" />\n <SallaUserSettings />\n <HookSlot name=\"customer:settings.end\" />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/account/settings/SettingsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,aAAa,MAAA,EAA2B;AACtD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,yBAAA,EAA0B,CAAA;AAAA,wBACxC,iBAAA,EAAA,EAAkB,CAAA;AAAA,oBACnB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,uBAAA,EAAwB;AAAA,GAAA,EACzC,CAAA;AAEJ","file":"SettingsPage-SJ672AXG.js","sourcesContent":["import { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot } from '../../../hooks';\nimport type { SettingsPageProps } from './types';\n\nexport function SettingsPage(_props: SettingsPageProps) {\n return (\n <>\n <HookSlot name=\"customer:settings.start\" />\n <SallaUserSettings />\n <HookSlot name=\"customer:settings.end\" />\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
- export { StoreClosedNotification } from './chunk-KAEHFQCJ.js';
2
- import './chunk-2V5MRDHQ.js';
3
- import './chunk-UVWTPNGO.js';
1
+ export { StoreClosedNotification } from './chunk-F7OGO5CK.js';
2
+ import './chunk-FM3MWV3M.js';
3
+ import './chunk-RL42ONPS.js';
4
4
  import './chunk-JKIRRMBU.js';
5
5
  import './chunk-2JV6WZ6O.js';
6
6
  import './chunk-VVZNW5CB.js';
@@ -27,7 +27,7 @@ import './chunk-YMVLYYLU.js';
27
27
  import './chunk-RJPPO3ET.js';
28
28
  import './chunk-Q7VWURUR.js';
29
29
  import './chunk-GU2KUQVD.js';
30
- import './chunk-W2LYNXAS.js';
30
+ import './chunk-ZODEBSEF.js';
31
31
  import './chunk-AXW67SY7.js';
32
32
  import './chunk-BYMOPN2S.js';
33
33
  import './chunk-6BZ5TKEV.js';
@@ -37,5 +37,5 @@ import './chunk-HX3YKS5W.js';
37
37
  import './chunk-OBSAH7K6.js';
38
38
  import './chunk-DF6FBKDN.js';
39
39
  import './chunk-DGUM43GV.js';
40
- //# sourceMappingURL=StoreClosedNotification-WFRDR7WA.js.map
41
- //# sourceMappingURL=StoreClosedNotification-WFRDR7WA.js.map
40
+ //# sourceMappingURL=StoreClosedNotification-LY3T2KUX.js.map
41
+ //# sourceMappingURL=StoreClosedNotification-LY3T2KUX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"StoreClosedNotification-WFRDR7WA.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"StoreClosedNotification-LY3T2KUX.js"}
@@ -1,7 +1,7 @@
1
1
  import { useTranslation } from './chunk-TYNZ5B2B.js';
2
2
  import './chunk-T72DAX7R.js';
3
3
  import { useComments } from './chunk-YMVLYYLU.js';
4
- import { LazyBreadcrumb } from './chunk-W2LYNXAS.js';
4
+ import { LazyBreadcrumb } from './chunk-ZODEBSEF.js';
5
5
  import './chunk-AXW67SY7.js';
6
6
  import './chunk-BYMOPN2S.js';
7
7
  import './chunk-DGUM43GV.js';
@@ -73,5 +73,5 @@ function TestimonialsPage({ page }) {
73
73
  }
74
74
 
75
75
  export { TestimonialsPage };
76
- //# sourceMappingURL=TestimonialsPage-JPT5IGK2.js.map
77
- //# sourceMappingURL=TestimonialsPage-JPT5IGK2.js.map
76
+ //# sourceMappingURL=TestimonialsPage-U4RMFKZL.js.map
77
+ //# sourceMappingURL=TestimonialsPage-U4RMFKZL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/testimonials/TestimonialsPage.tsx"],"names":[],"mappings":"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","file":"TestimonialsPage-JPT5IGK2.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { SallaComments } from '@salla.sa/twilight-components-react/comments';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useComments } from '../../hooks/useComments';\nimport type { TestimonialsPageProps } from './types';\nimport { Breadcrumb } from '../../components/common';\n\nconst buildSortOptions = (t: (key: string, fb: string) => string) => [\n { id: 'latest', label: t('pages.testimonials.sort_by_date_desc', 'Latest') },\n { id: 'oldest', label: t('pages.testimonials.sort_by_date_asc', 'Oldest') },\n {\n id: 'top_rating',\n label: t('pages.testimonials.sort_by_rating_desc', 'Top rated'),\n },\n {\n id: 'bottom_rating',\n label: t('pages.testimonials.sort_by_rating_asc', 'Low rated'),\n },\n];\n\nexport function TestimonialsPage({ page }: TestimonialsPageProps) {\n const { t } = useTranslation();\n const { commentsKey } = useComments();\n\n // Sync sort state with URL\n const [selectedSort, setSelectedSort] = useState(() => {\n const params = new URLSearchParams(window.location.search);\n return params.get('sort') || 'latest';\n });\n\n // Update URL when sort changes\n useEffect(() => {\n const url = new URL(window.location.href);\n url.searchParams.set('sort', selectedSort);\n window.history.replaceState(null, '', url.toString());\n }, [selectedSort]);\n\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n\n <div className=\"flex justify-center\">\n <div className=\"w-full lg:w-10/12 bg-white rounded p-6 lg:p-8 mt-4 lg:mt-12\">\n <div className=\"mb-4 sm:mb-6 flex justify-between items-center\">\n <h1 className=\"font-bold text-2xl\">{page.title}</h1>\n <div className=\"flex items-center\">\n <label\n className=\"hidden sm:block rtl:ml-3 ltr:mr-3 whitespace-nowrap\"\n htmlFor=\"testimonials-filter\"\n >\n {t('pages.categories.sorting', 'Sort by')}\n </label>\n <select\n id=\"testimonials-filter\"\n className=\"form-input pt-0 pb-1 rtl:pl-10 ltr:pr-10 bg-white text-gray-900\"\n value={selectedSort}\n onChange={(e) => setSelectedSort(e.target.value)}\n >\n {buildSortOptions(t).map((opt) => (\n <option key={opt.id} value={opt.id}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n </div>\n\n {/* Key prop forces reload when sort changes or new comment added */}\n <SallaComments\n key={`${selectedSort}-${commentsKey}`}\n testimonials\n // drifted wrapper types require itemId; testimonials mode has none\n itemId={undefined as never}\n sort={selectedSort as any}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/testimonials/TestimonialsPage.tsx"],"names":[],"mappings":"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","file":"TestimonialsPage-U4RMFKZL.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { SallaComments } from '@salla.sa/twilight-components-react/comments';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useComments } from '../../hooks/useComments';\nimport type { TestimonialsPageProps } from './types';\nimport { Breadcrumb } from '../../components/common';\n\nconst buildSortOptions = (t: (key: string, fb: string) => string) => [\n { id: 'latest', label: t('pages.testimonials.sort_by_date_desc', 'Latest') },\n { id: 'oldest', label: t('pages.testimonials.sort_by_date_asc', 'Oldest') },\n {\n id: 'top_rating',\n label: t('pages.testimonials.sort_by_rating_desc', 'Top rated'),\n },\n {\n id: 'bottom_rating',\n label: t('pages.testimonials.sort_by_rating_asc', 'Low rated'),\n },\n];\n\nexport function TestimonialsPage({ page }: TestimonialsPageProps) {\n const { t } = useTranslation();\n const { commentsKey } = useComments();\n\n // Sync sort state with URL\n const [selectedSort, setSelectedSort] = useState(() => {\n const params = new URLSearchParams(window.location.search);\n return params.get('sort') || 'latest';\n });\n\n // Update URL when sort changes\n useEffect(() => {\n const url = new URL(window.location.href);\n url.searchParams.set('sort', selectedSort);\n window.history.replaceState(null, '', url.toString());\n }, [selectedSort]);\n\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n\n <div className=\"flex justify-center\">\n <div className=\"w-full lg:w-10/12 bg-white rounded p-6 lg:p-8 mt-4 lg:mt-12\">\n <div className=\"mb-4 sm:mb-6 flex justify-between items-center\">\n <h1 className=\"font-bold text-2xl\">{page.title}</h1>\n <div className=\"flex items-center\">\n <label\n className=\"hidden sm:block rtl:ml-3 ltr:mr-3 whitespace-nowrap\"\n htmlFor=\"testimonials-filter\"\n >\n {t('pages.categories.sorting', 'Sort by')}\n </label>\n <select\n id=\"testimonials-filter\"\n className=\"form-input pt-0 pb-1 rtl:pl-10 ltr:pr-10 bg-white text-gray-900\"\n value={selectedSort}\n onChange={(e) => setSelectedSort(e.target.value)}\n >\n {buildSortOptions(t).map((opt) => (\n <option key={opt.id} value={opt.id}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n </div>\n\n {/* Key prop forces reload when sort changes or new comment added */}\n <SallaComments\n key={`${selectedSort}-${commentsKey}`}\n testimonials\n // drifted wrapper types require itemId; testimonials mode has none\n itemId={undefined as never}\n sort={selectedSort as any}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './chunk-2V5MRDHQ.js';
2
- import './chunk-UVWTPNGO.js';
1
+ import './chunk-FM3MWV3M.js';
2
+ import './chunk-RL42ONPS.js';
3
3
  import './chunk-JKIRRMBU.js';
4
4
  import './chunk-2JV6WZ6O.js';
5
5
  import './chunk-VVZNW5CB.js';
@@ -26,7 +26,7 @@ import './chunk-YMVLYYLU.js';
26
26
  import './chunk-RJPPO3ET.js';
27
27
  import { HookSlot } from './chunk-Q7VWURUR.js';
28
28
  import './chunk-GU2KUQVD.js';
29
- import './chunk-W2LYNXAS.js';
29
+ import './chunk-ZODEBSEF.js';
30
30
  import { Link } from './chunk-AXW67SY7.js';
31
31
  import './chunk-BYMOPN2S.js';
32
32
  import './chunk-6BZ5TKEV.js';
@@ -242,5 +242,5 @@ function ThankYouPage({
242
242
  }
243
243
 
244
244
  export { ThankYouPage };
245
- //# sourceMappingURL=ThankYouPage-G5MUKOGP.js.map
246
- //# sourceMappingURL=ThankYouPage-G5MUKOGP.js.map
245
+ //# sourceMappingURL=ThankYouPage-G5FKAX74.js.map
246
+ //# sourceMappingURL=ThankYouPage-G5FKAX74.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/thank-you/ThankYouPage.tsx"],"names":[],"mappings":"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","file":"ThankYouPage-G5MUKOGP.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useCopyToClipboard } from '@uidotdev/usehooks';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { Link } from '../../components/common';\nimport { HookSlot } from '../../hooks';\nimport type { ThankYouPageProps } from './types';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport confettiImage from './confetti.svg';\n\nconst EMPTY_MESSAGES: NonNullable<ThankYouPageProps['messages']> = [];\n\nexport function ThankYouPage({\n order,\n thank_you_title,\n messages = EMPTY_MESSAGES,\n}: ThankYouPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const title =\n thank_you_title ?? t('pages.thank_you.hero_title', 'Thank you for shopping with us! 😊');\n const [invoiceSent, setInvoiceSent] = useState(order?.email_sent ?? false);\n const [invoiceMessage, setInvoiceMessage] = useState<string | null>(null);\n const [, copyToClipboard] = useCopyToClipboard();\n\n // Listen for invoice sent event (matches thankyou.js)\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.order?.event?.onInvoiceSent) return;\n\n const handleInvoiceSent = (res: { data?: { message?: string } }) => {\n setInvoiceMessage(\n res.data?.message || t('pages.thank_you.invoice_sent_success', 'Invoice sent successfully')\n );\n setInvoiceSent(true);\n };\n\n salla.order.event.onInvoiceSent(handleInvoiceSent);\n\n return () => {\n salla.event.off('order::invoice.sent', handleInvoiceSent as (...args: unknown[]) => void);\n };\n }, [t]);\n\n return (\n <>\n <HookSlot name=\"thank-you:start\" />\n\n <div className=\"h-52 -mb-52 w-full bg-primary rtl:right-0 ltr:left-0 relative -z-1\">\n <svg\n className=\"text-primary absolute top-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1440 320\"\n >\n <path\n className=\"fill-current\"\n fillOpacity=\"1\"\n d=\"M0,96L120,112C240,128,480,160,720,165.3C960,171,1200,149,1320,138.7L1440,128L1440,0L1320,0C1200,0,960,0,720,0C480,0,240,0,120,0L0,0Z\"\n ></path>\n </svg>\n </div>\n\n <div className=\"container mb-20\">\n <nav className=\"w-full py-5\">\n <ol className=\"list-reset flex items-center text-sm text-primary-reverse\">\n <li>\n <Link to=\"/\" className=\"fix-align text-primary-reverse\">\n {t('common.titles.home', 'Home')}\n </Link>\n </li>\n <li>\n <i className=\"sicon-keyboard_arrow_left mx-2\"></i>\n </li>\n <li>\n <span className=\"fix-align\">{title}</span>\n </li>\n </ol>\n </nav>\n\n <div className=\"bg-white p-4 md:p-8 rounded-md mb-6 md:mb-8\">\n <div className=\"flex flex-col items-center pt-16 pb-10\">\n <img src={confettiImage} alt={title} className=\"size-[140px] mb-8\" />\n <h1 className=\"font-bold text-lg mb-2.5\">{title}</h1>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-2.5\">\n {t(\n 'pages.thank_you.description',\n 'Your order has been received and will be reviewed and confirmed shortly.'\n )}\n </p>\n {order && (\n <>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-6\">\n {t('pages.thank_you.order_id_label', 'Order ID')}{' '}\n <SallaButton\n className=\"relative\"\n onClick={() => copyToClipboard(String(order.reference_id))}\n color=\"dark\"\n shape=\"link\"\n >\n <span>#{order.reference_id}</span>\n <i className=\"copy-icon sicon-swap-stroke pointer-events-none rtl:mr-1 ltr:ml-1\"></i>\n </SallaButton>\n </p>\n <Link\n to={`/account/orders/${order.id}`}\n className=\"bg-primary text-white text-sm font-bold h-10 px-4 rounded-md flex items-center justify-center gap-1.5\"\n >\n <i className=\"sicon-newspaper rtl:ml-1 ltr:mr-1\"></i>\n {t('pages.thank_you.view_order_details', 'View Order Details')}\n </Link>\n </>\n )}\n </div>\n\n {(order as { instructions?: string } | undefined)?.instructions && (\n <article\n className=\"article article--main article--small text-center\"\n dangerouslySetInnerHTML={{\n __html: (order as { instructions?: string }).instructions ?? '',\n }}\n />\n )}\n\n {messages.map((message) => (\n <div\n key={message}\n className=\"flex flex-col items-center pt-1 pb-10 justify-start rtl:space-x-reverse space-x-2\"\n >\n <span className=\"font-bold\">{message}</span>\n </div>\n ))}\n\n <HookSlot name=\"thank-you:items.start\" />\n <HookSlot name=\"thank-you:items.end\" />\n </div>\n\n <div className=\"lg:flex rtl:space-x-reverse lg:space-x-8\">\n {invoiceSent ? (\n <div className=\"duration-500 hover:shadow-default flex-1 bg-white p-8 rounded-md mb-6 md:mb-10 flex flex-col items-center justify-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.email_sent_to', 'Email sent to')}\n </p>\n <b className=\"text-sm\">{order?.customer?.email}</b>\n {invoiceMessage && <p className=\"text-sm text-green-600 mt-2\">{invoiceMessage}</p>}\n </div>\n ) : (\n <div\n id=\"invoice-form\"\n className={invoiceMessage ? 'thankyou-block sent' : 'thankyou-block'}\n >\n {invoiceMessage ? (\n <div className=\"text-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5 mx-auto\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm\" dangerouslySetInnerHTML={{ __html: invoiceMessage }} />\n </div>\n ) : (\n <>\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.resend_invoice', 'Resend invoice email')}\n </p>\n <form\n onSubmit={(e) => {\n e.preventDefault();\n window.salla?.form.onSubmit('order.sendInvoice', e);\n }}\n >\n <div className=\"flex max-w-3xl w-full\">\n <input\n type=\"email\"\n className=\"form-input rtl:rounded-l-none ltr:rounded-r-none rtl:border-l-0 ltr:border-r-0 !w-[160px] sm:!w-[220px]\"\n placeholder=\"your@email.com\"\n required\n name=\"email\"\n />\n <SallaButton\n type=\"submit\"\n loaderPosition=\"center\"\n className=\"rtl:rounded-r-none ltr:rounded-l-none lg:w-24 h-10\"\n >\n <span className=\"btn__text\">{t('pages.thank_you.send', 'Send')}</span>\n </SallaButton>\n </div>\n </form>\n </>\n )}\n </div>\n )}\n\n <div className=\"thankyou-block\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-mail-letter text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">{t('pages.thank_you.support', 'Support')}</p>\n\n <div className=\"flex rtl:space-x-reverse space-x-6\">\n {store.contacts.mobile && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-phone\"></i>\n <a\n href={`tel:${store.contacts.mobile}`}\n className=\"hover:text-primary transition\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.mobile}</b>\n </a>\n </div>\n )}\n\n {store.contacts.whatsapp && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-whatsapp\"></i>\n <a\n href={`https://wa.me/${store.contacts.whatsapp.replace(/[\\s+-]/g, '')}`}\n className=\"hover:text-primary transition\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.whatsapp}</b>\n </a>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <HookSlot name=\"thank-you:end\" />\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/thank-you/ThankYouPage.tsx"],"names":[],"mappings":"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","file":"ThankYouPage-G5FKAX74.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useCopyToClipboard } from '@uidotdev/usehooks';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { Link } from '../../components/common';\nimport { HookSlot } from '../../hooks';\nimport type { ThankYouPageProps } from './types';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport confettiImage from './confetti.svg';\n\nconst EMPTY_MESSAGES: NonNullable<ThankYouPageProps['messages']> = [];\n\nexport function ThankYouPage({\n order,\n thank_you_title,\n messages = EMPTY_MESSAGES,\n}: ThankYouPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const title =\n thank_you_title ?? t('pages.thank_you.hero_title', 'Thank you for shopping with us! 😊');\n const [invoiceSent, setInvoiceSent] = useState(order?.email_sent ?? false);\n const [invoiceMessage, setInvoiceMessage] = useState<string | null>(null);\n const [, copyToClipboard] = useCopyToClipboard();\n\n // Listen for invoice sent event (matches thankyou.js)\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.order?.event?.onInvoiceSent) return;\n\n const handleInvoiceSent = (res: { data?: { message?: string } }) => {\n setInvoiceMessage(\n res.data?.message || t('pages.thank_you.invoice_sent_success', 'Invoice sent successfully')\n );\n setInvoiceSent(true);\n };\n\n salla.order.event.onInvoiceSent(handleInvoiceSent);\n\n return () => {\n salla.event.off('order::invoice.sent', handleInvoiceSent as (...args: unknown[]) => void);\n };\n }, [t]);\n\n return (\n <>\n <HookSlot name=\"thank-you:start\" />\n\n <div className=\"h-52 -mb-52 w-full bg-primary rtl:right-0 ltr:left-0 relative -z-1\">\n <svg\n className=\"text-primary absolute top-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1440 320\"\n >\n <path\n className=\"fill-current\"\n fillOpacity=\"1\"\n d=\"M0,96L120,112C240,128,480,160,720,165.3C960,171,1200,149,1320,138.7L1440,128L1440,0L1320,0C1200,0,960,0,720,0C480,0,240,0,120,0L0,0Z\"\n ></path>\n </svg>\n </div>\n\n <div className=\"container mb-20\">\n <nav className=\"w-full py-5\">\n <ol className=\"list-reset flex items-center text-sm text-primary-reverse\">\n <li>\n <Link to=\"/\" className=\"fix-align text-primary-reverse\">\n {t('common.titles.home', 'Home')}\n </Link>\n </li>\n <li>\n <i className=\"sicon-keyboard_arrow_left mx-2\"></i>\n </li>\n <li>\n <span className=\"fix-align\">{title}</span>\n </li>\n </ol>\n </nav>\n\n <div className=\"bg-white p-4 md:p-8 rounded-md mb-6 md:mb-8\">\n <div className=\"flex flex-col items-center pt-16 pb-10\">\n <img src={confettiImage} alt={title} className=\"size-[140px] mb-8\" />\n <h1 className=\"font-bold text-lg mb-2.5\">{title}</h1>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-2.5\">\n {t(\n 'pages.thank_you.description',\n 'Your order has been received and will be reviewed and confirmed shortly.'\n )}\n </p>\n {order && (\n <>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-6\">\n {t('pages.thank_you.order_id_label', 'Order ID')}{' '}\n <SallaButton\n className=\"relative\"\n onClick={() => copyToClipboard(String(order.reference_id))}\n color=\"dark\"\n shape=\"link\"\n >\n <span>#{order.reference_id}</span>\n <i className=\"copy-icon sicon-swap-stroke pointer-events-none rtl:mr-1 ltr:ml-1\"></i>\n </SallaButton>\n </p>\n <Link\n to={`/account/orders/${order.id}`}\n className=\"bg-primary text-white text-sm font-bold h-10 px-4 rounded-md flex items-center justify-center gap-1.5\"\n >\n <i className=\"sicon-newspaper rtl:ml-1 ltr:mr-1\"></i>\n {t('pages.thank_you.view_order_details', 'View Order Details')}\n </Link>\n </>\n )}\n </div>\n\n {(order as { instructions?: string } | undefined)?.instructions && (\n <article\n className=\"article article--main article--small text-center\"\n dangerouslySetInnerHTML={{\n __html: (order as { instructions?: string }).instructions ?? '',\n }}\n />\n )}\n\n {messages.map((message) => (\n <div\n key={message}\n className=\"flex flex-col items-center pt-1 pb-10 justify-start rtl:space-x-reverse space-x-2\"\n >\n <span className=\"font-bold\">{message}</span>\n </div>\n ))}\n\n <HookSlot name=\"thank-you:items.start\" />\n <HookSlot name=\"thank-you:items.end\" />\n </div>\n\n <div className=\"lg:flex rtl:space-x-reverse lg:space-x-8\">\n {invoiceSent ? (\n <div className=\"duration-500 hover:shadow-default flex-1 bg-white p-8 rounded-md mb-6 md:mb-10 flex flex-col items-center justify-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.email_sent_to', 'Email sent to')}\n </p>\n <b className=\"text-sm\">{order?.customer?.email}</b>\n {invoiceMessage && <p className=\"text-sm text-green-600 mt-2\">{invoiceMessage}</p>}\n </div>\n ) : (\n <div\n id=\"invoice-form\"\n className={invoiceMessage ? 'thankyou-block sent' : 'thankyou-block'}\n >\n {invoiceMessage ? (\n <div className=\"text-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5 mx-auto\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm\" dangerouslySetInnerHTML={{ __html: invoiceMessage }} />\n </div>\n ) : (\n <>\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.resend_invoice', 'Resend invoice email')}\n </p>\n <form\n onSubmit={(e) => {\n e.preventDefault();\n window.salla?.form.onSubmit('order.sendInvoice', e);\n }}\n >\n <div className=\"flex max-w-3xl w-full\">\n <input\n type=\"email\"\n className=\"form-input rtl:rounded-l-none ltr:rounded-r-none rtl:border-l-0 ltr:border-r-0 !w-[160px] sm:!w-[220px]\"\n placeholder=\"your@email.com\"\n required\n name=\"email\"\n />\n <SallaButton\n type=\"submit\"\n loaderPosition=\"center\"\n className=\"rtl:rounded-r-none ltr:rounded-l-none lg:w-24 h-10\"\n >\n <span className=\"btn__text\">{t('pages.thank_you.send', 'Send')}</span>\n </SallaButton>\n </div>\n </form>\n </>\n )}\n </div>\n )}\n\n <div className=\"thankyou-block\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-mail-letter text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">{t('pages.thank_you.support', 'Support')}</p>\n\n <div className=\"flex rtl:space-x-reverse space-x-6\">\n {store.contacts.mobile && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-phone\"></i>\n <a\n href={`tel:${store.contacts.mobile}`}\n className=\"hover:text-primary transition\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.mobile}</b>\n </a>\n </div>\n )}\n\n {store.contacts.whatsapp && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-whatsapp\"></i>\n <a\n href={`https://wa.me/${store.contacts.whatsapp.replace(/[\\s+-]/g, '')}`}\n className=\"hover:text-primary transition\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.whatsapp}</b>\n </a>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <HookSlot name=\"thank-you:end\" />\n </div>\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { wallet } from './chunk-BB46SJTK.js';
2
- import { useMoney } from './chunk-2V5MRDHQ.js';
3
- import './chunk-UVWTPNGO.js';
2
+ import { useMoney } from './chunk-FM3MWV3M.js';
3
+ import './chunk-RL42ONPS.js';
4
4
  import './chunk-JKIRRMBU.js';
5
5
  import './chunk-2JV6WZ6O.js';
6
6
  import './chunk-VVZNW5CB.js';
@@ -27,7 +27,7 @@ import './chunk-YMVLYYLU.js';
27
27
  import './chunk-RJPPO3ET.js';
28
28
  import { HookSlot } from './chunk-Q7VWURUR.js';
29
29
  import './chunk-GU2KUQVD.js';
30
- import { LazyNoContent } from './chunk-W2LYNXAS.js';
30
+ import { LazyNoContent } from './chunk-ZODEBSEF.js';
31
31
  import './chunk-AXW67SY7.js';
32
32
  import './chunk-BYMOPN2S.js';
33
33
  import './chunk-6BZ5TKEV.js';
@@ -186,5 +186,5 @@ function WalletPage({ query, transactions, balance, pagination }) {
186
186
  }
187
187
 
188
188
  export { WalletPage };
189
- //# sourceMappingURL=WalletPage-VQWVBHWW.js.map
190
- //# sourceMappingURL=WalletPage-VQWVBHWW.js.map
189
+ //# sourceMappingURL=WalletPage-VLDLQGTT.js.map
190
+ //# sourceMappingURL=WalletPage-VLDLQGTT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/account/wallet/WalletPage.tsx"],"names":["TransactionRow"],"mappings":"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","file":"WalletPage-VQWVBHWW.js","sourcesContent":["import { memo, useCallback, useRef } from 'react';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { wallet } from '../../../api/wallet';\nimport type { TransactionItem } from '../../../api/wallet';\nimport { HookSlot, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WalletPageProps } from './types';\nimport { NoContent } from '../../../components/common';\n\nconst TransactionRow = memo(function TransactionRow({\n transaction,\n}: {\n transaction: TransactionItem;\n}) {\n const { t, locale } = useTranslation();\n const { format: formatMoney } = useMoney();\n\n const formatTimestamp = (ts: number) => {\n if (!ts) return '';\n return new Date(ts * 1000).toLocaleDateString(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n });\n };\n\n const actionTypeClass =\n transaction.action_type === 'cashback'\n ? 's-wallet-table-transaction-status-cashback'\n : transaction.action_type === 'refund'\n ? 's-wallet-table-transaction-status-refund'\n : transaction.action_type === 'purchase_by_wallet'\n ? 's-wallet-table-transaction-status-purchase'\n : '';\n\n return (\n <tr className=\"s-wallet-table-tbody-tr s-wallet-table-tbody-tr-shadow animated\">\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_number')}:</span>\n {transaction.id && <span className=\"hidden md:inline-block\">#{transaction.id}</span>}\n <div className=\"flex items-center md:hidden\">\n {transaction.id && <span>#{transaction.id}</span>}\n </div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.amount')}:</span>\n <div>{formatMoney(transaction.amount, { type: 'general' })}</div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.date')}:</span>\n {transaction.created_at ? formatTimestamp(transaction.created_at) : ''}\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.order_no')}:</span>\n <span className=\"rtl:mr-auto ltr:ml-auto md:mx-0\">\n {transaction.order_id && <span>#{transaction.order_id}</span>}\n </span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.expiry_date')}:</span>\n <span>{transaction.expired_at ? formatTimestamp(transaction.expired_at) : ''}</span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <div>\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_type')}:</span>\n </div>\n <div className={`s-wallet-table-transaction-status-default ${actionTypeClass}`}>\n {!!transaction.description && (\n <>\n <i\n id={transaction.id.toString()}\n className=\"sicon-information text-lg rtl:ml-4 ltr:mr-4 s-wallet-table-transaction-status-icon-success\"\n />\n <salla-tooltip\n text={transaction.description}\n targetId={transaction.id.toString()}\n />\n </>\n )}\n <span>{transaction.title}</span>\n </div>\n </div>\n </td>\n </tr>\n );\n});\n\nexport function WalletPage({ query, transactions, balance, pagination }: WalletPageProps) {\n const { t } = useTranslation();\n\n const { format: formatMoney } = useMoney();\n\n const nextPageRef = useRef(query.page + 1);\n\n const loader = useCallback(async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wallet.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n\n return {\n items: result.items,\n next: result.next,\n };\n }, []);\n\n if (transactions.length === 0) {\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <NoContent icon=\"sicon-full-wallet\" message={`${t('pages.wallet.no_transactions')}`} />\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n }\n\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <table className=\"s-wallet-table\">\n <tbody className=\"s-wallet-table-tbody\">\n <tr className=\"s-table__tr\">\n <td>\n <div className=\"s-wallet-table-balance-container\">\n <i className=\"s-wallet-table-balance-icon sicon-wallet\" />\n <div>\n <div>{formatMoney(balance, { type: 'general' })}</div>\n <div className=\"font-normal text-gray-400\">{t('pages.wallet.balance')}</div>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <h2 className=\"mt-8\">{t('pages.wallet.title')}</h2>\n <table className=\"s-wallet-table\">\n <thead className=\"s-wallet-table-head\">\n <tr className=\"s-wallet-table-head-tr\">\n <th scope=\"col\">{t('pages.wallet.transaction_number')}</th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.amount')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.order_no')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.expiry_date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.transaction_type')}\n </th>\n </tr>\n </thead>\n <tbody className=\"s-wallet-table-tbody\">\n <ItemsList<TransactionItem>\n items={transactions}\n loader={loader}\n mode={pagination.next ? 'infinite' : 'static'}\n itemsAs=\"Fragment\"\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) =>\n items.map((transaction) => (\n <TransactionRow key={transaction.id} transaction={transaction} />\n ))\n }\n </ItemsList>\n </tbody>\n </table>\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/account/wallet/WalletPage.tsx"],"names":["TransactionRow"],"mappings":"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","file":"WalletPage-VLDLQGTT.js","sourcesContent":["import { memo, useCallback, useRef } from 'react';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { wallet } from '../../../api/wallet';\nimport type { TransactionItem } from '../../../api/wallet';\nimport { HookSlot, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WalletPageProps } from './types';\nimport { NoContent } from '../../../components/common';\n\nconst TransactionRow = memo(function TransactionRow({\n transaction,\n}: {\n transaction: TransactionItem;\n}) {\n const { t, locale } = useTranslation();\n const { format: formatMoney } = useMoney();\n\n const formatTimestamp = (ts: number) => {\n if (!ts) return '';\n return new Date(ts * 1000).toLocaleDateString(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n });\n };\n\n const actionTypeClass =\n transaction.action_type === 'cashback'\n ? 's-wallet-table-transaction-status-cashback'\n : transaction.action_type === 'refund'\n ? 's-wallet-table-transaction-status-refund'\n : transaction.action_type === 'purchase_by_wallet'\n ? 's-wallet-table-transaction-status-purchase'\n : '';\n\n return (\n <tr className=\"s-wallet-table-tbody-tr s-wallet-table-tbody-tr-shadow animated\">\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_number')}:</span>\n {transaction.id && <span className=\"hidden md:inline-block\">#{transaction.id}</span>}\n <div className=\"flex items-center md:hidden\">\n {transaction.id && <span>#{transaction.id}</span>}\n </div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.amount')}:</span>\n <div>{formatMoney(transaction.amount, { type: 'general' })}</div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.date')}:</span>\n {transaction.created_at ? formatTimestamp(transaction.created_at) : ''}\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.order_no')}:</span>\n <span className=\"rtl:mr-auto ltr:ml-auto md:mx-0\">\n {transaction.order_id && <span>#{transaction.order_id}</span>}\n </span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.expiry_date')}:</span>\n <span>{transaction.expired_at ? formatTimestamp(transaction.expired_at) : ''}</span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <div>\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_type')}:</span>\n </div>\n <div className={`s-wallet-table-transaction-status-default ${actionTypeClass}`}>\n {!!transaction.description && (\n <>\n <i\n id={transaction.id.toString()}\n className=\"sicon-information text-lg rtl:ml-4 ltr:mr-4 s-wallet-table-transaction-status-icon-success\"\n />\n <salla-tooltip\n text={transaction.description}\n targetId={transaction.id.toString()}\n />\n </>\n )}\n <span>{transaction.title}</span>\n </div>\n </div>\n </td>\n </tr>\n );\n});\n\nexport function WalletPage({ query, transactions, balance, pagination }: WalletPageProps) {\n const { t } = useTranslation();\n\n const { format: formatMoney } = useMoney();\n\n const nextPageRef = useRef(query.page + 1);\n\n const loader = useCallback(async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wallet.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n\n return {\n items: result.items,\n next: result.next,\n };\n }, []);\n\n if (transactions.length === 0) {\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <NoContent icon=\"sicon-full-wallet\" message={`${t('pages.wallet.no_transactions')}`} />\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n }\n\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <table className=\"s-wallet-table\">\n <tbody className=\"s-wallet-table-tbody\">\n <tr className=\"s-table__tr\">\n <td>\n <div className=\"s-wallet-table-balance-container\">\n <i className=\"s-wallet-table-balance-icon sicon-wallet\" />\n <div>\n <div>{formatMoney(balance, { type: 'general' })}</div>\n <div className=\"font-normal text-gray-400\">{t('pages.wallet.balance')}</div>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <h2 className=\"mt-8\">{t('pages.wallet.title')}</h2>\n <table className=\"s-wallet-table\">\n <thead className=\"s-wallet-table-head\">\n <tr className=\"s-wallet-table-head-tr\">\n <th scope=\"col\">{t('pages.wallet.transaction_number')}</th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.amount')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.order_no')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.expiry_date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.transaction_type')}\n </th>\n </tr>\n </thead>\n <tbody className=\"s-wallet-table-tbody\">\n <ItemsList<TransactionItem>\n items={transactions}\n loader={loader}\n mode={pagination.next ? 'infinite' : 'static'}\n itemsAs=\"Fragment\"\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) =>\n items.map((transaction) => (\n <TransactionRow key={transaction.id} transaction={transaction} />\n ))\n }\n </ItemsList>\n </tbody>\n </table>\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { wishlist } from './chunk-2Z6EOHMB.js';
2
- import { useMoney } from './chunk-2V5MRDHQ.js';
3
- import './chunk-UVWTPNGO.js';
2
+ import { useMoney } from './chunk-FM3MWV3M.js';
3
+ import './chunk-RL42ONPS.js';
4
4
  import './chunk-JKIRRMBU.js';
5
5
  import './chunk-2JV6WZ6O.js';
6
6
  import './chunk-VVZNW5CB.js';
@@ -27,7 +27,7 @@ import './chunk-YMVLYYLU.js';
27
27
  import './chunk-RJPPO3ET.js';
28
28
  import { HookSlot } from './chunk-Q7VWURUR.js';
29
29
  import './chunk-GU2KUQVD.js';
30
- import { LazyNoContent, Image } from './chunk-W2LYNXAS.js';
30
+ import { LazyNoContent, Image } from './chunk-ZODEBSEF.js';
31
31
  import './chunk-AXW67SY7.js';
32
32
  import './chunk-BYMOPN2S.js';
33
33
  import './chunk-6BZ5TKEV.js';
@@ -141,5 +141,5 @@ function WishlistPage({ query, products, pagination }) {
141
141
  }
142
142
 
143
143
  export { WishlistPage };
144
- //# sourceMappingURL=WishlistPage-5IYTXOYT.js.map
145
- //# sourceMappingURL=WishlistPage-5IYTXOYT.js.map
144
+ //# sourceMappingURL=WishlistPage-G3C3LTNS.js.map
145
+ //# sourceMappingURL=WishlistPage-G3C3LTNS.js.map