@salla.sa/twilight-theme-engine 1.0.129 → 1.0.131
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.
- package/dist/{AddToCartForm-I2SZGGZK.js → AddToCartForm-S73TIRFL.js} +3 -3
- package/dist/{AddToCartForm-I2SZGGZK.js.map → AddToCartForm-S73TIRFL.js.map} +1 -1
- package/dist/{BlogAuthorPage-JHZHLSIA.js → BlogAuthorPage-ISOONUBI.js} +19 -18
- package/dist/BlogAuthorPage-ISOONUBI.js.map +1 -0
- package/dist/{BlogCategoryPage-F4264MQG.js → BlogCategoryPage-3CEQWDB7.js} +19 -18
- package/dist/BlogCategoryPage-3CEQWDB7.js.map +1 -0
- package/dist/{BlogPage-3TELFUFM.js → BlogPage-AYYUM3GY.js} +17 -16
- package/dist/BlogPage-AYYUM3GY.js.map +1 -0
- package/dist/{BlogSinglePage-QBADHXXZ.js → BlogSinglePage-NH7RZVLA.js} +17 -16
- package/dist/BlogSinglePage-NH7RZVLA.js.map +1 -0
- package/dist/{BlogTagPage-WEP37KDY.js → BlogTagPage-LONJWWDW.js} +19 -18
- package/dist/BlogTagPage-LONJWWDW.js.map +1 -0
- package/dist/{BrandsPage-EENWKAIY.js → BrandsPage-DTV4FJBP.js} +18 -17
- package/dist/BrandsPage-DTV4FJBP.js.map +1 -0
- package/dist/{Breadcrumb-A2CNX5VU.js → Breadcrumb-JCEPGH5A.js} +17 -16
- package/dist/Breadcrumb-JCEPGH5A.js.map +1 -0
- package/dist/{CartItem-X7UB2GZG.js → CartItem-NTIU45BB.js} +17 -16
- package/dist/CartItem-NTIU45BB.js.map +1 -0
- package/dist/{CartSummary-EEJ3JO6E.js → CartSummary-GETYV24Q.js} +17 -16
- package/dist/CartSummary-GETYV24Q.js.map +1 -0
- package/dist/{Copyright-VGOFMMIR.js → Copyright-W7RY445F.js} +3 -3
- package/dist/{Copyright-VGOFMMIR.js.map → Copyright-W7RY445F.js.map} +1 -1
- package/dist/{CustomerLayout-2E6ENXOH.js → CustomerLayout-P5QZJDMR.js} +17 -16
- package/dist/CustomerLayout-P5QZJDMR.js.map +1 -0
- package/dist/{Footer-5L3YKKPB.js → Footer-GANB36WN.js} +4 -4
- package/dist/{Footer-5L3YKKPB.js.map → Footer-GANB36WN.js.map} +1 -1
- package/dist/{Header-KMURB263.js → Header-IZ3UWIEO.js} +8 -8
- package/dist/{Header-KMURB263.js.map → Header-IZ3UWIEO.js.map} +1 -1
- package/dist/{LiveEditorBar-DOSRO35J.js → LiveEditorBar-4AWOAJYX.js} +58 -9
- package/dist/LiveEditorBar-4AWOAJYX.js.map +1 -0
- package/dist/{LoyaltyPage-WI2SL6SR.js → LoyaltyPage-BNJO3BTK.js} +17 -16
- package/dist/LoyaltyPage-BNJO3BTK.js.map +1 -0
- package/dist/{LoyaltyPointsPage-RKGFGLL4.js → LoyaltyPointsPage-2OGOGII3.js} +6 -6
- package/dist/{LoyaltyPointsPage-RKGFGLL4.js.map → LoyaltyPointsPage-2OGOGII3.js.map} +1 -1
- package/dist/{MainMenu-VFI4SRRS.js → MainMenu-56OTUHET.js} +5 -5
- package/dist/{MainMenu-VFI4SRRS.js.map → MainMenu-56OTUHET.js.map} +1 -1
- package/dist/MaintenancePage-A7CNHM7B.js +7 -0
- package/dist/{MaintenancePage-7Y4QA5LD.js.map → MaintenancePage-A7CNHM7B.js.map} +1 -1
- package/dist/{MasterLayout-AZSOVNPR.js → MasterLayout-DWXUEODB.js} +17 -16
- package/dist/{MasterLayout-AZSOVNPR.js.map → MasterLayout-DWXUEODB.js.map} +1 -1
- package/dist/{MobileMenu-PRND3T3Z.js → MobileMenu-JJA7PHVS.js} +18 -17
- package/dist/MobileMenu-JJA7PHVS.js.map +1 -0
- package/dist/{NotificationsPage-VPCF5TNJ.js → NotificationsPage-L57HNZRC.js} +17 -16
- package/dist/NotificationsPage-L57HNZRC.js.map +1 -0
- package/dist/{OrderSinglePage-BIPGDSSI.js → OrderSinglePage-5FWWZ4TJ.js} +18 -17
- package/dist/OrderSinglePage-5FWWZ4TJ.js.map +1 -0
- package/dist/{OrdersPage-DTI5CYHH.js → OrdersPage-AE674QJO.js} +17 -16
- package/dist/OrdersPage-AE674QJO.js.map +1 -0
- package/dist/{PageSingle-VUKTKJKB.js → PageSingle-N5G42IIX.js} +3 -3
- package/dist/{PageSingle-VUKTKJKB.js.map → PageSingle-N5G42IIX.js.map} +1 -1
- package/dist/{ProductDetails-CUSUV3YF.js → ProductDetails-FWN3T7H7.js} +4 -4
- package/dist/{ProductDetails-CUSUV3YF.js.map → ProductDetails-FWN3T7H7.js.map} +1 -1
- package/dist/{ProfilePage-APTF4ZI3.js → ProfilePage-BXZJY55Z.js} +17 -16
- package/dist/ProfilePage-BXZJY55Z.js.map +1 -0
- package/dist/{ReviewsPage-Q5UUELM5.js → ReviewsPage-A7OXTEXY.js} +3 -3
- package/dist/{ReviewsPage-Q5UUELM5.js.map → ReviewsPage-A7OXTEXY.js.map} +1 -1
- package/dist/{SeoCartWidget-7BLWJVZ7.js → SeoCartWidget-N3MOUSW7.js} +17 -16
- package/dist/SeoCartWidget-N3MOUSW7.js.map +1 -0
- package/dist/{SettingsPage-I6STBZ2M.js → SettingsPage-DFHGU5OH.js} +17 -16
- package/dist/SettingsPage-DFHGU5OH.js.map +1 -0
- package/dist/{StoreClosedNotification-PNOFS2B5.js → StoreClosedNotification-GNSQYWDS.js} +18 -17
- package/dist/{StoreClosedNotification-PNOFS2B5.js.map → StoreClosedNotification-GNSQYWDS.js.map} +1 -1
- package/dist/{TestimonialsPage-S64KZKPY.js → TestimonialsPage-26OBKQAG.js} +3 -3
- package/dist/{TestimonialsPage-S64KZKPY.js.map → TestimonialsPage-26OBKQAG.js.map} +1 -1
- package/dist/{ThankYouPage-VGNCUZTV.js → ThankYouPage-7C3OC6P5.js} +17 -16
- package/dist/ThankYouPage-7C3OC6P5.js.map +1 -0
- package/dist/{WalletPage-MIXW2MTQ.js → WalletPage-RA354UQQ.js} +18 -17
- package/dist/WalletPage-RA354UQQ.js.map +1 -0
- package/dist/{WishlistPage-RVWSOXRC.js → WishlistPage-NTJW33VF.js} +19 -18
- package/dist/WishlistPage-NTJW33VF.js.map +1 -0
- package/dist/api/advertisement.js +2 -2
- package/dist/api/apps.js +2 -2
- package/dist/api/blog.js +3 -3
- package/dist/api/brands.js +3 -3
- package/dist/api/cart.js +3 -3
- package/dist/api/category.js +3 -3
- package/dist/api/client.js +1 -1
- package/dist/api/home.js +2 -2
- package/dist/api/loyalty.js +3 -3
- package/dist/api/menu.js +2 -2
- package/dist/api/notification.js +2 -2
- package/dist/api/order.js +3 -3
- package/dist/api/page.js +3 -3
- package/dist/api/product.js +3 -3
- package/dist/api/profile.js +1 -1
- package/dist/api/store.d.ts +8 -0
- package/dist/api/store.d.ts.map +1 -1
- package/dist/api/store.js +3 -2
- package/dist/api/translations.js +2 -2
- package/dist/api/user.js +2 -2
- package/dist/api/wallet.js +2 -2
- package/dist/api/wishlist.js +4 -4
- package/dist/{chunk-QPKK4LPK.js → chunk-2Z7XKCT3.js} +23 -4
- package/dist/chunk-2Z7XKCT3.js.map +1 -0
- package/dist/{chunk-KQEBYXYB.js → chunk-3CNXPHJE.js} +4 -69
- package/dist/chunk-3CNXPHJE.js.map +1 -0
- package/dist/{chunk-XX4L34QI.js → chunk-3FXRE7JW.js} +6 -6
- package/dist/{chunk-XX4L34QI.js.map → chunk-3FXRE7JW.js.map} +1 -1
- package/dist/{chunk-2SCIGF3L.js → chunk-4YYB4AUZ.js} +4 -4
- package/dist/{chunk-2SCIGF3L.js.map → chunk-4YYB4AUZ.js.map} +1 -1
- package/dist/{chunk-L75KAYY5.js → chunk-5LOWNXWH.js} +12 -11
- package/dist/chunk-5LOWNXWH.js.map +1 -0
- package/dist/{chunk-2M5BICJK.js → chunk-67XC4WLH.js} +4 -4
- package/dist/{chunk-2M5BICJK.js.map → chunk-67XC4WLH.js.map} +1 -1
- package/dist/{chunk-OOSLYT2L.js → chunk-6A42EQCV.js} +7 -7
- package/dist/{chunk-OOSLYT2L.js.map → chunk-6A42EQCV.js.map} +1 -1
- package/dist/{chunk-FFIONN5M.js → chunk-6S2SIUOD.js} +7 -7
- package/dist/{chunk-FFIONN5M.js.map → chunk-6S2SIUOD.js.map} +1 -1
- package/dist/{chunk-763YWRXT.js → chunk-77Z3U5JT.js} +3 -3
- package/dist/{chunk-763YWRXT.js.map → chunk-77Z3U5JT.js.map} +1 -1
- package/dist/{chunk-EMOLTV77.js → chunk-B3EKF5HJ.js} +4 -4
- package/dist/{chunk-EMOLTV77.js.map → chunk-B3EKF5HJ.js.map} +1 -1
- package/dist/{chunk-NOVJ3US5.js → chunk-CBYM3JIG.js} +3 -3
- package/dist/{chunk-NOVJ3US5.js.map → chunk-CBYM3JIG.js.map} +1 -1
- package/dist/{chunk-J5DGBS7Q.js → chunk-CKH6WBMA.js} +71 -7
- package/dist/chunk-CKH6WBMA.js.map +1 -0
- package/dist/{chunk-ASTCQSK6.js → chunk-CR3EY7K7.js} +3 -3
- package/dist/{chunk-ASTCQSK6.js.map → chunk-CR3EY7K7.js.map} +1 -1
- package/dist/{chunk-RPRZYRPX.js → chunk-DJHYJ2VY.js} +4 -4
- package/dist/{chunk-RPRZYRPX.js.map → chunk-DJHYJ2VY.js.map} +1 -1
- package/dist/{chunk-WOMGFBX5.js → chunk-DSJE2TS2.js} +4 -4
- package/dist/{chunk-WOMGFBX5.js.map → chunk-DSJE2TS2.js.map} +1 -1
- package/dist/{chunk-ZWOD67SV.js → chunk-EAKEYWYL.js} +3 -3
- package/dist/{chunk-ZWOD67SV.js.map → chunk-EAKEYWYL.js.map} +1 -1
- package/dist/{chunk-V4HOZSIW.js → chunk-ECMFNYPW.js} +3 -3
- package/dist/{chunk-V4HOZSIW.js.map → chunk-ECMFNYPW.js.map} +1 -1
- package/dist/chunk-FID76MUV.js +73 -0
- package/dist/chunk-FID76MUV.js.map +1 -0
- package/dist/{chunk-DEDX3AIO.js → chunk-FU52JCUN.js} +7 -7
- package/dist/{chunk-DEDX3AIO.js.map → chunk-FU52JCUN.js.map} +1 -1
- package/dist/{chunk-FBOWKMPX.js → chunk-GHACVKKD.js} +19 -18
- package/dist/chunk-GHACVKKD.js.map +1 -0
- package/dist/{chunk-FHAHE46U.js → chunk-H2QBHOF2.js} +2 -2
- package/dist/{chunk-FHAHE46U.js.map → chunk-H2QBHOF2.js.map} +1 -1
- package/dist/{chunk-RDMEIF2O.js → chunk-HCCSVECA.js} +4 -4
- package/dist/{chunk-RDMEIF2O.js.map → chunk-HCCSVECA.js.map} +1 -1
- package/dist/chunk-IXHM24Z4.js +28 -0
- package/dist/chunk-IXHM24Z4.js.map +1 -0
- package/dist/{chunk-VWZG5QKQ.js → chunk-J2OPSCWD.js} +3 -3
- package/dist/{chunk-VWZG5QKQ.js.map → chunk-J2OPSCWD.js.map} +1 -1
- package/dist/{chunk-QRFYOEZY.js → chunk-KSGBNVBQ.js} +3 -3
- package/dist/{chunk-QRFYOEZY.js.map → chunk-KSGBNVBQ.js.map} +1 -1
- package/dist/{chunk-AT3IL55G.js → chunk-MYW5QYWO.js} +3 -3
- package/dist/{chunk-AT3IL55G.js.map → chunk-MYW5QYWO.js.map} +1 -1
- package/dist/{chunk-6VBXPDXM.js → chunk-ONK7RUTK.js} +3 -3
- package/dist/{chunk-6VBXPDXM.js.map → chunk-ONK7RUTK.js.map} +1 -1
- package/dist/{chunk-747V3UL5.js → chunk-OSIFK62D.js} +3 -3
- package/dist/{chunk-747V3UL5.js.map → chunk-OSIFK62D.js.map} +1 -1
- package/dist/{chunk-6I2J6V3S.js → chunk-QT5YXTED.js} +3 -3
- package/dist/{chunk-6I2J6V3S.js.map → chunk-QT5YXTED.js.map} +1 -1
- package/dist/{chunk-D7IP4MVJ.js → chunk-R4CQNOSV.js} +27 -12
- package/dist/chunk-R4CQNOSV.js.map +1 -0
- package/dist/{chunk-PTSJOV2E.js → chunk-R5AR7QRY.js} +4 -4
- package/dist/{chunk-PTSJOV2E.js.map → chunk-R5AR7QRY.js.map} +1 -1
- package/dist/{chunk-G74DWDSJ.js → chunk-RHMJ6VR7.js} +3 -3
- package/dist/{chunk-G74DWDSJ.js.map → chunk-RHMJ6VR7.js.map} +1 -1
- package/dist/{chunk-OQTBHL5T.js → chunk-SOQN5WKL.js} +3 -3
- package/dist/{chunk-OQTBHL5T.js.map → chunk-SOQN5WKL.js.map} +1 -1
- package/dist/{chunk-3TKG3ORJ.js → chunk-TUW2BXB3.js} +6 -6
- package/dist/{chunk-3TKG3ORJ.js.map → chunk-TUW2BXB3.js.map} +1 -1
- package/dist/{chunk-OYPE6432.js → chunk-USDRQPA3.js} +5 -3
- package/dist/chunk-USDRQPA3.js.map +1 -0
- package/dist/{chunk-WQJT663R.js → chunk-VRLPOATQ.js} +3 -3
- package/dist/{chunk-WQJT663R.js.map → chunk-VRLPOATQ.js.map} +1 -1
- package/dist/{chunk-IWBUTY3D.js → chunk-W4OJM7BD.js} +4 -4
- package/dist/{chunk-IWBUTY3D.js.map → chunk-W4OJM7BD.js.map} +1 -1
- package/dist/chunk-WW6B37EO.js +14 -0
- package/dist/{chunk-DEZVFNN2.js.map → chunk-WW6B37EO.js.map} +1 -1
- package/dist/{chunk-GJFWNFMU.js → chunk-XDPKYHQJ.js} +3 -3
- package/dist/{chunk-GJFWNFMU.js.map → chunk-XDPKYHQJ.js.map} +1 -1
- package/dist/{chunk-ECY5POOK.js → chunk-XH36I3IM.js} +3 -3
- package/dist/{chunk-ECY5POOK.js.map → chunk-XH36I3IM.js.map} +1 -1
- package/dist/{chunk-F5H7QF2T.js → chunk-Y22HI53V.js} +4 -4
- package/dist/{chunk-F5H7QF2T.js.map → chunk-Y22HI53V.js.map} +1 -1
- package/dist/{chunk-EPTYC5H3.js → chunk-YOJTLXNS.js} +4 -4
- package/dist/{chunk-EPTYC5H3.js.map → chunk-YOJTLXNS.js.map} +1 -1
- package/dist/{chunk-OJ7YQEW7.js → chunk-Z4MMMPKI.js} +4 -4
- package/dist/{chunk-OJ7YQEW7.js.map → chunk-Z4MMMPKI.js.map} +1 -1
- package/dist/{chunk-CLZRX5TX.js → chunk-ZGU7B5F4.js} +3 -3
- package/dist/{chunk-CLZRX5TX.js.map → chunk-ZGU7B5F4.js.map} +1 -1
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +15 -14
- package/dist/components/home/index.js +19 -18
- package/dist/components/layout/index.js +4 -4
- package/dist/components/live-editor/LiveEditorBar.d.ts.map +1 -1
- package/dist/components/live-editor/frame.d.ts +2 -0
- package/dist/components/live-editor/frame.d.ts.map +1 -1
- package/dist/components/live-editor/moves.d.ts +14 -0
- package/dist/components/live-editor/moves.d.ts.map +1 -0
- package/dist/components/product/index.js +16 -15
- package/dist/components/store/MaintenancePage.d.ts +3 -2
- package/dist/components/store/MaintenancePage.d.ts.map +1 -1
- package/dist/components/store/index.js +17 -16
- package/dist/dev/editor/index.js +1 -1
- package/dist/dev/index.js +1 -1
- package/dist/{document-class-7JZLKPFE.js → document-class-ZHPKTBSI.js} +13 -12
- package/dist/{document-class-7JZLKPFE.js.map → document-class-ZHPKTBSI.js.map} +1 -1
- package/dist/hooks/index.js +15 -14
- package/dist/hooks/useGtm.js +15 -14
- package/dist/hooks/useMoney.js +15 -14
- package/dist/hooks/useStore.js +15 -14
- package/dist/hooks/useUser.js +3 -3
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/{navigation-IUHYIHIQ.js → navigation-7DJCQ7MJ.js} +5 -5
- package/dist/{navigation-IUHYIHIQ.js.map → navigation-7DJCQ7MJ.js.map} +1 -1
- package/dist/{navigation-L77QYQHZ.js → navigation-HC3IK4P7.js} +4 -4
- package/dist/{navigation-L77QYQHZ.js.map → navigation-HC3IK4P7.js.map} +1 -1
- package/dist/{not-found-YVGX5ST2.js → not-found-ANC6EGYO.js} +18 -17
- package/dist/not-found-ANC6EGYO.js.map +1 -0
- package/dist/providers/NavigationProvider.d.ts +2 -0
- package/dist/providers/NavigationProvider.d.ts.map +1 -1
- package/dist/providers/index.js +15 -14
- package/dist/routes/account/orders.js +4 -4
- package/dist/routes/account.js +13 -13
- package/dist/routes/blog.js +8 -8
- package/dist/routes/brands.js +4 -4
- package/dist/routes/cart.js +24 -22
- package/dist/routes/cart.js.map +1 -1
- package/dist/routes/home/HomePage.d.ts.map +1 -1
- package/dist/routes/home.js +21 -19
- package/dist/routes/index.js +3 -3
- package/dist/routes/loyalty.js +5 -5
- package/dist/routes/page.js +4 -4
- package/dist/routes/product-listing.js +21 -20
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +19 -18
- package/dist/routes/product.js.map +1 -1
- package/dist/routes/seo-redirects.js +3 -3
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you.js +4 -4
- package/dist/skeleton.js +21 -19
- package/dist/{store-lookup-F66OF7JS.js → store-lookup-5SPFTCPN.js} +8 -8
- package/dist/{store-lookup-F66OF7JS.js.map → store-lookup-5SPFTCPN.js.map} +1 -1
- package/dist/tanstack.js +13 -12
- package/dist/tanstack.js.map +1 -1
- package/dist/types/twilight.d.ts +4 -2
- package/dist/types/twilight.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/maintenance.d.ts +13 -0
- package/dist/utils/maintenance.d.ts.map +1 -1
- package/package.json +1 -1
- package/tailwind/components/live-editor/LiveEditorBar.tsx.txt +80 -8
- package/tailwind/components/live-editor/frame.ts.txt +1 -1
- package/tailwind/components/live-editor/moves.ts.txt +38 -0
- package/tailwind/components/store/MaintenancePage.tsx.txt +116 -6
- package/tailwind/routes/home/HomePage.tsx.txt +32 -6
- package/dist/BlogAuthorPage-JHZHLSIA.js.map +0 -1
- package/dist/BlogCategoryPage-F4264MQG.js.map +0 -1
- package/dist/BlogPage-3TELFUFM.js.map +0 -1
- package/dist/BlogSinglePage-QBADHXXZ.js.map +0 -1
- package/dist/BlogTagPage-WEP37KDY.js.map +0 -1
- package/dist/BrandsPage-EENWKAIY.js.map +0 -1
- package/dist/Breadcrumb-A2CNX5VU.js.map +0 -1
- package/dist/CartItem-X7UB2GZG.js.map +0 -1
- package/dist/CartSummary-EEJ3JO6E.js.map +0 -1
- package/dist/CustomerLayout-2E6ENXOH.js.map +0 -1
- package/dist/LiveEditorBar-DOSRO35J.js.map +0 -1
- package/dist/LoyaltyPage-WI2SL6SR.js.map +0 -1
- package/dist/MaintenancePage-7Y4QA5LD.js +0 -7
- package/dist/MobileMenu-PRND3T3Z.js.map +0 -1
- package/dist/NotificationsPage-VPCF5TNJ.js.map +0 -1
- package/dist/OrderSinglePage-BIPGDSSI.js.map +0 -1
- package/dist/OrdersPage-DTI5CYHH.js.map +0 -1
- package/dist/ProfilePage-APTF4ZI3.js.map +0 -1
- package/dist/SeoCartWidget-7BLWJVZ7.js.map +0 -1
- package/dist/SettingsPage-I6STBZ2M.js.map +0 -1
- package/dist/ThankYouPage-VGNCUZTV.js.map +0 -1
- package/dist/WalletPage-MIXW2MTQ.js.map +0 -1
- package/dist/WishlistPage-RVWSOXRC.js.map +0 -1
- package/dist/chunk-D7IP4MVJ.js.map +0 -1
- package/dist/chunk-DEZVFNN2.js +0 -14
- package/dist/chunk-FBOWKMPX.js.map +0 -1
- package/dist/chunk-J5DGBS7Q.js.map +0 -1
- package/dist/chunk-KQEBYXYB.js.map +0 -1
- package/dist/chunk-L75KAYY5.js.map +0 -1
- package/dist/chunk-OYPE6432.js.map +0 -1
- package/dist/chunk-QPKK4LPK.js.map +0 -1
- package/dist/not-found-YVGX5ST2.js.map +0 -1
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { moveLiveBlock } from './chunk-IXHM24Z4.js';
|
|
2
|
+
import { areaOf, postToEditor, BLOCK_ATTRIBUTE, targetOf } from './chunk-H2QBHOF2.js';
|
|
2
3
|
import './chunk-OXMUPNMH.js';
|
|
3
4
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
4
5
|
import './chunk-T72DAX7R.js';
|
|
5
6
|
import './chunk-DGUM43GV.js';
|
|
6
7
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
7
|
-
import { createPortal } from 'react-dom';
|
|
8
|
+
import { createPortal, flushSync } from 'react-dom';
|
|
8
9
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
9
10
|
|
|
10
11
|
var ACCENT = "#5dd5c4";
|
|
11
12
|
var LAYER = 2147483e3;
|
|
12
13
|
var BUSY_TIMEOUT_MS = 1e4;
|
|
13
14
|
var DOUBLE_CLICK_MS = 300;
|
|
15
|
+
var MOVE_MS = 300;
|
|
14
16
|
var DEFAULT_LABELS = {
|
|
15
17
|
ar: {
|
|
16
18
|
edit: "\u062A\u0639\u062F\u064A\u0644",
|
|
@@ -139,6 +141,33 @@ function blockSiblings(el) {
|
|
|
139
141
|
(child) => child instanceof HTMLElement && child.hasAttribute(BLOCK_ATTRIBUTE)
|
|
140
142
|
);
|
|
141
143
|
}
|
|
144
|
+
var slides = /* @__PURE__ */ new WeakMap();
|
|
145
|
+
function moveInPlace(el, action) {
|
|
146
|
+
const siblings = blockSiblings(el);
|
|
147
|
+
const from = siblings.indexOf(el);
|
|
148
|
+
const to = action === "moveup" ? from - 1 : from + 1;
|
|
149
|
+
if (from === -1 || to < 0 || to >= siblings.length) return null;
|
|
150
|
+
const before = new Map(siblings.map((block) => [block, block.getBoundingClientRect().top]));
|
|
151
|
+
for (const block of siblings) slides.get(block)?.cancel();
|
|
152
|
+
let moved = false;
|
|
153
|
+
flushSync(() => {
|
|
154
|
+
moved = moveLiveBlock(from, to);
|
|
155
|
+
});
|
|
156
|
+
if (!moved) return null;
|
|
157
|
+
if (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches) return [];
|
|
158
|
+
const started = [];
|
|
159
|
+
for (const [block, top] of before) {
|
|
160
|
+
const shift = top - block.getBoundingClientRect().top;
|
|
161
|
+
if (!shift || typeof block.animate !== "function") continue;
|
|
162
|
+
const slide = block.animate([{ transform: `translateY(${shift}px)` }, { transform: "none" }], {
|
|
163
|
+
duration: MOVE_MS,
|
|
164
|
+
easing: "ease-in-out"
|
|
165
|
+
});
|
|
166
|
+
slides.set(block, slide);
|
|
167
|
+
started.push(slide);
|
|
168
|
+
}
|
|
169
|
+
return started;
|
|
170
|
+
}
|
|
142
171
|
function connected(el) {
|
|
143
172
|
return el?.isConnected ? el : null;
|
|
144
173
|
}
|
|
@@ -155,6 +184,7 @@ function boxOf(el) {
|
|
|
155
184
|
}
|
|
156
185
|
function useLayoutTick(active) {
|
|
157
186
|
const [, setTick] = useState(0);
|
|
187
|
+
const following = useRef(0);
|
|
158
188
|
useEffect(() => {
|
|
159
189
|
if (!active) return;
|
|
160
190
|
let frame = 0;
|
|
@@ -173,6 +203,21 @@ function useLayoutTick(active) {
|
|
|
173
203
|
observer?.disconnect();
|
|
174
204
|
};
|
|
175
205
|
}, [active]);
|
|
206
|
+
useEffect(() => () => void (following.current += 1), []);
|
|
207
|
+
return useCallback((slides2) => {
|
|
208
|
+
const run = ++following.current;
|
|
209
|
+
let ended = false;
|
|
210
|
+
void Promise.allSettled(slides2.map((slide) => slide.finished)).then(() => {
|
|
211
|
+
ended = true;
|
|
212
|
+
if (following.current === run) setTick((n) => n + 1);
|
|
213
|
+
});
|
|
214
|
+
const step = () => {
|
|
215
|
+
if (following.current !== run) return;
|
|
216
|
+
setTick((n) => n + 1);
|
|
217
|
+
if (!ended) requestAnimationFrame(step);
|
|
218
|
+
};
|
|
219
|
+
step();
|
|
220
|
+
}, []);
|
|
176
221
|
}
|
|
177
222
|
function useLabels() {
|
|
178
223
|
const { t, i18n } = useTranslation();
|
|
@@ -297,6 +342,9 @@ function LiveEditorBar({
|
|
|
297
342
|
const [host, setHost] = useState(null);
|
|
298
343
|
const labels = useLabels();
|
|
299
344
|
useHeldLinkClicks(barRef);
|
|
345
|
+
const target = connected(hovered);
|
|
346
|
+
const selected = connected(editing);
|
|
347
|
+
const follow = useLayoutTick(Boolean(target || selected));
|
|
300
348
|
const act = useCallback(
|
|
301
349
|
(el, action) => {
|
|
302
350
|
const area = areaOf(el);
|
|
@@ -307,12 +355,16 @@ function LiveEditorBar({
|
|
|
307
355
|
}
|
|
308
356
|
const id = el.getAttribute(BLOCK_ATTRIBUTE);
|
|
309
357
|
if (!id) return;
|
|
310
|
-
|
|
358
|
+
const ref = blockRefOf(el, id);
|
|
359
|
+
const slid = !dev && (action === "moveup" || action === "movedown") ? moveInPlace(el, action) : null;
|
|
360
|
+
const moved = slid !== null;
|
|
361
|
+
postToEditor(origin, `preview::${action}.component`, moved ? { ...ref, moved } : ref);
|
|
362
|
+
if (slid) follow(slid);
|
|
311
363
|
if (action === "edit") setEditing(el);
|
|
312
364
|
else if (!dev && (action === "hide" || action === "duplicate" || action === "delete"))
|
|
313
365
|
setBusy(action);
|
|
314
366
|
},
|
|
315
|
-
[origin, dev]
|
|
367
|
+
[origin, dev, follow]
|
|
316
368
|
);
|
|
317
369
|
useEffect(() => {
|
|
318
370
|
const onOver = (event) => {
|
|
@@ -342,9 +394,6 @@ function LiveEditorBar({
|
|
|
342
394
|
const timer = window.setTimeout(() => setBusy(null), BUSY_TIMEOUT_MS);
|
|
343
395
|
return () => window.clearTimeout(timer);
|
|
344
396
|
}, [busy]);
|
|
345
|
-
const target = connected(hovered);
|
|
346
|
-
const selected = connected(editing);
|
|
347
|
-
useLayoutTick(Boolean(target || selected));
|
|
348
397
|
if (!host || !target && !selected) return null;
|
|
349
398
|
const targetArea = target ? areaOf(target) : null;
|
|
350
399
|
return createPortal(
|
|
@@ -368,5 +417,5 @@ function LiveEditorBar({
|
|
|
368
417
|
}
|
|
369
418
|
|
|
370
419
|
export { LiveEditorBar };
|
|
371
|
-
//# sourceMappingURL=LiveEditorBar-
|
|
372
|
-
//# sourceMappingURL=LiveEditorBar-
|
|
420
|
+
//# sourceMappingURL=LiveEditorBar-4AWOAJYX.js.map
|
|
421
|
+
//# sourceMappingURL=LiveEditorBar-4AWOAJYX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/live-editor/LiveEditorBar.tsx"],"names":["slides"],"mappings":"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","file":"LiveEditorBar-4AWOAJYX.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type RefObject,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { BLOCK_ATTRIBUTE, areaOf, postToEditor, targetOf, type BlockAction } from './frame';\nimport { moveLiveBlock } from './moves';\n\nconst ACCENT = '#5dd5c4';\nconst LAYER = 2147483000;\n/** The editor reloads the preview after hide, duplicate and delete; stop waiting if it doesn't. */\nconst BUSY_TIMEOUT_MS = 10_000;\n/** How long a link's click waits for a second one, so a double-click edits instead of navigating. */\nconst DOUBLE_CLICK_MS = 300;\n/** How long a moved block, and the one it trades places with, slide to their new places. */\nconst MOVE_MS = 300;\n\n/** Defaults for the `blocks.live_editor.*` keys, in the store's language. */\nconst DEFAULT_LABELS = {\n ar: {\n edit: 'تعديل',\n hide: 'إخفاء',\n moveup: 'تحريك لأعلى',\n movedown: 'تحريك لأسفل',\n duplicate: 'تكرار',\n add: 'إضافة عنصر',\n delete: 'حذف',\n header: 'رأس الصفحة',\n footer: 'ذيل الصفحة',\n },\n en: {\n edit: 'Edit',\n hide: 'Hide',\n moveup: 'Move up',\n movedown: 'Move down',\n duplicate: 'Duplicate',\n add: 'Add element',\n delete: 'Delete',\n header: 'Header',\n footer: 'Footer',\n },\n} as const;\n\n/** Twig's order, read from the start of the line: edit first, delete last. */\nconst BLOCK_ACTIONS: BlockAction[] = [\n 'edit',\n 'hide',\n 'moveup',\n 'movedown',\n 'duplicate',\n 'add',\n 'delete',\n];\n\nconst DEV_ACTIONS = BLOCK_ACTIONS.filter((action) => action !== 'hide');\n\n/** Lucide-style 24px stroke icons. */\nconst ICONS: Record<BlockAction, ReactElement> = {\n edit: (\n <>\n <path d=\"M12 20h9\" />\n <path d=\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z\" />\n </>\n ),\n hide: (\n <>\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 8 10 8a13.16 13.16 0 0 1-1.67 2.68\" />\n <path d=\"M6.61 6.61A13.53 13.53 0 0 0 2 12s3 8 10 8a9.74 9.74 0 0 0 5.39-1.61\" />\n <path d=\"M9.88 9.88a3 3 0 1 0 4.24 4.24\" />\n <path d=\"m2 2 20 20\" />\n </>\n ),\n moveup: <path d=\"m18 15-6-6-6 6\" />,\n movedown: <path d=\"m6 9 6 6 6-6\" />,\n duplicate: (\n <>\n <rect x=\"8\" y=\"8\" width=\"14\" height=\"14\" rx=\"2\" />\n <path d=\"M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2\" />\n </>\n ),\n add: <path d=\"M12 5v14M5 12h14\" />,\n delete: (\n <>\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </>\n ),\n};\n\nconst OUTLINE: CSSProperties = {\n position: 'fixed',\n zIndex: LAYER,\n pointerEvents: 'none',\n boxSizing: 'border-box',\n border: `2px solid ${ACCENT}`,\n};\n\nconst CHIP: CSSProperties = {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n padding: '4px 12px',\n background: ACCENT,\n color: '#0f172a',\n font: '500 14px/1.4 system-ui, sans-serif',\n whiteSpace: 'nowrap',\n};\n\nconst BAR: CSSProperties = {\n position: 'fixed',\n zIndex: LAYER + 1,\n display: 'flex',\n gap: 4,\n padding: 6,\n background: '#fff',\n borderRadius: 8,\n boxShadow: '0 4px 16px rgba(15, 23, 42, 0.18)',\n transform: 'translateX(-50%)',\n};\n\nfunction buttonStyle(action: BlockAction | 'area', disabled: boolean): CSSProperties {\n return {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n minWidth: 36,\n height: 36,\n padding: '0 8px',\n border: 0,\n borderRadius: 6,\n background: 'transparent',\n color: action === 'delete' ? '#e11d48' : action === 'edit' ? '#0d9488' : '#475569',\n font: '500 14px/1 system-ui, sans-serif',\n cursor: disabled ? 'default' : 'pointer',\n opacity: disabled ? 0.35 : 1,\n };\n}\n\nfunction Icon({ children }: { children: ReactElement }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n {children}\n </svg>\n );\n}\n\n/** The blocks `el` can trade places with: its siblings in the same list. */\nfunction blockSiblings(el: HTMLElement): HTMLElement[] {\n const parent = el.parentElement;\n if (!parent) return [el];\n return Array.from(parent.children).filter(\n (child): child is HTMLElement =>\n child instanceof HTMLElement && child.hasAttribute(BLOCK_ATTRIBUTE)\n );\n}\n\n/** Each block's slide while it runs, so a move made meanwhile starts from where the block is seen. */\nconst slides = new WeakMap<Element, Animation>();\n\n/**\n * Moves the block one place up or down on the page while the editor saves the\n * order, sliding the blocks that change places from where they are seen. The\n * slides it starts, or `null` when it can't move, and the editor shows the\n * saved order by reloading the page.\n */\nfunction moveInPlace(el: HTMLElement, action: 'moveup' | 'movedown'): Animation[] | null {\n const siblings = blockSiblings(el);\n const from = siblings.indexOf(el);\n const to = action === 'moveup' ? from - 1 : from + 1;\n if (from === -1 || to < 0 || to >= siblings.length) return null;\n\n // Where each block is seen, mid-slide included; its slide then gives way to the new one.\n const before = new Map(siblings.map((block) => [block, block.getBoundingClientRect().top]));\n for (const block of siblings) slides.get(block)?.cancel();\n let moved = false;\n // Committed before measuring again, so the blocks start their slide from where they were.\n flushSync(() => {\n moved = moveLiveBlock(from, to);\n });\n if (!moved) return null;\n if (window.matchMedia?.('(prefers-reduced-motion: reduce)').matches) return [];\n const started: Animation[] = [];\n for (const [block, top] of before) {\n const shift = top - block.getBoundingClientRect().top;\n if (!shift || typeof block.animate !== 'function') continue;\n const slide = block.animate([{ transform: `translateY(${shift}px)` }, { transform: 'none' }], {\n duration: MOVE_MS,\n easing: 'ease-in-out',\n });\n slides.set(block, slide);\n started.push(slide);\n }\n return started;\n}\n\nfunction connected(el: HTMLElement | null): HTMLElement | null {\n return el?.isConnected ? el : null;\n}\n\n/** Re-renders on scroll, resize and layout shifts, so the overlay follows what it outlines. */\ninterface Box {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\n/**\n * Where `el` is on screen. One with no box of its own (`display: contents`, as\n * Raed's header) measures 0×0 at the corner, so it's measured by its children.\n */\nfunction boxOf(el: Element): Box {\n const rect = el.getBoundingClientRect();\n if (rect.width || rect.height) return rect;\n const boxes = Array.from(el.children, boxOf).filter((box) => box.width || box.height);\n if (!boxes.length) return rect;\n const top = Math.min(...boxes.map((box) => box.top));\n const left = Math.min(...boxes.map((box) => box.left));\n const right = Math.max(...boxes.map((box) => box.left + box.width));\n const bottom = Math.max(...boxes.map((box) => box.top + box.height));\n return { top, left, width: right - left, height: bottom - top };\n}\n\n/**\n * Re-renders the bar when the page scrolls or resizes, so it stays on its\n * block. The returned `follow` re-renders it every frame until the given\n * slides end: a move changes the page without resizing it.\n */\nfunction useLayoutTick(active: boolean): (slides: readonly Animation[]) => void {\n const [, setTick] = useState(0);\n const following = useRef(0);\n useEffect(() => {\n if (!active) return;\n let frame = 0;\n const schedule = () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => setTick((n) => n + 1));\n };\n window.addEventListener('scroll', schedule, { capture: true, passive: true });\n window.addEventListener('resize', schedule);\n const observer = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(schedule) : null;\n observer?.observe(document.body);\n return () => {\n cancelAnimationFrame(frame);\n window.removeEventListener('scroll', schedule, { capture: true });\n window.removeEventListener('resize', schedule);\n observer?.disconnect();\n };\n }, [active]);\n // Stop following when the bar goes away.\n useEffect(() => () => void (following.current += 1), []);\n\n return useCallback((slides: readonly Animation[]) => {\n const run = ++following.current;\n let ended = false;\n void Promise.allSettled(slides.map((slide) => slide.finished)).then(() => {\n ended = true;\n if (following.current === run) setTick((n) => n + 1);\n });\n const step = () => {\n if (following.current !== run) return;\n setTick((n) => n + 1);\n if (!ended) requestAnimationFrame(step);\n };\n step();\n }, []);\n}\n\ntype LabelKey = keyof typeof DEFAULT_LABELS.en;\ntype Labels = Record<LabelKey, string>;\n\nfunction useLabels(): Labels {\n const { t, i18n } = useTranslation();\n const defaults = i18n?.language?.startsWith('ar') ? DEFAULT_LABELS.ar : DEFAULT_LABELS.en;\n return Object.fromEntries(\n (Object.keys(defaults) as LabelKey[]).map((key) => [\n key,\n t(`blocks.live_editor.${key}`, { defaultValue: defaults[key] }),\n ])\n ) as Labels;\n}\n\n/**\n * Holds a link's click inside a block, the header or the footer for\n * {@link DOUBLE_CLICK_MS}: a second click on the same link makes it a\n * double-click, which edits the area, and the link never navigates; otherwise\n * the click is replayed. A click on another link drops the first one.\n */\nfunction useHeldLinkClicks(barRef: RefObject<HTMLDivElement | null>): void {\n useEffect(() => {\n let held: { link: HTMLAnchorElement; timer: number } | null = null;\n let replaying = false;\n\n const onClick = (event: MouseEvent) => {\n if (replaying || event.button !== 0) return;\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n if (barRef.current?.contains(event.target as Node)) return;\n const link = event.target instanceof Element ? event.target.closest('a[href]') : null;\n if (!(link instanceof HTMLAnchorElement) || !targetOf(link)) return;\n\n // Before the router's own handler, which sits below the document.\n event.preventDefault();\n event.stopPropagation();\n const previous = held;\n if (previous) {\n window.clearTimeout(previous.timer);\n held = null;\n if (previous.link === link) return;\n }\n const timer = window.setTimeout(() => {\n held = null;\n replaying = true;\n link.click();\n replaying = false;\n }, DOUBLE_CLICK_MS);\n held = { link, timer };\n };\n\n document.addEventListener('click', onClick, true);\n return () => {\n document.removeEventListener('click', onClick, true);\n if (held) window.clearTimeout(held.timer);\n };\n }, [barRef]);\n}\n\nfunction Outline({ el, label }: { el: HTMLElement; label?: string }) {\n const rect = boxOf(el);\n return (\n <div\n data-testid=\"live-editor-outline\"\n style={{ ...OUTLINE, top: rect.top, left: rect.left, width: rect.width, height: rect.height }}\n >\n {label && <span style={CHIP}>{label}</span>}\n </div>\n );\n}\n\ninterface ToolbarProps {\n target: HTMLElement;\n labels: Labels;\n busy: BlockAction | null;\n barRef: RefObject<HTMLDivElement | null>;\n actions: BlockAction[];\n onAct: (el: HTMLElement, action: BlockAction) => void;\n}\n\n/** One edit button for the header or footer; the full set for a block. */\nfunction Toolbar({ target, labels, busy, barRef, actions, onAct }: ToolbarProps) {\n const rect = boxOf(target);\n const style: CSSProperties = {\n ...BAR,\n top: Math.max(rect.top + 8, 8),\n left: rect.left + rect.width / 2,\n };\n\n if (areaOf(target)) {\n return (\n <div ref={barRef} data-testid=\"live-editor-bar\" style={style}>\n <button\n type=\"button\"\n data-testid=\"live-editor-edit\"\n style={buttonStyle('area', false)}\n onClick={() => onAct(target, 'edit')}\n >\n <Icon>{ICONS.edit}</Icon>\n {labels.edit}\n </button>\n </div>\n );\n }\n\n const siblings = blockSiblings(target);\n const index = siblings.indexOf(target);\n const isDisabled = (action: BlockAction) =>\n busy !== null ||\n (action === 'moveup' && index <= 0) ||\n (action === 'movedown' && index >= siblings.length - 1);\n\n return (\n <div\n ref={barRef}\n data-testid=\"live-editor-bar\"\n role=\"toolbar\"\n aria-label={labels.edit}\n style={style}\n >\n {actions.map((action) => (\n <button\n key={action}\n type=\"button\"\n data-testid={`live-editor-${action}`}\n title={labels[action]}\n aria-label={labels[action]}\n aria-busy={busy === action || undefined}\n disabled={isDisabled(action)}\n style={buttonStyle(action, isDisabled(action))}\n onClick={() => onAct(target, action)}\n >\n <Icon>{ICONS[action]}</Icon>\n </button>\n ))}\n </div>\n );\n}\n\n/**\n * The block an action names. A uuid is shared by every copy of one component,\n * so it comes with which copy, in page order; a row id is unique on its own.\n */\nfunction blockRefOf(el: HTMLElement, id: string): { id: string; copy?: number } {\n if (/^\\d+$/.test(id)) return { id };\n const copies = Array.from(document.querySelectorAll(`[${BLOCK_ATTRIBUTE}]`)).filter(\n (block) => block.getAttribute(BLOCK_ATTRIBUTE) === id\n );\n return { id, copy: copies.indexOf(el) };\n}\n\n/**\n * The live editor's action bar: hovering a home block outlines it and shows\n * edit, hide, move, duplicate, add and delete; hovering the header or footer\n * shows an edit button. Double-clicking either edits it. Each action is a\n * message to the editor, which saves the change and reloads the preview.\n *\n * In the engine's dev editor (`dev`) edits reach the page live, so nothing\n * waits for a reload, and there is no hide: its layout has no hidden blocks.\n */\nexport function LiveEditorBar({\n origin,\n dev = false,\n}: {\n origin: string;\n dev?: boolean;\n}): ReactElement | null {\n const [hovered, setHovered] = useState<HTMLElement | null>(null);\n const [editing, setEditing] = useState<HTMLElement | null>(null);\n const [busy, setBusy] = useState<BlockAction | null>(null);\n const barRef = useRef<HTMLDivElement>(null);\n // Taken after mount, so nothing reads the DOM while rendering.\n const [host, setHost] = useState<HTMLElement | null>(null);\n const labels = useLabels();\n useHeldLinkClicks(barRef);\n const target = connected(hovered);\n const selected = connected(editing);\n const follow = useLayoutTick(Boolean(target || selected));\n\n const act = useCallback(\n (el: HTMLElement, action: BlockAction) => {\n const area = areaOf(el);\n if (area) {\n postToEditor(origin, `preview::edit.${area}`, { id: `store-${area}` });\n setEditing(el);\n return;\n }\n const id = el.getAttribute(BLOCK_ATTRIBUTE);\n if (!id) return;\n // Which copy it is, from where it is before it moves.\n const ref = blockRefOf(el, id);\n // `moved`: the page shows the new order, so the editor saves it without a reload. The dev editor's layout moves it.\n const slid =\n !dev && (action === 'moveup' || action === 'movedown') ? moveInPlace(el, action) : null;\n const moved = slid !== null;\n postToEditor(origin, `preview::${action}.component`, moved ? { ...ref, moved } : ref);\n // The bar rides along with its block and knows its new place.\n if (slid) follow(slid);\n if (action === 'edit') setEditing(el);\n else if (!dev && (action === 'hide' || action === 'duplicate' || action === 'delete'))\n setBusy(action);\n },\n [origin, dev, follow]\n );\n\n useEffect(() => {\n const onOver = (event: MouseEvent) => {\n // The bar sits over the block it acts on: reaching it keeps that block.\n if (barRef.current?.contains(event.target as Node)) return;\n setHovered(targetOf(event.target));\n };\n const onOut = (event: MouseEvent) => {\n if (!event.relatedTarget) setHovered(null);\n };\n const onDoubleClick = (event: MouseEvent) => {\n if (barRef.current?.contains(event.target as Node)) return;\n const el = targetOf(event.target);\n if (el) act(el, 'edit');\n };\n document.addEventListener('mouseover', onOver);\n document.addEventListener('mouseout', onOut);\n document.addEventListener('dblclick', onDoubleClick);\n return () => {\n document.removeEventListener('mouseover', onOver);\n document.removeEventListener('mouseout', onOut);\n document.removeEventListener('dblclick', onDoubleClick);\n };\n }, [act]);\n\n useEffect(() => setHost(document.body), []);\n\n useEffect(() => {\n if (!busy) return;\n const timer = window.setTimeout(() => setBusy(null), BUSY_TIMEOUT_MS);\n return () => window.clearTimeout(timer);\n }, [busy]);\n\n if (!host || (!target && !selected)) return null;\n\n const targetArea = target ? areaOf(target) : null;\n\n return createPortal(\n <>\n {selected && selected !== target && <Outline el={selected} />}\n {target && <Outline el={target} label={targetArea ? labels[targetArea] : undefined} />}\n {target && (\n <Toolbar\n target={target}\n labels={labels}\n busy={busy}\n barRef={barRef}\n actions={dev ? DEV_ACTIONS : BLOCK_ACTIONS}\n onAct={act}\n />\n )}\n </>,\n host\n );\n}\n"]}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
import './chunk-GHACVKKD.js';
|
|
2
|
+
import './chunk-H2QBHOF2.js';
|
|
3
|
+
import './chunk-6S2SIUOD.js';
|
|
4
|
+
import './chunk-OSIFK62D.js';
|
|
5
|
+
import './chunk-3CNXPHJE.js';
|
|
6
6
|
import './chunk-JYV25VNZ.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-VRLPOATQ.js';
|
|
8
8
|
import './chunk-OXMUPNMH.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-XDPKYHQJ.js';
|
|
10
10
|
import './chunk-VVZNW5CB.js';
|
|
11
11
|
import './chunk-5FJFN3IW.js';
|
|
12
12
|
import './chunk-GD26FI4J.js';
|
|
13
|
+
import './chunk-FID76MUV.js';
|
|
13
14
|
import './chunk-OM2GRPDH.js';
|
|
14
|
-
import './chunk-
|
|
15
|
+
import './chunk-2Z7XKCT3.js';
|
|
15
16
|
import './chunk-OUW6WESU.js';
|
|
16
17
|
import './chunk-BK5TBUGG.js';
|
|
17
18
|
import './chunk-HI5V5X3S.js';
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-XH36I3IM.js';
|
|
20
|
+
import './chunk-J2OPSCWD.js';
|
|
20
21
|
import './chunk-MVT5AF2A.js';
|
|
21
22
|
import './chunk-Z653O7MX.js';
|
|
22
23
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -27,16 +28,16 @@ import './chunk-7V36I5GT.js';
|
|
|
27
28
|
import './chunk-6WI7R2BD.js';
|
|
28
29
|
import './chunk-JGVEGQHJ.js';
|
|
29
30
|
import './chunk-OAMIDZKW.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-77Z3U5JT.js';
|
|
31
32
|
import './chunk-OQIIJRAS.js';
|
|
32
33
|
import './chunk-V2ZDTY6H.js';
|
|
33
|
-
import './chunk-
|
|
34
|
+
import './chunk-KSGBNVBQ.js';
|
|
34
35
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
35
36
|
import './chunk-GCPEMNSU.js';
|
|
36
|
-
import './chunk-
|
|
37
|
+
import './chunk-SOQN5WKL.js';
|
|
37
38
|
import './chunk-Z5M4YYWT.js';
|
|
38
39
|
import './chunk-TYNZ5B2B.js';
|
|
39
|
-
import { LazyBreadcrumb } from './chunk-
|
|
40
|
+
import { LazyBreadcrumb } from './chunk-MYW5QYWO.js';
|
|
40
41
|
import './chunk-AXW67SY7.js';
|
|
41
42
|
import './chunk-BYMOPN2S.js';
|
|
42
43
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -67,5 +68,5 @@ function LoyaltyPage({ page }) {
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
export { LoyaltyPage };
|
|
70
|
-
//# sourceMappingURL=LoyaltyPage-
|
|
71
|
-
//# sourceMappingURL=LoyaltyPage-
|
|
71
|
+
//# sourceMappingURL=LoyaltyPage-BNJO3BTK.js.map
|
|
72
|
+
//# sourceMappingURL=LoyaltyPage-BNJO3BTK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/loyalty/LoyaltyPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,eAAA,EAAgB,CAAA;AAAA,oBAC/B,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,0BACvB,mBAAA,EAAA,EAAoB;AAAA,KAAA,EACvB,CAAA;AAAA,oBACA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,aAAA,EAAc;AAAA,GAAA,EAC/B,CAAA;AAEJ","file":"LoyaltyPage-BNJO3BTK.js","sourcesContent":["import { SallaLoyaltyProgram } from '@salla.sa/twilight-components-react/loyalty-program';\nimport type { LoyaltyPageProps } from './types';\nimport { Breadcrumb } from '../../components/common';\nimport { HookSlot } from '../../hooks';\n\nexport function LoyaltyPage({ page }: LoyaltyPageProps) {\n return (\n <>\n <HookSlot name=\"loyalty:start\" />\n <div className=\"container mb-20\">\n <Breadcrumb page={page} />\n <SallaLoyaltyProgram />\n </div>\n <HookSlot name=\"loyalty:end\" />\n </>\n );\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { LazyCustomerLayout } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { LazyCustomerLayout } from './chunk-FU52JCUN.js';
|
|
2
|
+
import './chunk-77Z3U5JT.js';
|
|
3
3
|
import './chunk-OQIIJRAS.js';
|
|
4
4
|
import './chunk-V2ZDTY6H.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KSGBNVBQ.js';
|
|
6
6
|
import './chunk-5XDPAKF5.js';
|
|
7
7
|
import './chunk-GCPEMNSU.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-SOQN5WKL.js';
|
|
9
9
|
import './chunk-Z5M4YYWT.js';
|
|
10
10
|
import './chunk-TYNZ5B2B.js';
|
|
11
11
|
import './chunk-GYXUYHKO.js';
|
|
@@ -22,5 +22,5 @@ function LoyaltyPointsPage({ page }) {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export { LoyaltyPointsPage };
|
|
25
|
-
//# sourceMappingURL=LoyaltyPointsPage-
|
|
26
|
-
//# sourceMappingURL=LoyaltyPointsPage-
|
|
25
|
+
//# sourceMappingURL=LoyaltyPointsPage-2OGOGII3.js.map
|
|
26
|
+
//# sourceMappingURL=LoyaltyPointsPage-2OGOGII3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/loyalty/LoyaltyPointsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAIO,SAAS,iBAAA,CAAkB,EAAE,IAAA,EAAK,EAA2B;AAClE,EAAA,uBACE,GAAA,CAAC,kBAAA,EAAA,EAAe,IAAA,EACd,QAAA,kBAAA,GAAA,CAAC,6BAA0B,CAAA,EAC7B,CAAA;AAEJ","file":"LoyaltyPointsPage-
|
|
1
|
+
{"version":3,"sources":["../src/routes/loyalty/LoyaltyPointsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAIO,SAAS,iBAAA,CAAkB,EAAE,IAAA,EAAK,EAA2B;AAClE,EAAA,uBACE,GAAA,CAAC,kBAAA,EAAA,EAAe,IAAA,EACd,QAAA,kBAAA,GAAA,CAAC,6BAA0B,CAAA,EAC7B,CAAA;AAEJ","file":"LoyaltyPointsPage-2OGOGII3.js","sourcesContent":["import { SallaLoyaltyPointsHistory } from '@salla.sa/twilight-components-react/loyalty-points-history';\nimport type { LoyaltyPointsPageProps } from './types';\nimport { CustomerLayout } from '../../components/layout';\n\nexport function LoyaltyPointsPage({ page }: LoyaltyPointsPageProps) {\n return (\n <CustomerLayout page={page}>\n <SallaLoyaltyPointsHistory />\n </CustomerLayout>\n );\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { menu } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { menu } from './chunk-CR3EY7K7.js';
|
|
2
|
+
import './chunk-SOQN5WKL.js';
|
|
3
3
|
import './chunk-Z5M4YYWT.js';
|
|
4
4
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-MYW5QYWO.js';
|
|
6
6
|
import { Link } from './chunk-AXW67SY7.js';
|
|
7
7
|
import './chunk-BYMOPN2S.js';
|
|
8
8
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -69,5 +69,5 @@ function MainMenu() {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export { MainMenu };
|
|
72
|
-
//# sourceMappingURL=MainMenu-
|
|
73
|
-
//# sourceMappingURL=MainMenu-
|
|
72
|
+
//# sourceMappingURL=MainMenu-56OTUHET.js.map
|
|
73
|
+
//# sourceMappingURL=MainMenu-56OTUHET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/MainMenu.tsx"],"names":["MainMenuSkeleton"],"mappings":"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","file":"MainMenu-
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/MainMenu.tsx"],"names":["MainMenuSkeleton"],"mappings":";;;;;;;;;;;;;;;;;;AAQA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,MAAA,EAAO;AAAA,EAC7B,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,MAAA,EAAO;AAAA,EAC9B,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,MAAA,EAAO;AAAA,EAC7B,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,MAAA,EAAO;AAAA,EAC9B,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,MAAA;AACxB,CAAA;AAEA,IAAM,gBAAA,GAAmB,IAAA,CAAK,SAASA,iBAAAA,GAAmB;AACxD,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,WAAU,WAAA,EACX,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,KAAA,EAAM,yBAC9B,IAAA,EAAA,EAAY,SAAA,EAAU,8BAAA,EACrB,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EACP,QAAA,kBAAA,GAAA,CAAC,UAAK,SAAA,EAAW,CAAA,mDAAA,EAAsD,KAAK,CAAA,CAAA,EAAI,CAAA,EAClF,CAAA,EAAA,EAHO,EAIT,CACD,GACH,CAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAEM,SAAS,QAAA,GAAW;AACzB,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,GAAQ,EAAC,EAAG,SAAA,EAAU,GAAI,QAAA,CAAS,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAQ,CAAA;AACtE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAY,GAAI,QAAQ,MAAM;AAClD,IAAA,MAAM,UAAA,GAAa,OAAO,QAAA,EAAU,sBAAA;AACpC,IAAA,MAAM,YAAA,GAAe,CAAA;AAErB,IAAA,IAAI,UAAA,IAAc,KAAA,CAAM,MAAA,GAAS,YAAA,EAAc;AAC7C,MAAA,OAAO;AAAA,QACL,YAAA,EAAc,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,YAAY,CAAA;AAAA,QACzC,WAAA,EAAa,KAAA,CAAM,KAAA,CAAM,YAAY;AAAA,OACvC;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,EAAC,EAAE;AAAA,EAChD,CAAA,EAAG,CAAC,KAAA,EAAO,KAAA,EAAO,UAAU,gBAAA,EAAkB,KAAA,EAAO,QAAA,EAAU,sBAAsB,CAAC,CAAA;AAEtF,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,2BAAQ,gBAAA,EAAA,EAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,MAAM,aAAa,CAAC,IAAA,EAAgB,OAAA,GAAU,KAAA,EAAO,aAAa,KAAA,KAAU;AAC1E,IAAA,MAAM,cAAc,IAAA,CAAK,YAAA,IAAgB,KAAK,QAAA,IAAY,IAAA,CAAK,SAAS,MAAA,GAAS,CAAA;AACjF,IAAA,MAAM,YAAA,GAAe,eAAe,CAAC,UAAA;AAErC,IAAA,uBACE,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAW,GAAG,OAAA,GAAU,UAAA,GAAa,8BAA8B,CAAA,CAAA,EAAI,WAAA,GAAc,iBAAiB,EAAE,CAAA,CAAA;AAAA,QAExG,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAI,IAAA,CAAK,GAAA,EACb,8BAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,CAAK,OAAM,CAAA,EACpB,CAAA;AAAA,UACC,gCACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,8BAAC,IAAA,EAAA,EAAI,QAAA,EAAA,IAAA,EAAM,QAAA,EAAU,GAAA,CAAI,CAAC,KAAA,KAAoB,UAAA,CAAW,OAAO,IAAI,CAAC,GAAE,CAAA,EACzE;AAAA;AAAA,OAAA;AAAA,MATG,IAAA,CAAK;AAAA,KAWZ;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EAAG,WAAU,WAAA,EACX,QAAA,EAAA;AAAA,IAAA,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,KAAS,UAAA,CAAW,IAAI,CAAC,CAAA;AAAA,IAC3C,WAAA,CAAY,SAAS,CAAA,oBACpB,IAAA,CAAC,QAAG,EAAA,EAAG,oBAAA,EAAqB,WAAU,2CAAA,EACpC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAG,GAAA,EACP,QAAA,kBAAA,GAAA,CAAC,UAAM,QAAA,EAAA,CAAA,CAAE,oBAAA,EAAsB,MAAM,CAAA,EAAE,CAAA,EACzC,CAAA;AAAA,0BACC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,kBAAA,GAAA,CAAC,QAAI,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,KAAS,WAAW,IAAA,EAAM,IAAA,EAAM,IAAI,CAAC,GAAE,CAAA,EAC/D;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA,EACF,CAAA;AAEJ","file":"MainMenu-56OTUHET.js","sourcesContent":["import { useMemo, memo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { Link } from '../common';\nimport { menu } from '../../api/menu';\nimport type { MenuItem } from '../../types';\n\nconst SKELETON_ITEMS = [\n { id: 'first', width: 'w-16' },\n { id: 'second', width: 'w-20' },\n { id: 'third', width: 'w-24' },\n { id: 'fourth', width: 'w-16' },\n { id: 'fifth', width: 'w-20' },\n];\n\nconst MainMenuSkeleton = memo(function MainMenuSkeleton() {\n return (\n <nav>\n <ul className=\"main-menu\">\n {SKELETON_ITEMS.map(({ id, width }) => (\n <li key={id} className=\"!hidden lg:!block root-level\">\n <Link to=\"#\">\n <span className={`inline-block animate-pulse rounded bg-gray-200 h-4 ${width}`} />\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\n\nexport function MainMenu() {\n const { theme } = useTwilight();\n const { data: menus = [], isLoading } = useQuery(menu.queries.header());\n const { t } = useTranslation();\n\n const { visibleMenus, hiddenMenus } = useMemo(() => {\n const enableMore = theme?.settings?.is_more_button_enabled;\n const visibleCount = 7;\n\n if (enableMore && menus.length > visibleCount) {\n return {\n visibleMenus: menus.slice(0, visibleCount),\n hiddenMenus: menus.slice(visibleCount),\n };\n }\n\n return { visibleMenus: menus, hiddenMenus: [] };\n }, [menus, theme?.settings?.enable_more_menu, theme?.settings?.is_more_button_enabled]);\n\n if (isLoading) {\n return <MainMenuSkeleton />;\n }\n\n const renderItem = (item: MenuItem, isChild = false, inMoreMenu = false) => {\n const hasChildren = item.has_children && item.children && item.children.length > 0;\n const showDropdown = hasChildren && !inMoreMenu;\n\n return (\n <li\n key={item.id}\n className={`${isChild ? 'relative' : '!hidden lg:!block root-level'} ${hasChildren ? 'has-children' : ''}`}\n >\n <Link to={item.url}>\n <span>{item.title}</span>\n </Link>\n {showDropdown && (\n <div className=\"sub-menu w-56\">\n <ul>{item?.children?.map((child: MenuItem) => renderItem(child, true))}</ul>\n </div>\n )}\n </li>\n );\n };\n\n return (\n <nav>\n <ul className=\"main-menu\">\n {visibleMenus.map((item) => renderItem(item))}\n {hiddenMenus.length > 0 && (\n <li id=\"more-menu-dropdown\" className=\"!hidden lg:!block root-level has-children\">\n <Link to=\"#\">\n <span>{t('common.titles.more', 'More')}</span>\n </Link>\n <div className=\"sub-menu w-56\">\n <ul>{hiddenMenus.map((item) => renderItem(item, true, true))}</ul>\n </div>\n </li>\n )}\n </ul>\n </nav>\n );\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { MaintenancePage } from './chunk-CKH6WBMA.js';
|
|
2
|
+
import './chunk-TYNZ5B2B.js';
|
|
3
|
+
import './chunk-7VNVCHID.js';
|
|
4
|
+
import './chunk-T72DAX7R.js';
|
|
5
|
+
import './chunk-DGUM43GV.js';
|
|
6
|
+
//# sourceMappingURL=MaintenancePage-A7CNHM7B.js.map
|
|
7
|
+
//# sourceMappingURL=MaintenancePage-A7CNHM7B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"MaintenancePage-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"MaintenancePage-A7CNHM7B.js"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
export { MasterLayout } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { MasterLayout } from './chunk-GHACVKKD.js';
|
|
2
|
+
import './chunk-H2QBHOF2.js';
|
|
3
|
+
import './chunk-6S2SIUOD.js';
|
|
4
|
+
import './chunk-OSIFK62D.js';
|
|
5
|
+
import './chunk-3CNXPHJE.js';
|
|
6
6
|
import './chunk-JYV25VNZ.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-VRLPOATQ.js';
|
|
8
8
|
import './chunk-OXMUPNMH.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-XDPKYHQJ.js';
|
|
10
10
|
import './chunk-VVZNW5CB.js';
|
|
11
11
|
import './chunk-5FJFN3IW.js';
|
|
12
12
|
import './chunk-GD26FI4J.js';
|
|
13
|
+
import './chunk-FID76MUV.js';
|
|
13
14
|
import './chunk-OM2GRPDH.js';
|
|
14
|
-
import './chunk-
|
|
15
|
+
import './chunk-2Z7XKCT3.js';
|
|
15
16
|
import './chunk-OUW6WESU.js';
|
|
16
17
|
import './chunk-BK5TBUGG.js';
|
|
17
18
|
import './chunk-HI5V5X3S.js';
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-XH36I3IM.js';
|
|
20
|
+
import './chunk-J2OPSCWD.js';
|
|
20
21
|
import './chunk-MVT5AF2A.js';
|
|
21
22
|
import './chunk-Z653O7MX.js';
|
|
22
23
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -27,16 +28,16 @@ import './chunk-7V36I5GT.js';
|
|
|
27
28
|
import './chunk-6WI7R2BD.js';
|
|
28
29
|
import './chunk-JGVEGQHJ.js';
|
|
29
30
|
import './chunk-OAMIDZKW.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-77Z3U5JT.js';
|
|
31
32
|
import './chunk-OQIIJRAS.js';
|
|
32
33
|
import './chunk-V2ZDTY6H.js';
|
|
33
|
-
import './chunk-
|
|
34
|
+
import './chunk-KSGBNVBQ.js';
|
|
34
35
|
import './chunk-5XDPAKF5.js';
|
|
35
36
|
import './chunk-GCPEMNSU.js';
|
|
36
|
-
import './chunk-
|
|
37
|
+
import './chunk-SOQN5WKL.js';
|
|
37
38
|
import './chunk-Z5M4YYWT.js';
|
|
38
39
|
import './chunk-TYNZ5B2B.js';
|
|
39
|
-
import './chunk-
|
|
40
|
+
import './chunk-MYW5QYWO.js';
|
|
40
41
|
import './chunk-AXW67SY7.js';
|
|
41
42
|
import './chunk-BYMOPN2S.js';
|
|
42
43
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -52,5 +53,5 @@ import './chunk-7VNVCHID.js';
|
|
|
52
53
|
import './chunk-T72DAX7R.js';
|
|
53
54
|
import './chunk-DF6FBKDN.js';
|
|
54
55
|
import './chunk-DGUM43GV.js';
|
|
55
|
-
//# sourceMappingURL=MasterLayout-
|
|
56
|
-
//# sourceMappingURL=MasterLayout-
|
|
56
|
+
//# sourceMappingURL=MasterLayout-DWXUEODB.js.map
|
|
57
|
+
//# sourceMappingURL=MasterLayout-DWXUEODB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"MasterLayout-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"MasterLayout-DWXUEODB.js"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import { menu } from './chunk-
|
|
1
|
+
import { menu } from './chunk-CR3EY7K7.js';
|
|
2
2
|
import { Drawer } from './chunk-6TKIUG5C.js';
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
3
|
+
import './chunk-GHACVKKD.js';
|
|
4
|
+
import './chunk-H2QBHOF2.js';
|
|
5
|
+
import './chunk-6S2SIUOD.js';
|
|
6
|
+
import './chunk-OSIFK62D.js';
|
|
7
|
+
import './chunk-3CNXPHJE.js';
|
|
8
8
|
import './chunk-JYV25VNZ.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-VRLPOATQ.js';
|
|
10
10
|
import './chunk-OXMUPNMH.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-XDPKYHQJ.js';
|
|
12
12
|
import './chunk-VVZNW5CB.js';
|
|
13
13
|
import './chunk-5FJFN3IW.js';
|
|
14
14
|
import './chunk-GD26FI4J.js';
|
|
15
|
+
import './chunk-FID76MUV.js';
|
|
15
16
|
import './chunk-OM2GRPDH.js';
|
|
16
|
-
import './chunk-
|
|
17
|
+
import './chunk-2Z7XKCT3.js';
|
|
17
18
|
import './chunk-OUW6WESU.js';
|
|
18
19
|
import './chunk-BK5TBUGG.js';
|
|
19
20
|
import './chunk-HI5V5X3S.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-XH36I3IM.js';
|
|
22
|
+
import './chunk-J2OPSCWD.js';
|
|
22
23
|
import './chunk-MVT5AF2A.js';
|
|
23
24
|
import './chunk-Z653O7MX.js';
|
|
24
25
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -29,16 +30,16 @@ import './chunk-7V36I5GT.js';
|
|
|
29
30
|
import './chunk-6WI7R2BD.js';
|
|
30
31
|
import './chunk-JGVEGQHJ.js';
|
|
31
32
|
import './chunk-OAMIDZKW.js';
|
|
32
|
-
import './chunk-
|
|
33
|
+
import './chunk-77Z3U5JT.js';
|
|
33
34
|
import './chunk-OQIIJRAS.js';
|
|
34
35
|
import './chunk-V2ZDTY6H.js';
|
|
35
|
-
import './chunk-
|
|
36
|
+
import './chunk-KSGBNVBQ.js';
|
|
36
37
|
import './chunk-5XDPAKF5.js';
|
|
37
38
|
import './chunk-GCPEMNSU.js';
|
|
38
|
-
import './chunk-
|
|
39
|
+
import './chunk-SOQN5WKL.js';
|
|
39
40
|
import './chunk-Z5M4YYWT.js';
|
|
40
41
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
41
|
-
import './chunk-
|
|
42
|
+
import './chunk-MYW5QYWO.js';
|
|
42
43
|
import { Link } from './chunk-AXW67SY7.js';
|
|
43
44
|
import './chunk-BYMOPN2S.js';
|
|
44
45
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -174,5 +175,5 @@ function MobileMenuContent({ onClose }) {
|
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
export { MobileMenu };
|
|
177
|
-
//# sourceMappingURL=MobileMenu-
|
|
178
|
-
//# sourceMappingURL=MobileMenu-
|
|
178
|
+
//# sourceMappingURL=MobileMenu-JJA7PHVS.js.map
|
|
179
|
+
//# sourceMappingURL=MobileMenu-JJA7PHVS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/MobileMenu.tsx"],"names":["MobileMenuSkeleton"],"mappings":"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","file":"MobileMenu-JJA7PHVS.js","sourcesContent":["import { useState, useCallback, useEffect, memo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { Drawer } from '../../components/drawer';\nimport { Link } from '../common';\nimport { menu } from '../../api/menu';\nimport type { MenuItem } from '../../types';\n\nexport interface MobileMenuProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nconst MOBILE_SKELETON_ITEMS = 5;\nconst SKELETON_WIDTHS = ['w-32', 'w-28', 'w-36', 'w-24', 'w-30'];\n\nconst MobileMenuSkeleton = memo(function MobileMenuSkeleton() {\n return (\n <ul className=\"divide-y divide-gray-100\">\n {Array.from({ length: MOBILE_SKELETON_ITEMS }, (_, i) => (\n <li key={i} className=\"py-4\">\n <span\n className={`inline-block animate-pulse rounded bg-gray-200 h-5 ${SKELETON_WIDTHS[i]}`}\n />\n </li>\n ))}\n </ul>\n );\n});\n\nexport function MobileMenu(props: MobileMenuProps) {\n if (!props.isOpen) return null;\n return <MobileMenuContent {...props} />;\n}\n\nfunction MobileMenuContent({ onClose }: MobileMenuProps) {\n const { theme } = useTwilight();\n const { data: menus = [], isLoading } = useQuery(menu.queries.header());\n const { t } = useTranslation();\n\n const [menuStack, setMenuStack] = useState<{ title: string; items: MenuItem[] }[]>([]);\n const [isAnimating, setIsAnimating] = useState(false);\n\n const currentLevel = menuStack[menuStack.length - 1] ?? { title: '', items: menus };\n const isRootLevel = menuStack.length === 0;\n\n const openSubmenu = useCallback((item: MenuItem) => {\n if (item.children && item.children.length > 0) {\n setIsAnimating(true);\n setMenuStack((prev) => [...prev, { title: item.title, items: item.children! }]);\n requestAnimationFrame(() => {\n setIsAnimating(false);\n });\n }\n }, []);\n\n const goBack = useCallback(() => {\n setIsAnimating(true);\n setMenuStack((prev) => prev.slice(0, -1));\n requestAnimationFrame(() => {\n setIsAnimating(false);\n });\n }, []);\n\n useEffect(() => {\n document.body.classList.add('menu-opened');\n return () => document.body.classList.remove('menu-opened');\n }, []);\n\n const getListAnimationClass = () => {\n if (isAnimating) {\n return theme.is_rtl ? 'translate-x-4 opacity-0' : '-translate-x-4 opacity-0';\n }\n return 'translate-x-0 opacity-100';\n };\n\n return (\n <>\n <Drawer\n isOpen\n onClose={onClose}\n size=\"md\"\n closeOnBackdropClick={true}\n preventBodyScroll={false}\n className=\"overflow-visible\"\n >\n <button\n type=\"button\"\n onClick={onClose}\n aria-label={t('common.buttons.close', 'Close')}\n className=\"absolute top-0 w-12 h-12 flex items-center justify-center bg-[#d35a51] text-white hover:bg-red-600 transition-colors z-50 ltr:-right-12 rtl:-left-12\"\n >\n <i className=\"sicon-cancel text-xl leading-none\"></i>\n </button>\n\n <Drawer.Header showCloseButton={false} onClose={onClose}>\n <div className=\"flex items-center gap-2 w-full\">\n {!isRootLevel && (\n <button\n type=\"button\"\n className=\"text-gray-500 hover:text-gray-800 transition-colors flex-shrink-0\"\n onClick={goBack}\n aria-label={t('common.buttons.back', 'Back')}\n >\n <i className=\"sicon-keyboard_arrow_left text-xl flex items-center justify-center\"></i>\n </button>\n )}\n <span className=\"font-bold text-lg truncate flex-1 text-center pr-6 rtl:pl-6 rtl:pr-0\">\n {isRootLevel ? t('blocks.header.main_menu', 'Menu') : currentLevel.title}\n </span>\n </div>\n </Drawer.Header>\n <Drawer.Body className=\"p-0 overflow-hidden\">\n <nav className=\"mobile-menu h-full overflow-y-auto\">\n {isLoading ? (\n <MobileMenuSkeleton />\n ) : (\n <ul\n className={`divide-y divide-gray-100 transition-all duration-200 ease-out ${getListAnimationClass()}`}\n >\n {currentLevel.items.map((item) => {\n const hasChildren =\n item.has_children && item.children && item.children.length > 0;\n\n return (\n <li key={item.id} className=\"mobile-menu-item\">\n {hasChildren ? (\n <button\n type=\"button\"\n className=\"flex items-center justify-between w-full py-4 hover:text-primary transition-colors text-start group\"\n onClick={() => openSubmenu(item)}\n >\n <span className=\"text-gray-800 group-hover:text-primary font-medium text-base\">\n {item.title}\n </span>\n <i className=\"sicon-keyboard_arrow_right rtl:rotate-180 text-gray-500 group-hover:text-primary text-lg flex items-center justify-center h-full\"></i>\n </button>\n ) : (\n <Link\n to={item.url}\n className=\"block w-full py-4 hover:text-primary transition-colors text-gray-800 font-medium text-base group\"\n onClick={onClose}\n >\n <span className=\"group-hover:translate-x-1 rtl:group-hover:-translate-x-1 inline-block transition-transform\">\n {item.title}\n </span>\n </Link>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n </Drawer.Body>\n </Drawer>\n </>\n );\n}\n"]}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
import './chunk-GHACVKKD.js';
|
|
2
|
+
import './chunk-H2QBHOF2.js';
|
|
3
|
+
import './chunk-6S2SIUOD.js';
|
|
4
|
+
import './chunk-OSIFK62D.js';
|
|
5
|
+
import './chunk-3CNXPHJE.js';
|
|
6
6
|
import './chunk-JYV25VNZ.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-VRLPOATQ.js';
|
|
8
8
|
import './chunk-OXMUPNMH.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-XDPKYHQJ.js';
|
|
10
10
|
import './chunk-VVZNW5CB.js';
|
|
11
11
|
import './chunk-5FJFN3IW.js';
|
|
12
12
|
import './chunk-GD26FI4J.js';
|
|
13
|
+
import './chunk-FID76MUV.js';
|
|
13
14
|
import './chunk-OM2GRPDH.js';
|
|
14
|
-
import './chunk-
|
|
15
|
+
import './chunk-2Z7XKCT3.js';
|
|
15
16
|
import './chunk-OUW6WESU.js';
|
|
16
17
|
import './chunk-BK5TBUGG.js';
|
|
17
18
|
import './chunk-HI5V5X3S.js';
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-XH36I3IM.js';
|
|
20
|
+
import './chunk-J2OPSCWD.js';
|
|
20
21
|
import './chunk-MVT5AF2A.js';
|
|
21
22
|
import './chunk-Z653O7MX.js';
|
|
22
23
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -27,16 +28,16 @@ import './chunk-7V36I5GT.js';
|
|
|
27
28
|
import './chunk-6WI7R2BD.js';
|
|
28
29
|
import './chunk-JGVEGQHJ.js';
|
|
29
30
|
import './chunk-OAMIDZKW.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-77Z3U5JT.js';
|
|
31
32
|
import './chunk-OQIIJRAS.js';
|
|
32
33
|
import './chunk-V2ZDTY6H.js';
|
|
33
|
-
import './chunk-
|
|
34
|
+
import './chunk-KSGBNVBQ.js';
|
|
34
35
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
35
36
|
import './chunk-GCPEMNSU.js';
|
|
36
|
-
import './chunk-
|
|
37
|
+
import './chunk-SOQN5WKL.js';
|
|
37
38
|
import './chunk-Z5M4YYWT.js';
|
|
38
39
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
39
|
-
import { LazyNoContent } from './chunk-
|
|
40
|
+
import { LazyNoContent } from './chunk-MYW5QYWO.js';
|
|
40
41
|
import './chunk-AXW67SY7.js';
|
|
41
42
|
import './chunk-BYMOPN2S.js';
|
|
42
43
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -97,5 +98,5 @@ function NotificationsPage({ notifications }) {
|
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
export { NotificationsPage };
|
|
100
|
-
//# sourceMappingURL=NotificationsPage-
|
|
101
|
-
//# sourceMappingURL=NotificationsPage-
|
|
101
|
+
//# sourceMappingURL=NotificationsPage-L57HNZRC.js.map
|
|
102
|
+
//# sourceMappingURL=NotificationsPage-L57HNZRC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/notifications/NotificationsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,gBAAA,CAAiB,EAAE,YAAA,EAAa,EAAmC;AAC1E,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,YAAA,CAAa,GAAA;AAAA,MACnB,SAAA,EAAW,CAAA,gDAAA,EAAmD,YAAA,CAAa,OAAA,GAAU,+BAA+B,EAAE,CAAA,CAAA;AAAA,MAEtH,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,2BAAA,EACd,QAAA,kBAAA,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,WAAW,CAAA,yCAAA,EAA4C,CAAC,YAAA,CAAa,OAAA,GAAU,mCAAmC,EAAE,CAAA;AAAA;AAAA,SACrH,EACH,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sCAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAI,uBAAa,KAAA,EAAM,CAAA;AAAA,4BACxB,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,YAAA,CAAa,IAAA,EAAK;AAAA,WAAA,EACxB,CAAA;AAAA,0BACA,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uCAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,WAAU,uDAAA,EAAwD,CAAA;AAAA,4BACrE,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,YAAA,CAAa,QAAA,EAAS;AAAA,WAAA,EAC/B;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;AAEO,SAAS,iBAAA,CAAkB,EAAE,aAAA,EAAc,EAA2B;AAC3E,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,oCAAA,EAAqC,CAAA;AAAA,oBACpD,GAAA,CAAC,SAAI,SAAA,EAAU,yBAAA,EACZ,wBAAc,MAAA,GAAS,CAAA,mBACtB,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EACZ,wBAAc,GAAA,CAAI,CAAC,IAAA,qBAClB,GAAA,CAAC,gBAAA,EAAA,EAA+B,YAAA,EAAc,QAAvB,IAAA,CAAK,EAAwB,CACrD,CAAA,EACH,CAAA,mBAEA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,iBAAA;AAAA,QACL,OAAA,EAAS,CAAA,CAAE,gCAAA,EAAkC,kBAAkB;AAAA;AAAA,KACjE,EAEJ,CAAA;AAAA,oBACA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,kCAAA,EAAmC;AAAA,GAAA,EACpD,CAAA;AAEJ","file":"NotificationsPage-L57HNZRC.js","sourcesContent":["import { HookSlot } from '../../../hooks';\nimport { NoContent } from '../../../components/common';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { NotificationsPageProps, Notification } from './types';\n\nfunction NotificationItem({ notification }: { notification: Notification }) {\n return (\n <a\n href={notification.url}\n className={`s-notifications-item s-notifications-item-shadow${notification.is_read ? ' s-notifications-item-read' : ''}`}\n >\n <span className=\"s-notifications-item-icon\">\n <i\n className={`s-notifications-item-icon sicon-bell-ring${!notification.is_read ? ' s-notifications-item-icon-new' : ''}`}\n ></i>\n </span>\n <div className=\"s-notifications-item-content\">\n <div className=\"s-notifications-item-content-leading\">\n <h4>{notification.title}</h4>\n <p>{notification.body}</p>\n </div>\n <span className=\"s-notifications-item-content-trailing\">\n <i className=\"sicon-time s-notifications-item-content-trailing-icon\"></i>\n <span>{notification.time_ago}</span>\n </span>\n </div>\n </a>\n );\n}\n\nexport function NotificationsPage({ notifications }: NotificationsPageProps) {\n const { t } = useTranslation();\n\n return (\n <>\n <HookSlot name=\"customer:notifications.items.start\" />\n <div className=\"s-notifications-wrapper\">\n {notifications.length > 0 ? (\n <div className=\"s-notifications-container space-y-2\">\n {notifications.map((item: Notification) => (\n <NotificationItem key={item.id} notification={item} />\n ))}\n </div>\n ) : (\n <NoContent\n icon=\"sicon-bell-ring\"\n message={t('blocks.header.no_notifications', 'No notifications')}\n />\n )}\n </div>\n <HookSlot name=\"customer:notifications.items.end\" />\n </>\n );\n}\n"]}
|