@salla.sa/twilight-theme-engine 1.0.98 → 1.0.99

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 (132) hide show
  1. package/dist/{AddToCartForm-ROH4SKLR.js → AddToCartForm-JNLGYMNU.js} +3 -3
  2. package/dist/{AddToCartForm-ROH4SKLR.js.map → AddToCartForm-JNLGYMNU.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-7DPQXXQN.js → BlogAuthorPage-F2OL2MQR.js} +8 -8
  4. package/dist/{BlogAuthorPage-7DPQXXQN.js.map → BlogAuthorPage-F2OL2MQR.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-OKYERD3D.js → BlogCategoryPage-DV5BBFL3.js} +8 -8
  6. package/dist/{BlogCategoryPage-OKYERD3D.js.map → BlogCategoryPage-DV5BBFL3.js.map} +1 -1
  7. package/dist/{BlogPage-GNWPKYGU.js → BlogPage-DU7HUJPY.js} +7 -7
  8. package/dist/{BlogPage-GNWPKYGU.js.map → BlogPage-DU7HUJPY.js.map} +1 -1
  9. package/dist/{BlogSinglePage-F2H57LBD.js → BlogSinglePage-OSABKZJD.js} +7 -7
  10. package/dist/{BlogSinglePage-F2H57LBD.js.map → BlogSinglePage-OSABKZJD.js.map} +1 -1
  11. package/dist/{BlogTagPage-XTR7FTQW.js → BlogTagPage-K6PFWMXM.js} +8 -8
  12. package/dist/{BlogTagPage-XTR7FTQW.js.map → BlogTagPage-K6PFWMXM.js.map} +1 -1
  13. package/dist/{BrandsPage-SQ6Q4XNL.js → BrandsPage-HJAK26C4.js} +7 -7
  14. package/dist/{BrandsPage-SQ6Q4XNL.js.map → BrandsPage-HJAK26C4.js.map} +1 -1
  15. package/dist/{Breadcrumb-VFKYS5K6.js → Breadcrumb-OSKLOBWK.js} +7 -7
  16. package/dist/{Breadcrumb-VFKYS5K6.js.map → Breadcrumb-OSKLOBWK.js.map} +1 -1
  17. package/dist/{CartItem-NCV72XTK.js → CartItem-D2DRTQ2N.js} +7 -7
  18. package/dist/{CartItem-NCV72XTK.js.map → CartItem-D2DRTQ2N.js.map} +1 -1
  19. package/dist/{CartSummary-WDNB7V44.js → CartSummary-YAT4267M.js} +7 -7
  20. package/dist/{CartSummary-WDNB7V44.js.map → CartSummary-YAT4267M.js.map} +1 -1
  21. package/dist/{Copyright-CKEEAK77.js → Copyright-JLOVWWGW.js} +3 -3
  22. package/dist/{Copyright-CKEEAK77.js.map → Copyright-JLOVWWGW.js.map} +1 -1
  23. package/dist/{CustomerLayout-SHP5VGVZ.js → CustomerLayout-WW52PRQI.js} +7 -7
  24. package/dist/{CustomerLayout-SHP5VGVZ.js.map → CustomerLayout-WW52PRQI.js.map} +1 -1
  25. package/dist/{Footer-DFPBOS4W.js → Footer-HFJCXH4X.js} +4 -4
  26. package/dist/{Footer-DFPBOS4W.js.map → Footer-HFJCXH4X.js.map} +1 -1
  27. package/dist/{Header-XCJGGBBO.js → Header-4W5OPPH7.js} +4 -4
  28. package/dist/{Header-XCJGGBBO.js.map → Header-4W5OPPH7.js.map} +1 -1
  29. package/dist/{LoyaltyPage-FUNYRVAO.js → LoyaltyPage-WAYSO73L.js} +7 -7
  30. package/dist/{LoyaltyPage-FUNYRVAO.js.map → LoyaltyPage-WAYSO73L.js.map} +1 -1
  31. package/dist/{LoyaltyPointsPage-TM7QAREN.js → LoyaltyPointsPage-HTNDT3Z6.js} +3 -3
  32. package/dist/{LoyaltyPointsPage-TM7QAREN.js.map → LoyaltyPointsPage-HTNDT3Z6.js.map} +1 -1
  33. package/dist/{MainMenu-6VMUFSBG.js → MainMenu-EWQBIIPV.js} +3 -3
  34. package/dist/{MainMenu-6VMUFSBG.js.map → MainMenu-EWQBIIPV.js.map} +1 -1
  35. package/dist/{MasterLayout-F2D6GD3K.js → MasterLayout-J3L2MJT3.js} +7 -7
  36. package/dist/{MasterLayout-F2D6GD3K.js.map → MasterLayout-J3L2MJT3.js.map} +1 -1
  37. package/dist/{MobileMenu-BYCWNQIZ.js → MobileMenu-KNJJVMFC.js} +7 -7
  38. package/dist/{MobileMenu-BYCWNQIZ.js.map → MobileMenu-KNJJVMFC.js.map} +1 -1
  39. package/dist/{NotificationsPage-6MYANSOO.js → NotificationsPage-ZX5HQHNE.js} +7 -7
  40. package/dist/{NotificationsPage-6MYANSOO.js.map → NotificationsPage-ZX5HQHNE.js.map} +1 -1
  41. package/dist/{OrderSinglePage-HCNJFUF7.js → OrderSinglePage-7P5CBETZ.js} +7 -7
  42. package/dist/{OrderSinglePage-HCNJFUF7.js.map → OrderSinglePage-7P5CBETZ.js.map} +1 -1
  43. package/dist/{OrdersPage-6ZO4UGSM.js → OrdersPage-KHU7U3Y6.js} +7 -7
  44. package/dist/{OrdersPage-6ZO4UGSM.js.map → OrdersPage-KHU7U3Y6.js.map} +1 -1
  45. package/dist/{PageSingle-WR7WVCYT.js → PageSingle-KMJ7GIN2.js} +3 -3
  46. package/dist/{PageSingle-WR7WVCYT.js.map → PageSingle-KMJ7GIN2.js.map} +1 -1
  47. package/dist/{ProductDetails-7C7PZIRL.js → ProductDetails-XABBNI77.js} +3 -3
  48. package/dist/{ProductDetails-7C7PZIRL.js.map → ProductDetails-XABBNI77.js.map} +1 -1
  49. package/dist/{ProfilePage-PHUCMTZM.js → ProfilePage-5DEGLPQR.js} +7 -7
  50. package/dist/{ProfilePage-PHUCMTZM.js.map → ProfilePage-5DEGLPQR.js.map} +1 -1
  51. package/dist/{ReviewsPage-HDUSR37M.js → ReviewsPage-ZEIGPACC.js} +3 -3
  52. package/dist/{ReviewsPage-HDUSR37M.js.map → ReviewsPage-ZEIGPACC.js.map} +1 -1
  53. package/dist/{SeoCartWidget-VKCEJE7R.js → SeoCartWidget-UMZFE5IT.js} +7 -7
  54. package/dist/{SeoCartWidget-VKCEJE7R.js.map → SeoCartWidget-UMZFE5IT.js.map} +1 -1
  55. package/dist/{SettingsPage-ICM7J5CT.js → SettingsPage-IX7IV64A.js} +7 -7
  56. package/dist/{SettingsPage-ICM7J5CT.js.map → SettingsPage-IX7IV64A.js.map} +1 -1
  57. package/dist/{StoreClosedNotification-E4TDZXRU.js → StoreClosedNotification-Z42CRUO3.js} +8 -8
  58. package/dist/{StoreClosedNotification-E4TDZXRU.js.map → StoreClosedNotification-Z42CRUO3.js.map} +1 -1
  59. package/dist/{TestimonialsPage-LRCKVGXV.js → TestimonialsPage-SPMBAY6Y.js} +3 -3
  60. package/dist/{TestimonialsPage-LRCKVGXV.js.map → TestimonialsPage-SPMBAY6Y.js.map} +1 -1
  61. package/dist/{ThankYouPage-77T52FIM.js → ThankYouPage-CSH5DIWG.js} +7 -7
  62. package/dist/{ThankYouPage-77T52FIM.js.map → ThankYouPage-CSH5DIWG.js.map} +1 -1
  63. package/dist/{WalletPage-6MNEILP7.js → WalletPage-YEXHE45E.js} +7 -7
  64. package/dist/{WalletPage-6MNEILP7.js.map → WalletPage-YEXHE45E.js.map} +1 -1
  65. package/dist/{WishlistPage-Y4SWSVSW.js → WishlistPage-CQFXEAQ4.js} +7 -7
  66. package/dist/{WishlistPage-Y4SWSVSW.js.map → WishlistPage-CQFXEAQ4.js.map} +1 -1
  67. package/dist/{chunk-JFV33YI3.js → chunk-54UKM5VQ.js} +7 -7
  68. package/dist/{chunk-JFV33YI3.js.map → chunk-54UKM5VQ.js.map} +1 -1
  69. package/dist/{chunk-ZLMWC7FK.js → chunk-5MCXRXH7.js} +4 -4
  70. package/dist/{chunk-ZLMWC7FK.js.map → chunk-5MCXRXH7.js.map} +1 -1
  71. package/dist/{chunk-KSUB7BS5.js → chunk-64WXD4HL.js} +3 -3
  72. package/dist/{chunk-KSUB7BS5.js.map → chunk-64WXD4HL.js.map} +1 -1
  73. package/dist/{chunk-3CRGGLLG.js → chunk-6LGUIMJH.js} +4 -4
  74. package/dist/{chunk-3CRGGLLG.js.map → chunk-6LGUIMJH.js.map} +1 -1
  75. package/dist/{chunk-B3PLEYMH.js → chunk-AY4NP66G.js} +3 -3
  76. package/dist/{chunk-B3PLEYMH.js.map → chunk-AY4NP66G.js.map} +1 -1
  77. package/dist/{chunk-COJH52VR.js → chunk-ENJIX7HX.js} +24 -6
  78. package/dist/chunk-ENJIX7HX.js.map +1 -0
  79. package/dist/{chunk-ZO2YNOKD.js → chunk-GVUQWKN7.js} +8 -8
  80. package/dist/{chunk-ZO2YNOKD.js.map → chunk-GVUQWKN7.js.map} +1 -1
  81. package/dist/{chunk-B2CAINJ5.js → chunk-JO6RSLLT.js} +4 -4
  82. package/dist/{chunk-B2CAINJ5.js.map → chunk-JO6RSLLT.js.map} +1 -1
  83. package/dist/{chunk-L4E76GEP.js → chunk-KZKUQMFL.js} +4 -4
  84. package/dist/{chunk-L4E76GEP.js.map → chunk-KZKUQMFL.js.map} +1 -1
  85. package/dist/{chunk-WFTIOIAU.js → chunk-MUMKFUFU.js} +3 -3
  86. package/dist/{chunk-WFTIOIAU.js.map → chunk-MUMKFUFU.js.map} +1 -1
  87. package/dist/{chunk-FWDMLFHA.js → chunk-P3UGJTCD.js} +5 -5
  88. package/dist/{chunk-FWDMLFHA.js.map → chunk-P3UGJTCD.js.map} +1 -1
  89. package/dist/{chunk-T4NKWFRV.js → chunk-SXMH2VZ4.js} +6 -6
  90. package/dist/{chunk-T4NKWFRV.js.map → chunk-SXMH2VZ4.js.map} +1 -1
  91. package/dist/chunk-YSDVA32V.js +14 -0
  92. package/dist/{chunk-7NX7WQZV.js.map → chunk-YSDVA32V.js.map} +1 -1
  93. package/dist/{chunk-DU7DPW24.js → chunk-Z3GG5IPZ.js} +3 -3
  94. package/dist/{chunk-DU7DPW24.js.map → chunk-Z3GG5IPZ.js.map} +1 -1
  95. package/dist/components/cart/index.js +1 -1
  96. package/dist/components/common/index.js +1 -1
  97. package/dist/components/drawer/index.js +5 -5
  98. package/dist/components/home/index.js +7 -7
  99. package/dist/components/layout/index.js +1 -1
  100. package/dist/components/product/index.js +6 -6
  101. package/dist/components/store/index.js +7 -7
  102. package/dist/dev/dev-settings-store.d.ts +8 -0
  103. package/dist/dev/dev-settings-store.d.ts.map +1 -1
  104. package/dist/dev/editor/index.js +1 -1
  105. package/dist/dev/index.js +1 -1
  106. package/dist/{document-class-G2ELKHZ4.js → document-class-WH3FK7JA.js} +3 -3
  107. package/dist/{document-class-G2ELKHZ4.js.map → document-class-WH3FK7JA.js.map} +1 -1
  108. package/dist/hooks/index.js +5 -5
  109. package/dist/hooks/useGtm.js +5 -5
  110. package/dist/hooks/useMoney.js +5 -5
  111. package/dist/hooks/useStore.js +5 -5
  112. package/dist/index.js +5 -5
  113. package/dist/{not-found-SHQTUQ64.js → not-found-CAGWYUA4.js} +7 -7
  114. package/dist/{not-found-SHQTUQ64.js.map → not-found-CAGWYUA4.js.map} +1 -1
  115. package/dist/providers/index.js +5 -5
  116. package/dist/routes/account/orders.js +1 -1
  117. package/dist/routes/account.js +6 -6
  118. package/dist/routes/blog.js +5 -5
  119. package/dist/routes/brands.js +1 -1
  120. package/dist/routes/cart.js +9 -9
  121. package/dist/routes/home.js +8 -8
  122. package/dist/routes/loyalty.js +2 -2
  123. package/dist/routes/page.js +1 -1
  124. package/dist/routes/product-listing.js +7 -7
  125. package/dist/routes/product.js +7 -7
  126. package/dist/routes/testimonials.js +2 -2
  127. package/dist/routes/thank-you.js +1 -1
  128. package/dist/skeleton.js +8 -8
  129. package/dist/tanstack.js +1 -1
  130. package/package.json +1 -1
  131. package/dist/chunk-7NX7WQZV.js +0 -14
  132. package/dist/chunk-COJH52VR.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/Footer.tsx"],"names":[],"mappings":"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","file":"chunk-DU7DPW24.js","sourcesContent":["import { useState } from 'react';\nimport { SallaAppsIcons } from '@salla.sa/twilight-components-react/apps-icons';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaSocial } from '@salla.sa/twilight-components-react/social';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaTrustBadges } from '@salla.sa/twilight-components-react/trust-badges';\nimport { SallaPayments } from '@salla.sa/twilight-components-react/payments';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { useIsClient } from '../../hooks/useIsClient';\nimport { Link, Image } from '../common';\nimport { ImageModal } from '../modal';\n\n/** Salla's value-added-tax badge icon (70×70, CDN-resized) — a platform\n * asset shared by every store, not specific to any one theme. */\nconst TAX_ICON_URL =\n 'https://cdn.salla.network/cdn-cgi/image/fit=scale-down,width=70,height=70,onerror=redirect,format=auto/images/tax.png?v=2.0.5';\n\n/**\n * The store's value-added-tax registration: the tax number, plus the certificate as\n * the tax icon that opens the certificate image full size in a modal. Nothing shows\n * when the store has no tax number.\n */\nfunction FooterTax({ dark }: { dark: boolean }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n const number = store.settings?.tax?.number;\n const certificate = store.settings?.tax?.certificate;\n if (!number) return null;\n\n return (\n <div\n data-testid=\"store-footer-tax\"\n className=\"store-footer__tax flex items-end gap-2 rtl:space-x-reverse\"\n >\n {certificate && (\n <>\n <button\n type=\"button\"\n data-testid=\"store-footer-tax-certificate\"\n className=\"store-footer__tax-cert shrink-0\"\n aria-label={t('common.elements.tax_certificate', 'Tax Certificate')}\n aria-haspopup=\"dialog\"\n onClick={() => setOpen(true)}\n >\n <img\n src={TAX_ICON_URL}\n alt={t('common.elements.tax_certificate', 'Tax Certificate')}\n width={40}\n height={50}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"w-10 rounded-sm transition-opacity hover:opacity-80\"\n />\n </button>\n <ImageModal\n isOpen={open}\n onClose={() => setOpen(false)}\n src={certificate}\n alt={t('common.elements.tax_certificate', 'Tax Certificate')}\n title={t('common.elements.tax_certificate', 'Tax Certificate')}\n />\n </>\n )}\n <div>\n <p className={`mb-1 text-sm opacity-70 ${dark ? 'text-white' : ''}`}>\n {t('common.elements.tax_number', 'Tax Number')}\n </p>\n <b className=\"text-sm\">{number}</b>\n </div>\n </div>\n );\n}\n\n/** Saudi Business Center (SBC) logo, CDN-versioned like the tax icon -- also a\n * platform asset, not theme-specific. */\nconst SBC_ICON_URL = 'https://cdn.salla.network/images/sbc.png?v=2.0.5';\n\n/**\n * The store's Saudi Business Center certificate: a \"Trusted by Business Platform\" badge that\n * opens the certificate's page on the SBC site so visitors can verify the merchant. Nothing\n * shows when the store has no certificate.\n */\nfunction FooterSbc({ dark }: { dark: boolean }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const id = store.settings?.certificate?.id;\n if (!id) return null;\n\n return (\n <a\n href={`https://eauthenticate.saudibusiness.gov.sa/certificate-details/${encodeURIComponent(id)}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"store-footer-sbc\"\n className=\"store-footer__sbc flex items-center gap-2.5 transition-opacity hover:opacity-75\"\n >\n <img\n src={SBC_ICON_URL}\n alt={`SBC ${id}`}\n width={56}\n height={40}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"h-10 w-14 rounded-sm\"\n />\n <div>\n <p className={`text-xs opacity-70 ${dark ? 'text-white' : ''}`}>\n {t('blocks.footer.sbc_trusted_by', 'Trusted by')}\n </p>\n <b className=\"text-sm\">{t('blocks.footer.sbc_platform', 'Business Platform')}</b>\n </div>\n </a>\n );\n}\n\n/** Trust badges, the tax registration and the SBC badge, side by side (wrapping on narrow columns). */\nfunction FooterTrust({ dark, centered }: { dark: boolean; centered: boolean }) {\n return (\n <div\n data-testid=\"store-footer-trust\"\n className={`store-footer__trust flex flex-wrap items-end gap-x-6 gap-y-3${centered ? ' justify-center' : ''}`}\n >\n <FooterTax dark={dark} />\n <FooterSbc dark={dark} />\n <SallaTrustBadges {...(dark ? { dark: true } : {})} />\n </div>\n );\n}\n\n/**\n * The footer's own menu of (\"important\") links -- skipped entirely when\n * `inSheet`, for a theme that opens it from somewhere else of its own (a\n * mobile account sheet, a dedicated links screen, …) instead; showing it\n * again down here would just be a redundant second copy. `heading` wraps it\n * in the grid layout's own `.store-footer__links` column; the centered\n * layout's inline row has none.\n */\nfunction FooterLinksMenu({\n inSheet,\n className,\n heading,\n dark,\n}: {\n inSheet: boolean;\n className: string;\n heading?: string;\n dark: boolean;\n}) {\n if (inSheet) return null;\n\n const menu = <SallaMenu source=\"footer\" className={className} suppressHydrationWarning />;\n if (!heading) return menu;\n\n return (\n <div className=\"store-footer__links\">\n <h3 className={`mb-3 text-lg font-bold lg:mb-5 ${dark ? 'text-white' : 'text-gray-900'}`}>\n {heading}\n </h3>\n {menu}\n </div>\n );\n}\n\n/** App-store / Google-Play buttons. Nothing shows -- not even the wrapping\n * div -- when the store has neither link set. */\nfunction FooterApps({ className }: { className: string }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n // The web component fills its light DOM before React hydrates the footer, a hydration error.\n const isClient = useIsClient();\n if (!store.apps?.appstore && !store.apps?.googleplay) return null;\n\n return (\n <div data-testid=\"store-footer-apps\" className={`store-footer__apps ${className}`}>\n {isClient && (\n <SallaAppsIcons\n apps={store.apps}\n appsTitle={t('blocks.footer.download_apps', 'Get our apps')}\n />\n )}\n </div>\n );\n}\n\n/** The logo link, same shape in both layouts -- only its own spacing differs. */\nfunction FooterLogo({ className }: { className: string }) {\n const { store } = useTwilight();\n return (\n <Link\n to=\"/\"\n className={`store-footer__logo inline-flex items-center m-0 transition-opacity hover:opacity-75 ${className}`}\n >\n <Image\n src={store.logo}\n alt={store.name || 'Store'}\n width={150}\n height={44}\n objectFit=\"contain\"\n className=\"h-11 w-auto max-w-[180px]\"\n />\n </Link>\n );\n}\n\n/** Merchant-authored description HTML -- mirrors the Twig theme's\n * `store.description|raw`. Renders nothing when the store has none set. */\nfunction FooterDescription({ className }: { className: string }) {\n const { store } = useTwilight();\n if (!store.description) return null;\n return (\n <div\n className={`store-footer__desc opacity-80 ${className}`}\n dangerouslySetInnerHTML={{ __html: store.description }}\n />\n );\n}\n\n/** The store's phone and email as one \"Contact us: …\" row under the description\n * (`<salla-contacts>`'s compact `isHeader` layout, which shows only those two).\n * Renders nothing when the store has neither. */\nfunction FooterContacts({ className }: { className: string }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n if (!store.contacts?.phone && !store.contacts?.email) return null;\n return (\n <div className={`store-footer__contacts ${className}`}>\n <SallaContacts\n contacts={store.contacts}\n contactsTitle={t('blocks.footer.social', 'Contact us')}\n isHeader\n />\n </div>\n );\n}\n\n/** Centered layout: logo, description, contacts, social, footer menu, trust\n * badges and app buttons stacked as one centered column. */\nfunction FooterCenteredBody({ inSheet, isDark }: { inSheet: boolean; isDark: boolean }) {\n return (\n <div className=\"container mx-auto flex max-w-2xl flex-col items-center gap-6 text-center\">\n <FooterLogo className=\"\" />\n <FooterDescription className=\"\" />\n <FooterContacts className=\"\" />\n <SallaSocial />\n\n <FooterLinksMenu\n inSheet={inSheet}\n className=\"store-footer__menu store-footer__menu--inline\"\n dark={isDark}\n />\n\n <FooterTrust dark={isDark} centered />\n\n <FooterApps className=\"flex flex-col items-center gap-3\" />\n </div>\n );\n}\n\n/** Columns layout: brand (logo / description / contacts / social / trust) and app\n * buttons side by side, with the footer menu as its own labeled column. */\nfunction FooterColumnsBody({ inSheet, isDark }: { inSheet: boolean; isDark: boolean }) {\n const { t } = useTranslation();\n\n return (\n <div className=\"container grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-4 lg:gap-16\">\n <div className=\"store-footer__brand rtl:lg:pl-16 ltr:lg:pr-16 sm:col-span-2\">\n <FooterLogo className=\"mb-5\" />\n <FooterDescription className=\"max-w-sm leading-6 my-5\" />\n <FooterContacts className=\"mb-6\" />\n <SallaSocial className=\"block mb-6\" />\n <FooterTrust dark={isDark} centered={false} />\n </div>\n\n <FooterLinksMenu\n inSheet={inSheet}\n className=\"store-footer__menu store-footer__menu--stacked\"\n heading={t('blocks.footer.important_links', 'Important links')}\n dark={isDark}\n />\n\n <FooterApps className=\"\" />\n </div>\n );\n}\n\nexport interface FooterProps {\n /**\n * Renders as a plain `<div>` (no second `<footer>` landmark) with the\n * `footer:start` / `footer:end` hook slots skipped -- for a theme that\n * repeats these widgets somewhere other than the page's own footer (a\n * mobile sheet, for example) rather than rendering the real page footer a\n * second time.\n */\n inSheet?: boolean;\n}\n\n/**\n * Storefront footer.\n *\n * Two layouts, chosen by the `footer_layout` theme setting:\n * - **columns** (default): logo / description / social / trust badges, the\n * footer menu (\"important links\"), and app-store buttons, side by side.\n * - **centered**: the same pieces stacked as one centered column, with the\n * footer menu laid out as an inline, pipe-separated row.\n *\n * Styling for the handful of pieces rendered by web components this owns no\n * markup for (`<salla-social>`'s `.social-link` icons, `<salla-menu>`'s\n * `.s-menu-footer-item` rows, `<salla-payments>`'s `.s-payments-list-item`\n * icons) is the consuming theme's own responsibility, the same way\n * `inSheet`'s own presentation is -- this component owns structure and data,\n * not every pixel.\n */\nexport function Footer({ inSheet = false }: FooterProps = {}) {\n const { store, theme } = useTwilight();\n const { t } = useTranslation();\n const year = new Date().getFullYear();\n const isCentered = theme.settings?.footer_layout === 'centered';\n const isDark = !!theme.settings?.footer_is_dark;\n\n const Root = inSheet ? 'div' : 'footer';\n\n return (\n <Root\n className={`store-footer store-footer--${isCentered ? 'centered' : 'columns'}${\n inSheet ? ' store-footer--sheet' : ''\n } relative mt-8 sm:mt-16 ${isDark ? 'bg-[#0E0F0F] text-white' : 'bg-[#F4F7F2] text-gray-600'}`}\n suppressHydrationWarning\n >\n {!inSheet && <HookSlot name=\"footer:start\" />}\n\n <div\n aria-label=\"footer\"\n className={`store-footer__inner border-b py-8 lg:py-16 ${\n isDark ? 'bg-[#1D1F1F] border-dashed border-white/10' : 'bg-transparent border-gray-200'\n }`}\n >\n {isCentered ? (\n <FooterCenteredBody inSheet={inSheet} isDark={isDark} />\n ) : (\n <FooterColumnsBody inSheet={inSheet} isDark={isDark} />\n )}\n </div>\n\n <div className=\"store-footer__bottom container md:flex items-center justify-between gap-4 py-4 lg:py-7 text-center\">\n <span className={`text-sm copyright-text ${isDark ? 'text-gray-400' : 'text-gray-700'}`}>\n <HookSlot\n name=\"copyright\"\n context={{ storeName: store.name }}\n fallback={\n <>\n {t('blocks.footer.copyright', 'All rights reserved')}{' '}\n <Link to=\"/\" className=\"transition-opacity hover:opacity-75 hover:text-primary\">\n {store.name}\n </Link>{' '}\n © {year}\n </>\n }\n />\n </span>\n\n <SallaPayments />\n </div>\n\n {!inSheet && <HookSlot name=\"footer:end\" />}\n </Root>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/layout/Footer.tsx"],"names":[],"mappings":"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","file":"chunk-Z3GG5IPZ.js","sourcesContent":["import { useState } from 'react';\nimport { SallaAppsIcons } from '@salla.sa/twilight-components-react/apps-icons';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaSocial } from '@salla.sa/twilight-components-react/social';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaTrustBadges } from '@salla.sa/twilight-components-react/trust-badges';\nimport { SallaPayments } from '@salla.sa/twilight-components-react/payments';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { useIsClient } from '../../hooks/useIsClient';\nimport { Link, Image } from '../common';\nimport { ImageModal } from '../modal';\n\n/** Salla's value-added-tax badge icon (70×70, CDN-resized) — a platform\n * asset shared by every store, not specific to any one theme. */\nconst TAX_ICON_URL =\n 'https://cdn.salla.network/cdn-cgi/image/fit=scale-down,width=70,height=70,onerror=redirect,format=auto/images/tax.png?v=2.0.5';\n\n/**\n * The store's value-added-tax registration: the tax number, plus the certificate as\n * the tax icon that opens the certificate image full size in a modal. Nothing shows\n * when the store has no tax number.\n */\nfunction FooterTax({ dark }: { dark: boolean }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n const number = store.settings?.tax?.number;\n const certificate = store.settings?.tax?.certificate;\n if (!number) return null;\n\n return (\n <div\n data-testid=\"store-footer-tax\"\n className=\"store-footer__tax flex items-end gap-2 rtl:space-x-reverse\"\n >\n {certificate && (\n <>\n <button\n type=\"button\"\n data-testid=\"store-footer-tax-certificate\"\n className=\"store-footer__tax-cert shrink-0\"\n aria-label={t('common.elements.tax_certificate', 'Tax Certificate')}\n aria-haspopup=\"dialog\"\n onClick={() => setOpen(true)}\n >\n <img\n src={TAX_ICON_URL}\n alt={t('common.elements.tax_certificate', 'Tax Certificate')}\n width={40}\n height={50}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"w-10 rounded-sm transition-opacity hover:opacity-80\"\n />\n </button>\n <ImageModal\n isOpen={open}\n onClose={() => setOpen(false)}\n src={certificate}\n alt={t('common.elements.tax_certificate', 'Tax Certificate')}\n title={t('common.elements.tax_certificate', 'Tax Certificate')}\n />\n </>\n )}\n <div>\n <p className={`mb-1 text-sm opacity-70 ${dark ? 'text-white' : ''}`}>\n {t('common.elements.tax_number', 'Tax Number')}\n </p>\n <b className=\"text-sm\">{number}</b>\n </div>\n </div>\n );\n}\n\n/** Saudi Business Center (SBC) logo, CDN-versioned like the tax icon -- also a\n * platform asset, not theme-specific. */\nconst SBC_ICON_URL = 'https://cdn.salla.network/images/sbc.png?v=2.0.5';\n\n/**\n * The store's Saudi Business Center certificate: a \"Trusted by Business Platform\" badge that\n * opens the certificate's page on the SBC site so visitors can verify the merchant. Nothing\n * shows when the store has no certificate.\n */\nfunction FooterSbc({ dark }: { dark: boolean }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const id = store.settings?.certificate?.id;\n if (!id) return null;\n\n return (\n <a\n href={`https://eauthenticate.saudibusiness.gov.sa/certificate-details/${encodeURIComponent(id)}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"store-footer-sbc\"\n className=\"store-footer__sbc flex items-center gap-2.5 transition-opacity hover:opacity-75\"\n >\n <img\n src={SBC_ICON_URL}\n alt={`SBC ${id}`}\n width={56}\n height={40}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"h-10 w-14 rounded-sm\"\n />\n <div>\n <p className={`text-xs opacity-70 ${dark ? 'text-white' : ''}`}>\n {t('blocks.footer.sbc_trusted_by', 'Trusted by')}\n </p>\n <b className=\"text-sm\">{t('blocks.footer.sbc_platform', 'Business Platform')}</b>\n </div>\n </a>\n );\n}\n\n/** Trust badges, the tax registration and the SBC badge, side by side (wrapping on narrow columns). */\nfunction FooterTrust({ dark, centered }: { dark: boolean; centered: boolean }) {\n return (\n <div\n data-testid=\"store-footer-trust\"\n className={`store-footer__trust flex flex-wrap items-end gap-x-6 gap-y-3${centered ? ' justify-center' : ''}`}\n >\n <FooterTax dark={dark} />\n <FooterSbc dark={dark} />\n <SallaTrustBadges {...(dark ? { dark: true } : {})} />\n </div>\n );\n}\n\n/**\n * The footer's own menu of (\"important\") links -- skipped entirely when\n * `inSheet`, for a theme that opens it from somewhere else of its own (a\n * mobile account sheet, a dedicated links screen, …) instead; showing it\n * again down here would just be a redundant second copy. `heading` wraps it\n * in the grid layout's own `.store-footer__links` column; the centered\n * layout's inline row has none.\n */\nfunction FooterLinksMenu({\n inSheet,\n className,\n heading,\n dark,\n}: {\n inSheet: boolean;\n className: string;\n heading?: string;\n dark: boolean;\n}) {\n if (inSheet) return null;\n\n const menu = <SallaMenu source=\"footer\" className={className} suppressHydrationWarning />;\n if (!heading) return menu;\n\n return (\n <div className=\"store-footer__links\">\n <h3 className={`mb-3 text-lg font-bold lg:mb-5 ${dark ? 'text-white' : 'text-gray-900'}`}>\n {heading}\n </h3>\n {menu}\n </div>\n );\n}\n\n/** App-store / Google-Play buttons. Nothing shows -- not even the wrapping\n * div -- when the store has neither link set. */\nfunction FooterApps({ className }: { className: string }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n // The web component fills its light DOM before React hydrates the footer, a hydration error.\n const isClient = useIsClient();\n if (!store.apps?.appstore && !store.apps?.googleplay) return null;\n\n return (\n <div data-testid=\"store-footer-apps\" className={`store-footer__apps ${className}`}>\n {isClient && (\n <SallaAppsIcons\n apps={store.apps}\n appsTitle={t('blocks.footer.download_apps', 'Get our apps')}\n />\n )}\n </div>\n );\n}\n\n/** The logo link, same shape in both layouts -- only its own spacing differs. */\nfunction FooterLogo({ className }: { className: string }) {\n const { store } = useTwilight();\n return (\n <Link\n to=\"/\"\n className={`store-footer__logo inline-flex items-center m-0 transition-opacity hover:opacity-75 ${className}`}\n >\n <Image\n src={store.logo}\n alt={store.name || 'Store'}\n width={150}\n height={44}\n objectFit=\"contain\"\n className=\"h-11 w-auto max-w-[180px]\"\n />\n </Link>\n );\n}\n\n/** Merchant-authored description HTML -- mirrors the Twig theme's\n * `store.description|raw`. Renders nothing when the store has none set. */\nfunction FooterDescription({ className }: { className: string }) {\n const { store } = useTwilight();\n if (!store.description) return null;\n return (\n <div\n className={`store-footer__desc opacity-80 ${className}`}\n dangerouslySetInnerHTML={{ __html: store.description }}\n />\n );\n}\n\n/** The store's phone and email as one \"Contact us: …\" row under the description\n * (`<salla-contacts>`'s compact `isHeader` layout, which shows only those two).\n * Renders nothing when the store has neither. */\nfunction FooterContacts({ className }: { className: string }) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n if (!store.contacts?.phone && !store.contacts?.email) return null;\n return (\n <div className={`store-footer__contacts ${className}`}>\n <SallaContacts\n contacts={store.contacts}\n contactsTitle={t('blocks.footer.social', 'Contact us')}\n isHeader\n />\n </div>\n );\n}\n\n/** Centered layout: logo, description, contacts, social, footer menu, trust\n * badges and app buttons stacked as one centered column. */\nfunction FooterCenteredBody({ inSheet, isDark }: { inSheet: boolean; isDark: boolean }) {\n return (\n <div className=\"container mx-auto flex max-w-2xl flex-col items-center gap-6 text-center\">\n <FooterLogo className=\"\" />\n <FooterDescription className=\"\" />\n <FooterContacts className=\"\" />\n <SallaSocial />\n\n <FooterLinksMenu\n inSheet={inSheet}\n className=\"store-footer__menu store-footer__menu--inline\"\n dark={isDark}\n />\n\n <FooterTrust dark={isDark} centered />\n\n <FooterApps className=\"flex flex-col items-center gap-3\" />\n </div>\n );\n}\n\n/** Columns layout: brand (logo / description / contacts / social / trust) and app\n * buttons side by side, with the footer menu as its own labeled column. */\nfunction FooterColumnsBody({ inSheet, isDark }: { inSheet: boolean; isDark: boolean }) {\n const { t } = useTranslation();\n\n return (\n <div className=\"container grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-4 lg:gap-16\">\n <div className=\"store-footer__brand rtl:lg:pl-16 ltr:lg:pr-16 sm:col-span-2\">\n <FooterLogo className=\"mb-5\" />\n <FooterDescription className=\"max-w-sm leading-6 my-5\" />\n <FooterContacts className=\"mb-6\" />\n <SallaSocial className=\"block mb-6\" />\n <FooterTrust dark={isDark} centered={false} />\n </div>\n\n <FooterLinksMenu\n inSheet={inSheet}\n className=\"store-footer__menu store-footer__menu--stacked\"\n heading={t('blocks.footer.important_links', 'Important links')}\n dark={isDark}\n />\n\n <FooterApps className=\"\" />\n </div>\n );\n}\n\nexport interface FooterProps {\n /**\n * Renders as a plain `<div>` (no second `<footer>` landmark) with the\n * `footer:start` / `footer:end` hook slots skipped -- for a theme that\n * repeats these widgets somewhere other than the page's own footer (a\n * mobile sheet, for example) rather than rendering the real page footer a\n * second time.\n */\n inSheet?: boolean;\n}\n\n/**\n * Storefront footer.\n *\n * Two layouts, chosen by the `footer_layout` theme setting:\n * - **columns** (default): logo / description / social / trust badges, the\n * footer menu (\"important links\"), and app-store buttons, side by side.\n * - **centered**: the same pieces stacked as one centered column, with the\n * footer menu laid out as an inline, pipe-separated row.\n *\n * Styling for the handful of pieces rendered by web components this owns no\n * markup for (`<salla-social>`'s `.social-link` icons, `<salla-menu>`'s\n * `.s-menu-footer-item` rows, `<salla-payments>`'s `.s-payments-list-item`\n * icons) is the consuming theme's own responsibility, the same way\n * `inSheet`'s own presentation is -- this component owns structure and data,\n * not every pixel.\n */\nexport function Footer({ inSheet = false }: FooterProps = {}) {\n const { store, theme } = useTwilight();\n const { t } = useTranslation();\n const year = new Date().getFullYear();\n const isCentered = theme.settings?.footer_layout === 'centered';\n const isDark = !!theme.settings?.footer_is_dark;\n\n const Root = inSheet ? 'div' : 'footer';\n\n return (\n <Root\n className={`store-footer store-footer--${isCentered ? 'centered' : 'columns'}${\n inSheet ? ' store-footer--sheet' : ''\n } relative mt-8 sm:mt-16 ${isDark ? 'bg-[#0E0F0F] text-white' : 'bg-[#F4F7F2] text-gray-600'}`}\n suppressHydrationWarning\n >\n {!inSheet && <HookSlot name=\"footer:start\" />}\n\n <div\n aria-label=\"footer\"\n className={`store-footer__inner border-b py-8 lg:py-16 ${\n isDark ? 'bg-[#1D1F1F] border-dashed border-white/10' : 'bg-transparent border-gray-200'\n }`}\n >\n {isCentered ? (\n <FooterCenteredBody inSheet={inSheet} isDark={isDark} />\n ) : (\n <FooterColumnsBody inSheet={inSheet} isDark={isDark} />\n )}\n </div>\n\n <div className=\"store-footer__bottom container md:flex items-center justify-between gap-4 py-4 lg:py-7 text-center\">\n <span className={`text-sm copyright-text ${isDark ? 'text-gray-400' : 'text-gray-700'}`}>\n <HookSlot\n name=\"copyright\"\n context={{ storeName: store.name }}\n fallback={\n <>\n {t('blocks.footer.copyright', 'All rights reserved')}{' '}\n <Link to=\"/\" className=\"transition-opacity hover:opacity-75 hover:text-primary\">\n {store.name}\n </Link>{' '}\n © {year}\n </>\n }\n />\n </span>\n\n <SallaPayments />\n </div>\n\n {!inSheet && <HookSlot name=\"footer:end\" />}\n </Root>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { LazyCartItem as CartItem, LazyCartSummary as CartSummary, LazySeoCartWidget as SeoCartWidget } from '../../chunk-7NX7WQZV.js';
1
+ export { LazyCartItem as CartItem, LazyCartSummary as CartSummary, LazySeoCartWidget as SeoCartWidget } from '../../chunk-YSDVA32V.js';
2
2
  import '../../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { BlogSkeleton, LazyBreadcrumb as Breadcrumb, BreadcrumbSkeleton, LazyCurrencySymbol as CurrencySymbol, CustomerLayoutSkeleton, CustomerPageSkeleton, DeferredData, LazyErrorPage as ErrorPage, Image, LazyNoContent as NoContent, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, LazyRenderWhenVisible as RenderWhenVisible, SkeletonPulse, resolveDeferred } from '../../chunk-WFTIOIAU.js';
1
+ export { BlogSkeleton, LazyBreadcrumb as Breadcrumb, BreadcrumbSkeleton, LazyCurrencySymbol as CurrencySymbol, CustomerLayoutSkeleton, CustomerPageSkeleton, DeferredData, LazyErrorPage as ErrorPage, Image, LazyNoContent as NoContent, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, LazyRenderWhenVisible as RenderWhenVisible, SkeletonPulse, resolveDeferred } from '../../chunk-MUMKFUFU.js';
2
2
  export { Link } from '../../chunk-AXW67SY7.js';
3
3
  import '../../chunk-BYMOPN2S.js';
4
4
  import '../../chunk-SKLEJJ6M.js';
@@ -1,10 +1,10 @@
1
1
  export { Drawer } from '../../chunk-6TKIUG5C.js';
2
- import '../../chunk-ZO2YNOKD.js';
3
- import '../../chunk-FWDMLFHA.js';
4
- import '../../chunk-DU7DPW24.js';
2
+ import '../../chunk-GVUQWKN7.js';
3
+ import '../../chunk-P3UGJTCD.js';
4
+ import '../../chunk-Z3GG5IPZ.js';
5
5
  import '../../chunk-ZEGNYJOR.js';
6
6
  import '../../chunk-RV54D2D7.js';
7
- import '../../chunk-COJH52VR.js';
7
+ import '../../chunk-ENJIX7HX.js';
8
8
  import '../../chunk-N45X7D55.js';
9
9
  import '../../chunk-IU4KTCS3.js';
10
10
  import '../../chunk-VVZNW5CB.js';
@@ -34,7 +34,7 @@ import '../../chunk-5XDPAKF5.js';
34
34
  import '../../chunk-GCPEMNSU.js';
35
35
  import '../../chunk-6EQ7G3SZ.js';
36
36
  import '../../chunk-TYNZ5B2B.js';
37
- import '../../chunk-WFTIOIAU.js';
37
+ import '../../chunk-MUMKFUFU.js';
38
38
  import '../../chunk-AXW67SY7.js';
39
39
  import '../../chunk-BYMOPN2S.js';
40
40
  import '../../chunk-SKLEJJ6M.js';
@@ -1,14 +1,14 @@
1
- export { BundleComponent, ComponentErrorBoundary, DefaultHomeComponents, FeaturedProductsStyle1, FeaturedProductsStyle2, FeaturedProductsStyle3, FixedBanner, FixedProducts, HomeComponentRenderer, PageBlocks, ParallaxBackground, PhotosSlider, ProductsSlider, ReorderProducts, SquarePhotos, StoreFeatures, LazyTestimonials as Testimonials, Youtube, registerHomeComponentConfig, registerHomeComponents, useReorderButtons } from '../../chunk-ZLMWC7FK.js';
1
+ export { BundleComponent, ComponentErrorBoundary, DefaultHomeComponents, FeaturedProductsStyle1, FeaturedProductsStyle2, FeaturedProductsStyle3, FixedBanner, FixedProducts, HomeComponentRenderer, PageBlocks, ParallaxBackground, PhotosSlider, ProductsSlider, ReorderProducts, SquarePhotos, StoreFeatures, LazyTestimonials as Testimonials, Youtube, registerHomeComponentConfig, registerHomeComponents, useReorderButtons } from '../../chunk-5MCXRXH7.js';
2
2
  import '../../chunk-7WTUA4WY.js';
3
3
  import '../../chunk-56T47K7P.js';
4
- import '../../chunk-T4NKWFRV.js';
4
+ import '../../chunk-SXMH2VZ4.js';
5
5
  import '../../chunk-Y32RHCOH.js';
6
- import '../../chunk-ZO2YNOKD.js';
7
- import '../../chunk-FWDMLFHA.js';
8
- import '../../chunk-DU7DPW24.js';
6
+ import '../../chunk-GVUQWKN7.js';
7
+ import '../../chunk-P3UGJTCD.js';
8
+ import '../../chunk-Z3GG5IPZ.js';
9
9
  import '../../chunk-ZEGNYJOR.js';
10
10
  import '../../chunk-RV54D2D7.js';
11
- import '../../chunk-COJH52VR.js';
11
+ import '../../chunk-ENJIX7HX.js';
12
12
  import '../../chunk-N45X7D55.js';
13
13
  import '../../chunk-IU4KTCS3.js';
14
14
  import '../../chunk-VVZNW5CB.js';
@@ -38,7 +38,7 @@ import '../../chunk-5XDPAKF5.js';
38
38
  import '../../chunk-GCPEMNSU.js';
39
39
  import '../../chunk-6EQ7G3SZ.js';
40
40
  import '../../chunk-TYNZ5B2B.js';
41
- import '../../chunk-WFTIOIAU.js';
41
+ import '../../chunk-MUMKFUFU.js';
42
42
  import '../../chunk-AXW67SY7.js';
43
43
  import '../../chunk-BYMOPN2S.js';
44
44
  import '../../chunk-SKLEJJ6M.js';
@@ -1,4 +1,4 @@
1
- export { LazyCopyright as Copyright, LazyCustomerLayout as CustomerLayout, LazyFooter as Footer, LazyHeader as Header, LazyMasterLayout as MasterLayout, LazyWidgetHead as WidgetHead } from '../../chunk-JFV33YI3.js';
1
+ export { LazyCopyright as Copyright, LazyCustomerLayout as CustomerLayout, LazyFooter as Footer, LazyHeader as Header, LazyMasterLayout as MasterLayout, LazyWidgetHead as WidgetHead } from '../../chunk-54UKM5VQ.js';
2
2
  export { PageAdvertisements } from '../../chunk-BPL5H33B.js';
3
3
  export { pushEqualHeightConfig } from '../../chunk-V2ZDTY6H.js';
4
4
  import '../../chunk-VWVCSD3N.js';
@@ -1,11 +1,11 @@
1
- export { LazyAddToCartForm as AddToCartForm, ProductCard, LazyProductDetails as ProductDetails, ProductGallery } from '../../chunk-T4NKWFRV.js';
1
+ export { LazyAddToCartForm as AddToCartForm, ProductCard, LazyProductDetails as ProductDetails, ProductGallery } from '../../chunk-SXMH2VZ4.js';
2
2
  import '../../chunk-Y32RHCOH.js';
3
- import '../../chunk-ZO2YNOKD.js';
4
- import '../../chunk-FWDMLFHA.js';
5
- import '../../chunk-DU7DPW24.js';
3
+ import '../../chunk-GVUQWKN7.js';
4
+ import '../../chunk-P3UGJTCD.js';
5
+ import '../../chunk-Z3GG5IPZ.js';
6
6
  import '../../chunk-ZEGNYJOR.js';
7
7
  import '../../chunk-RV54D2D7.js';
8
- import '../../chunk-COJH52VR.js';
8
+ import '../../chunk-ENJIX7HX.js';
9
9
  import '../../chunk-N45X7D55.js';
10
10
  import '../../chunk-IU4KTCS3.js';
11
11
  import '../../chunk-VVZNW5CB.js';
@@ -35,7 +35,7 @@ import '../../chunk-5XDPAKF5.js';
35
35
  import '../../chunk-GCPEMNSU.js';
36
36
  import '../../chunk-6EQ7G3SZ.js';
37
37
  import '../../chunk-TYNZ5B2B.js';
38
- import '../../chunk-WFTIOIAU.js';
38
+ import '../../chunk-MUMKFUFU.js';
39
39
  import '../../chunk-AXW67SY7.js';
40
40
  import '../../chunk-BYMOPN2S.js';
41
41
  import '../../chunk-SKLEJJ6M.js';
@@ -1,10 +1,10 @@
1
- export { StoreClosedNotification } from '../../chunk-B3PLEYMH.js';
2
- import '../../chunk-ZO2YNOKD.js';
3
- import '../../chunk-FWDMLFHA.js';
4
- import '../../chunk-DU7DPW24.js';
1
+ export { StoreClosedNotification } from '../../chunk-AY4NP66G.js';
2
+ import '../../chunk-GVUQWKN7.js';
3
+ import '../../chunk-P3UGJTCD.js';
4
+ import '../../chunk-Z3GG5IPZ.js';
5
5
  import '../../chunk-ZEGNYJOR.js';
6
6
  import '../../chunk-RV54D2D7.js';
7
- import '../../chunk-COJH52VR.js';
7
+ import '../../chunk-ENJIX7HX.js';
8
8
  import '../../chunk-N45X7D55.js';
9
9
  import '../../chunk-IU4KTCS3.js';
10
10
  import '../../chunk-VVZNW5CB.js';
@@ -34,7 +34,7 @@ import '../../chunk-5XDPAKF5.js';
34
34
  import '../../chunk-GCPEMNSU.js';
35
35
  import '../../chunk-6EQ7G3SZ.js';
36
36
  import '../../chunk-TYNZ5B2B.js';
37
- import '../../chunk-WFTIOIAU.js';
37
+ import '../../chunk-MUMKFUFU.js';
38
38
  import '../../chunk-AXW67SY7.js';
39
39
  import '../../chunk-BYMOPN2S.js';
40
40
  import '../../chunk-SKLEJJ6M.js';
@@ -53,7 +53,7 @@ import '../../chunk-DGUM43GV.js';
53
53
  import { lazy } from 'react';
54
54
 
55
55
  var LazyStoreClosedNotification = lazy(
56
- () => import('../../StoreClosedNotification-E4TDZXRU.js').then((m) => ({
56
+ () => import('../../StoreClosedNotification-Z42CRUO3.js').then((m) => ({
57
57
  default: m.StoreClosedNotification
58
58
  }))
59
59
  );
@@ -98,6 +98,14 @@ export declare const useDevSettingsOverrides: () => DevPreviewState;
98
98
  export type DevHomeBlock<T> = T & {
99
99
  __dev_id?: string;
100
100
  };
101
+ /**
102
+ * Whether a list in a block's fields gained, lost or reordered items. Blocks
103
+ * often hand their items to a web component that takes them once when it
104
+ * starts (a slider moves its slides into its own track), so such a change
105
+ * never reaches the page until the block mounts again. Editing an item's
106
+ * values is not one: the nodes stay put and update in place.
107
+ */
108
+ export declare function listsReshaped(before: Record<string, unknown>, after: Record<string, unknown>): boolean;
101
109
  export declare const useDevHomeBlocks: <T extends {
102
110
  path?: string;
103
111
  }>(components: T[]) => DevHomeBlock<T>[];
@@ -1 +1 @@
1
- {"version":3,"file":"dev-settings-store.d.ts","sourceRoot":"","sources":["../../src/dev/dev-settings-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAClE,KAAK,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC;AA8BtC,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,uEAAuE;IACvE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC;AAkVD,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAkBD,eAAO,MAAM,gBAAgB;eAClB,eAAe;IACxB,qEAAqE;qBACtD,eAAe;wBACV,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C,mFAAmF;mBACpE,SAAS,GAAG,IAAI;eAQpB,IAAI;mBAGA,MAAM,SAAS,OAAO,GAAG,IAAI;IAI5C,yFAAyF;0BACnE,SAAS,GAAG,IAAI;IAMtC,uEAAuE;2BAChD,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,IAAI;IAOvD,mIAAmI;0BAC7G,UAAU,GAAG,IAAI,GAAG,IAAI;IAK9C,mEAAmE;yBAC9C,IAAI;IAGzB;;;;OAIG;mBACY,eAAe,SAAS,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAaxE,8DAA8D;sBAC5C,MAAM,GAAG,IAAI;mBAGlB,aAAa;4BACF,MAAM,IAAI,GAAG,MAAM,IAAI;IAU/C;;;;OAIG;4BACqB,SAAS,GAAG,IAAI;wBAYpB,IAAI;IAGxB,sCAAsC;mBACvB,IAAI;IAGnB,+FAA+F;qBAC9E,SAAS,QAAQ,MAAM,OAAO,MAAM,GAAG,MAAM;oBAS9C,MAAM,GAAG,IAAI;uBAGV,MAAM,GAAG,IAAI;IAQhC,gEAAgE;kBAClD,MAAM,MAAM,MAAM,GAAG,IAAI;sBAYrB,MAAM,WAAW,MAAM,SAAS,OAAO,GAAG,IAAI;CAOjE,CAAC;AAIF,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,aAAa,CAMhD;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,IAAI,eAAe,CAMrD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,eAEf,CAAC;AAE9B,iFAAiF;AACjF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAyBxD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC"}
1
+ {"version":3,"file":"dev-settings-store.d.ts","sourceRoot":"","sources":["../../src/dev/dev-settings-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAClE,KAAK,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC;AA8BtC,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,uEAAuE;IACvE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC;AAkVD,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAkBD,eAAO,MAAM,gBAAgB;eAClB,eAAe;IACxB,qEAAqE;qBACtD,eAAe;wBACV,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C,mFAAmF;mBACpE,SAAS,GAAG,IAAI;eAQpB,IAAI;mBAGA,MAAM,SAAS,OAAO,GAAG,IAAI;IAI5C,yFAAyF;0BACnE,SAAS,GAAG,IAAI;IAMtC,uEAAuE;2BAChD,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,IAAI;IAOvD,mIAAmI;0BAC7G,UAAU,GAAG,IAAI,GAAG,IAAI;IAK9C,mEAAmE;yBAC9C,IAAI;IAGzB;;;;OAIG;mBACY,eAAe,SAAS,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAaxE,8DAA8D;sBAC5C,MAAM,GAAG,IAAI;mBAGlB,aAAa;4BACF,MAAM,IAAI,GAAG,MAAM,IAAI;IAU/C;;;;OAIG;4BACqB,SAAS,GAAG,IAAI;wBAYpB,IAAI;IAGxB,sCAAsC;mBACvB,IAAI;IAGnB,+FAA+F;qBAC9E,SAAS,QAAQ,MAAM,OAAO,MAAM,GAAG,MAAM;oBAS9C,MAAM,GAAG,IAAI;uBAGV,MAAM,GAAG,IAAI;IAQhC,gEAAgE;kBAClD,MAAM,MAAM,MAAM,GAAG,IAAI;sBAYrB,MAAM,WAAW,MAAM,SAAS,OAAO,GAAG,IAAI;CAOjE,CAAC;AAIF,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,aAAa,CAMhD;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,IAAI,eAAe,CAMrD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,eAEf,CAAC;AAE9B,iFAAiF;AACjF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAYT;AAiCD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useDevEditorMeta, devSettingsStore, useDevSettingsState, blockPath } from '../../chunk-COJH52VR.js';
1
+ import { useDevEditorMeta, devSettingsStore, useDevSettingsState, blockPath } from '../../chunk-ENJIX7HX.js';
2
2
  import { conditionsMet, DEV_EDITOR_FRAME_ATTR, DEV_PREVIEW_IMAGE_MAX_BYTES, DEV_PREVIEW_IMAGE_ENDPOINT } from '../../chunk-N45X7D55.js';
3
3
  import '../../chunk-FO4WVGUQ.js';
4
4
  import '../../chunk-N2S25NXP.js';
package/dist/dev/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useDevSettingsState } from '../chunk-COJH52VR.js';
1
+ import { useDevSettingsState } from '../chunk-ENJIX7HX.js';
2
2
  import { isEditorFrame, DEV_EDITOR_PATH } from '../chunk-N45X7D55.js';
3
3
  import '../chunk-FO4WVGUQ.js';
4
4
  import '../chunk-N2S25NXP.js';
@@ -1,4 +1,4 @@
1
- export { RouteDocumentSync, TanStackDocumentSync, tanstackDocumentAdapter, useTanstackDocumentAttrs } from './chunk-KSUB7BS5.js';
1
+ export { RouteDocumentSync, TanStackDocumentSync, tanstackDocumentAdapter, useTanstackDocumentAttrs } from './chunk-64WXD4HL.js';
2
2
  import './chunk-Z4Y55HWX.js';
3
3
  import './chunk-N2A72R2I.js';
4
4
  import './chunk-TIPR4JUO.js';
@@ -25,5 +25,5 @@ import './chunk-N2S25NXP.js';
25
25
  import './chunk-T72DAX7R.js';
26
26
  import './chunk-DF6FBKDN.js';
27
27
  import './chunk-DGUM43GV.js';
28
- //# sourceMappingURL=document-class-G2ELKHZ4.js.map
29
- //# sourceMappingURL=document-class-G2ELKHZ4.js.map
28
+ //# sourceMappingURL=document-class-WH3FK7JA.js.map
29
+ //# sourceMappingURL=document-class-WH3FK7JA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-G2ELKHZ4.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-WH3FK7JA.js"}
@@ -1,9 +1,9 @@
1
- export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-ZO2YNOKD.js';
2
- import '../chunk-FWDMLFHA.js';
3
- import '../chunk-DU7DPW24.js';
1
+ export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-GVUQWKN7.js';
2
+ import '../chunk-P3UGJTCD.js';
3
+ import '../chunk-Z3GG5IPZ.js';
4
4
  import '../chunk-ZEGNYJOR.js';
5
5
  import '../chunk-RV54D2D7.js';
6
- import '../chunk-COJH52VR.js';
6
+ import '../chunk-ENJIX7HX.js';
7
7
  import '../chunk-N45X7D55.js';
8
8
  import '../chunk-IU4KTCS3.js';
9
9
  import '../chunk-VVZNW5CB.js';
@@ -33,7 +33,7 @@ export { HookSlot, useIsClient } from '../chunk-5XDPAKF5.js';
33
33
  export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GCPEMNSU.js';
34
34
  import '../chunk-6EQ7G3SZ.js';
35
35
  import '../chunk-TYNZ5B2B.js';
36
- import '../chunk-WFTIOIAU.js';
36
+ import '../chunk-MUMKFUFU.js';
37
37
  import '../chunk-AXW67SY7.js';
38
38
  import '../chunk-BYMOPN2S.js';
39
39
  import '../chunk-SKLEJJ6M.js';
@@ -1,9 +1,9 @@
1
- export { useGtm } from '../chunk-ZO2YNOKD.js';
2
- import '../chunk-FWDMLFHA.js';
3
- import '../chunk-DU7DPW24.js';
1
+ export { useGtm } from '../chunk-GVUQWKN7.js';
2
+ import '../chunk-P3UGJTCD.js';
3
+ import '../chunk-Z3GG5IPZ.js';
4
4
  import '../chunk-ZEGNYJOR.js';
5
5
  import '../chunk-RV54D2D7.js';
6
- import '../chunk-COJH52VR.js';
6
+ import '../chunk-ENJIX7HX.js';
7
7
  import '../chunk-N45X7D55.js';
8
8
  import '../chunk-IU4KTCS3.js';
9
9
  import '../chunk-VVZNW5CB.js';
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
33
33
  import '../chunk-GCPEMNSU.js';
34
34
  import '../chunk-6EQ7G3SZ.js';
35
35
  import '../chunk-TYNZ5B2B.js';
36
- import '../chunk-WFTIOIAU.js';
36
+ import '../chunk-MUMKFUFU.js';
37
37
  import '../chunk-AXW67SY7.js';
38
38
  import '../chunk-BYMOPN2S.js';
39
39
  import '../chunk-SKLEJJ6M.js';
@@ -1,9 +1,9 @@
1
- export { useMoney } from '../chunk-ZO2YNOKD.js';
2
- import '../chunk-FWDMLFHA.js';
3
- import '../chunk-DU7DPW24.js';
1
+ export { useMoney } from '../chunk-GVUQWKN7.js';
2
+ import '../chunk-P3UGJTCD.js';
3
+ import '../chunk-Z3GG5IPZ.js';
4
4
  import '../chunk-ZEGNYJOR.js';
5
5
  import '../chunk-RV54D2D7.js';
6
- import '../chunk-COJH52VR.js';
6
+ import '../chunk-ENJIX7HX.js';
7
7
  import '../chunk-N45X7D55.js';
8
8
  import '../chunk-IU4KTCS3.js';
9
9
  import '../chunk-VVZNW5CB.js';
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
33
33
  import '../chunk-GCPEMNSU.js';
34
34
  import '../chunk-6EQ7G3SZ.js';
35
35
  import '../chunk-TYNZ5B2B.js';
36
- import '../chunk-WFTIOIAU.js';
36
+ import '../chunk-MUMKFUFU.js';
37
37
  import '../chunk-AXW67SY7.js';
38
38
  import '../chunk-BYMOPN2S.js';
39
39
  import '../chunk-SKLEJJ6M.js';
@@ -1,9 +1,9 @@
1
- export { useStore } from '../chunk-ZO2YNOKD.js';
2
- import '../chunk-FWDMLFHA.js';
3
- import '../chunk-DU7DPW24.js';
1
+ export { useStore } from '../chunk-GVUQWKN7.js';
2
+ import '../chunk-P3UGJTCD.js';
3
+ import '../chunk-Z3GG5IPZ.js';
4
4
  import '../chunk-ZEGNYJOR.js';
5
5
  import '../chunk-RV54D2D7.js';
6
- import '../chunk-COJH52VR.js';
6
+ import '../chunk-ENJIX7HX.js';
7
7
  import '../chunk-N45X7D55.js';
8
8
  import '../chunk-IU4KTCS3.js';
9
9
  import '../chunk-VVZNW5CB.js';
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
33
33
  import '../chunk-GCPEMNSU.js';
34
34
  import '../chunk-6EQ7G3SZ.js';
35
35
  import '../chunk-TYNZ5B2B.js';
36
- import '../chunk-WFTIOIAU.js';
36
+ import '../chunk-MUMKFUFU.js';
37
37
  import '../chunk-AXW67SY7.js';
38
38
  import '../chunk-BYMOPN2S.js';
39
39
  import '../chunk-SKLEJJ6M.js';
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { registry } from './chunk-Y32RHCOH.js';
2
2
  export { ComponentRegistry, registry } from './chunk-Y32RHCOH.js';
3
- export { TwilightProvider } from './chunk-ZO2YNOKD.js';
4
- import './chunk-FWDMLFHA.js';
5
- import './chunk-DU7DPW24.js';
3
+ export { TwilightProvider } from './chunk-GVUQWKN7.js';
4
+ import './chunk-P3UGJTCD.js';
5
+ import './chunk-Z3GG5IPZ.js';
6
6
  import './chunk-ZEGNYJOR.js';
7
7
  import './chunk-RV54D2D7.js';
8
- import './chunk-COJH52VR.js';
8
+ import './chunk-ENJIX7HX.js';
9
9
  import './chunk-N45X7D55.js';
10
10
  import './chunk-IU4KTCS3.js';
11
11
  import './chunk-VVZNW5CB.js';
@@ -35,7 +35,7 @@ import './chunk-5XDPAKF5.js';
35
35
  import './chunk-GCPEMNSU.js';
36
36
  import './chunk-6EQ7G3SZ.js';
37
37
  import './chunk-TYNZ5B2B.js';
38
- import './chunk-WFTIOIAU.js';
38
+ import './chunk-MUMKFUFU.js';
39
39
  import './chunk-AXW67SY7.js';
40
40
  import './chunk-BYMOPN2S.js';
41
41
  import './chunk-SKLEJJ6M.js';
@@ -1,10 +1,10 @@
1
1
  import { product } from './chunk-56T47K7P.js';
2
- import './chunk-ZO2YNOKD.js';
3
- import './chunk-FWDMLFHA.js';
4
- import './chunk-DU7DPW24.js';
2
+ import './chunk-GVUQWKN7.js';
3
+ import './chunk-P3UGJTCD.js';
4
+ import './chunk-Z3GG5IPZ.js';
5
5
  import './chunk-ZEGNYJOR.js';
6
6
  import './chunk-RV54D2D7.js';
7
- import './chunk-COJH52VR.js';
7
+ import './chunk-ENJIX7HX.js';
8
8
  import './chunk-N45X7D55.js';
9
9
  import './chunk-IU4KTCS3.js';
10
10
  import './chunk-VVZNW5CB.js';
@@ -34,7 +34,7 @@ import { HookSlot } from './chunk-5XDPAKF5.js';
34
34
  import './chunk-GCPEMNSU.js';
35
35
  import './chunk-6EQ7G3SZ.js';
36
36
  import { useTranslation } from './chunk-TYNZ5B2B.js';
37
- import { LazyErrorPage } from './chunk-WFTIOIAU.js';
37
+ import { LazyErrorPage } from './chunk-MUMKFUFU.js';
38
38
  import './chunk-AXW67SY7.js';
39
39
  import './chunk-BYMOPN2S.js';
40
40
  import './chunk-SKLEJJ6M.js';
@@ -151,5 +151,5 @@ function NotFoundPage(props = {}) {
151
151
  }
152
152
 
153
153
  export { NotFoundPage };
154
- //# sourceMappingURL=not-found-SHQTUQ64.js.map
155
- //# sourceMappingURL=not-found-SHQTUQ64.js.map
154
+ //# sourceMappingURL=not-found-CAGWYUA4.js.map
155
+ //# sourceMappingURL=not-found-CAGWYUA4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-SHQTUQ64.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** A product URL in the stores' \"new URLs\" format: `{sku}-{name}`, or `p{id}-{name}` without a SKU. */\nconst PRODUCT_KEY = /^([0-9A-Za-z]+)-./;\n\n/** The `{sku}` or `p{id}` key of `/{locale}/{sku}-{name}` or `/{sku}-{name}`, with that locale. */\nexport function parseProductKeyPath(pathname: string): { key: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n const hasLocale = segments.length === 2 && isLocale(segments[0]);\n if (!hasLocale && (segments.length !== 1 || isLocale(segments[0]))) return null;\n const key = segments[segments.length - 1].match(PRODUCT_KEY)?.[1];\n if (!key) return null;\n return hasLocale ? { key, locale: segments[0] } : { key };\n}\n\nfunction productKeyOf(url: string | undefined): string | undefined {\n try {\n const last = new URL(url ?? '').pathname.split('/').filter(Boolean).pop() ?? '';\n return last.match(PRODUCT_KEY)?.[1];\n } catch {\n return undefined;\n }\n}\n\n/** Like Laravel: `p{id}` is the id; anything else is a SKU, which only search can find. */\nasync function findByProductKey(key: string): Promise<number | null> {\n const id = key.match(/^p(\\d+)$/)?.[1];\n if (id) return Number(id);\n const { items } = await product.list({ source: 'search', keyword: key, perPage: 50 });\n const found = items.find((item) => productKeyOf(item.url) === key);\n return found ? Number(found.id) : null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product URL that matched no route, a short link (`/ar/lvXvzln`) or\n * a \"new URLs\" one (`/ar/1213asa-chocolate`), and replaces the URL with the\n * product's page. Returns `true` while a lookup is in flight (so the 404 isn't\n * flashed); settles to `false` when the path is neither or doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const shortLink = parseShortLinkPath(pathname);\n const productKey = parseProductKeyPath(pathname);\n const lookup = shortLink?.code ?? productKey?.key;\n const locale = shortLink?.locale ?? productKey?.locale;\n const isShortLink = !!shortLink;\n const [failed, setFailed] = useState<string | null>(null);\n\n useEffect(() => {\n if (!lookup) return;\n let cancelled = false;\n const productPath = isShortLink\n ? product\n .find(lookup)\n .then((found) => (found?.id ? `${slugFromProductUrl(found.url)}/p${found.id}` : null))\n : findByProductKey(lookup).then((id) => (id ? `-/p${id}` : null));\n productPath\n .then((path) => {\n if (cancelled) return;\n if (!path) return setFailed(lookup);\n navigate(`${locale ? `/${locale}` : ''}/${path}`, { replace: true });\n })\n .catch(() => !cancelled && setFailed(lookup));\n return () => {\n cancelled = true;\n };\n }, [lookup, isShortLink, locale, navigate]);\n\n return !!lookup && failed !== lookup;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) or \"new URLs\" link (`/ar/1213asa-name`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-CAGWYUA4.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** A product URL in the stores' \"new URLs\" format: `{sku}-{name}`, or `p{id}-{name}` without a SKU. */\nconst PRODUCT_KEY = /^([0-9A-Za-z]+)-./;\n\n/** The `{sku}` or `p{id}` key of `/{locale}/{sku}-{name}` or `/{sku}-{name}`, with that locale. */\nexport function parseProductKeyPath(pathname: string): { key: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n const hasLocale = segments.length === 2 && isLocale(segments[0]);\n if (!hasLocale && (segments.length !== 1 || isLocale(segments[0]))) return null;\n const key = segments[segments.length - 1].match(PRODUCT_KEY)?.[1];\n if (!key) return null;\n return hasLocale ? { key, locale: segments[0] } : { key };\n}\n\nfunction productKeyOf(url: string | undefined): string | undefined {\n try {\n const last = new URL(url ?? '').pathname.split('/').filter(Boolean).pop() ?? '';\n return last.match(PRODUCT_KEY)?.[1];\n } catch {\n return undefined;\n }\n}\n\n/** Like Laravel: `p{id}` is the id; anything else is a SKU, which only search can find. */\nasync function findByProductKey(key: string): Promise<number | null> {\n const id = key.match(/^p(\\d+)$/)?.[1];\n if (id) return Number(id);\n const { items } = await product.list({ source: 'search', keyword: key, perPage: 50 });\n const found = items.find((item) => productKeyOf(item.url) === key);\n return found ? Number(found.id) : null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product URL that matched no route, a short link (`/ar/lvXvzln`) or\n * a \"new URLs\" one (`/ar/1213asa-chocolate`), and replaces the URL with the\n * product's page. Returns `true` while a lookup is in flight (so the 404 isn't\n * flashed); settles to `false` when the path is neither or doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const shortLink = parseShortLinkPath(pathname);\n const productKey = parseProductKeyPath(pathname);\n const lookup = shortLink?.code ?? productKey?.key;\n const locale = shortLink?.locale ?? productKey?.locale;\n const isShortLink = !!shortLink;\n const [failed, setFailed] = useState<string | null>(null);\n\n useEffect(() => {\n if (!lookup) return;\n let cancelled = false;\n const productPath = isShortLink\n ? product\n .find(lookup)\n .then((found) => (found?.id ? `${slugFromProductUrl(found.url)}/p${found.id}` : null))\n : findByProductKey(lookup).then((id) => (id ? `-/p${id}` : null));\n productPath\n .then((path) => {\n if (cancelled) return;\n if (!path) return setFailed(lookup);\n navigate(`${locale ? `/${locale}` : ''}/${path}`, { replace: true });\n })\n .catch(() => !cancelled && setFailed(lookup));\n return () => {\n cancelled = true;\n };\n }, [lookup, isShortLink, locale, navigate]);\n\n return !!lookup && failed !== lookup;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) or \"new URLs\" link (`/ar/1213asa-name`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
@@ -1,9 +1,9 @@
1
- export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-ZO2YNOKD.js';
2
- import '../chunk-FWDMLFHA.js';
3
- import '../chunk-DU7DPW24.js';
1
+ export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-GVUQWKN7.js';
2
+ import '../chunk-P3UGJTCD.js';
3
+ import '../chunk-Z3GG5IPZ.js';
4
4
  import '../chunk-ZEGNYJOR.js';
5
5
  import '../chunk-RV54D2D7.js';
6
- import '../chunk-COJH52VR.js';
6
+ import '../chunk-ENJIX7HX.js';
7
7
  import '../chunk-N45X7D55.js';
8
8
  import '../chunk-IU4KTCS3.js';
9
9
  import '../chunk-VVZNW5CB.js';
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
33
33
  import '../chunk-GCPEMNSU.js';
34
34
  import '../chunk-6EQ7G3SZ.js';
35
35
  import '../chunk-TYNZ5B2B.js';
36
- import '../chunk-WFTIOIAU.js';
36
+ import '../chunk-MUMKFUFU.js';
37
37
  import '../chunk-AXW67SY7.js';
38
38
  export { LinkProvider, LinkProviderError, createLinkWithAdapter, useLinkAdapter } from '../chunk-BYMOPN2S.js';
39
39
  import '../chunk-SKLEJJ6M.js';
@@ -1,4 +1,4 @@
1
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-B2CAINJ5.js';
1
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-JO6RSLLT.js';
2
2
  import '../../chunk-O7B5JL6H.js';
3
3
  import '../../chunk-4SZZPXM2.js';
4
4
  import '../../chunk-RWBTMHLR.js';
@@ -1,5 +1,5 @@
1
1
  import { wallet } from '../chunk-2FDLEB5J.js';
2
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-B2CAINJ5.js';
2
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-JO6RSLLT.js';
3
3
  import '../chunk-O7B5JL6H.js';
4
4
  import { notification } from '../chunk-D56TVNOG.js';
5
5
  import { wishlist } from '../chunk-OZP2FID7.js';
@@ -31,7 +31,7 @@ async function profileLoader(_ctx) {
31
31
 
32
32
  // src/routes/account/profile/index.tsx
33
33
  var LazyProfilePage = lazy(
34
- () => import('../ProfilePage-PHUCMTZM.js').then((m) => ({ default: m.ProfilePage }))
34
+ () => import('../ProfilePage-5DEGLPQR.js').then((m) => ({ default: m.ProfilePage }))
35
35
  );
36
36
  var ProfilePage = LazyProfilePage;
37
37
  var Profile = {
@@ -73,7 +73,7 @@ async function wishlistLoader(ctx) {
73
73
 
74
74
  // src/routes/account/wishlist/index.tsx
75
75
  var LazyWishlistPage = lazy(
76
- () => import('../WishlistPage-Y4SWSVSW.js').then((m) => ({ default: m.WishlistPage }))
76
+ () => import('../WishlistPage-CQFXEAQ4.js').then((m) => ({ default: m.WishlistPage }))
77
77
  );
78
78
  var WishlistPage = LazyWishlistPage;
79
79
  var Wishlist = {
@@ -115,7 +115,7 @@ async function walletLoader(ctx) {
115
115
  }
116
116
 
117
117
  // src/routes/account/wallet/index.tsx
118
- var LazyWalletPage = lazy(() => import('../WalletPage-6MNEILP7.js').then((m) => ({ default: m.WalletPage })));
118
+ var LazyWalletPage = lazy(() => import('../WalletPage-YEXHE45E.js').then((m) => ({ default: m.WalletPage })));
119
119
  var WalletPage = LazyWalletPage;
120
120
  var Wallet = {
121
121
  id: RouteId.CUSTOMER_WALLET,
@@ -151,7 +151,7 @@ async function notificationsLoader(_ctx) {
151
151
 
152
152
  // src/routes/account/notifications/index.tsx
153
153
  var LazyNotificationsPage = lazy(
154
- () => import('../NotificationsPage-6MYANSOO.js').then((m) => ({ default: m.NotificationsPage }))
154
+ () => import('../NotificationsPage-ZX5HQHNE.js').then((m) => ({ default: m.NotificationsPage }))
155
155
  );
156
156
  var NotificationsPage = LazyNotificationsPage;
157
157
  var Notifications = {
@@ -184,7 +184,7 @@ async function settingsLoader(_ctx) {
184
184
 
185
185
  // src/routes/account/settings/index.tsx
186
186
  var LazySettingsPage = lazy(
187
- () => import('../SettingsPage-ICM7J5CT.js').then((m) => ({ default: m.SettingsPage }))
187
+ () => import('../SettingsPage-IX7IV64A.js').then((m) => ({ default: m.SettingsPage }))
188
188
  );
189
189
  var SettingsPage = LazySettingsPage;
190
190
  var Settings = {