@salla.sa/twilight-theme-engine 1.0.0-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/dist/{AddToCartForm-VS67AFNL.js → AddToCartForm-H4K4VS3M.js} +24 -25
  2. package/dist/AddToCartForm-H4K4VS3M.js.map +1 -0
  3. package/dist/{BlogAuthorPage-276K2KQS.js → BlogAuthorPage-FN4XX2OK.js} +30 -27
  4. package/dist/BlogAuthorPage-FN4XX2OK.js.map +1 -0
  5. package/dist/{BlogCategoryPage-GF5PLRG7.js → BlogCategoryPage-MUHIK4WT.js} +30 -27
  6. package/dist/BlogCategoryPage-MUHIK4WT.js.map +1 -0
  7. package/dist/{BlogPage-BU672BXD.js → BlogPage-ZG655QM7.js} +33 -24
  8. package/dist/BlogPage-ZG655QM7.js.map +1 -0
  9. package/dist/{BlogSinglePage-ELV4S5EV.js → BlogSinglePage-FLVGIIL7.js} +25 -23
  10. package/dist/BlogSinglePage-FLVGIIL7.js.map +1 -0
  11. package/dist/{BlogTagPage-TXQP6ZOI.js → BlogTagPage-ETQGMVW3.js} +30 -27
  12. package/dist/BlogTagPage-ETQGMVW3.js.map +1 -0
  13. package/dist/{BrandsPage-C6ZHC4KC.js → BrandsPage-BCJWSKQ4.js} +24 -23
  14. package/dist/BrandsPage-BCJWSKQ4.js.map +1 -0
  15. package/dist/{Breadcrumb-TG4UTNRM.js → Breadcrumb-4AANUEKN.js} +24 -23
  16. package/dist/Breadcrumb-4AANUEKN.js.map +1 -0
  17. package/dist/{CartItem-55JV6HDS.js → CartItem-VMYGVMOT.js} +27 -26
  18. package/dist/CartItem-VMYGVMOT.js.map +1 -0
  19. package/dist/{CartSummary-CUWMHHMD.js → CartSummary-W7H5YTN6.js} +24 -23
  20. package/dist/CartSummary-W7H5YTN6.js.map +1 -0
  21. package/dist/Copyright-VREW3OTU.js +9 -0
  22. package/dist/{Copyright-PG76AVV6.js.map → Copyright-VREW3OTU.js.map} +1 -1
  23. package/dist/{CustomerLayout-SLNVCNZ6.js → CustomerLayout-HI3MHMOJ.js} +24 -23
  24. package/dist/CustomerLayout-HI3MHMOJ.js.map +1 -0
  25. package/dist/ErrorPage-XGBROULF.js +6 -0
  26. package/dist/{ErrorPage-TK4U3ENF.js.map → ErrorPage-XGBROULF.js.map} +1 -1
  27. package/dist/Footer-66XHPADY.js +40 -0
  28. package/dist/{Footer-MZDSEK57.js.map → Footer-66XHPADY.js.map} +1 -1
  29. package/dist/Header-TZX55FDN.js +15 -0
  30. package/dist/{Header-CXFKDTOA.js.map → Header-TZX55FDN.js.map} +1 -1
  31. package/dist/ImageModal-LHFSYPSU.js +32 -0
  32. package/dist/ImageModal-LHFSYPSU.js.map +1 -0
  33. package/dist/{LoyaltyPage-AIA3CUYI.js → LoyaltyPage-JN2KJC7E.js} +29 -28
  34. package/dist/LoyaltyPage-JN2KJC7E.js.map +1 -0
  35. package/dist/{MainMenu-T3M5RB7L.js → MainMenu-M2SHKHOK.js} +16 -37
  36. package/dist/MainMenu-M2SHKHOK.js.map +1 -0
  37. package/dist/MasterLayout-2346V2WQ.js +40 -0
  38. package/dist/{MasterLayout-QUBHRA32.js.map → MasterLayout-2346V2WQ.js.map} +1 -1
  39. package/dist/{MobileMenu-6D52JOQA.js → MobileMenu-LTGCUCOZ.js} +47 -60
  40. package/dist/MobileMenu-LTGCUCOZ.js.map +1 -0
  41. package/dist/{NotificationsPage-6H45SAS7.js → NotificationsPage-6D7WS3H2.js} +24 -23
  42. package/dist/NotificationsPage-6D7WS3H2.js.map +1 -0
  43. package/dist/{OrderSinglePage-GP2M3YVH.js → OrderSinglePage-NAZY23SD.js} +73 -61
  44. package/dist/OrderSinglePage-NAZY23SD.js.map +1 -0
  45. package/dist/{OrdersPage-OQGJLTQP.js → OrdersPage-ARIDUNIW.js} +25 -24
  46. package/dist/OrdersPage-ARIDUNIW.js.map +1 -0
  47. package/dist/{PageSingle-44NVAUIT.js → PageSingle-X7FAYXMH.js} +3 -3
  48. package/dist/{PageSingle-44NVAUIT.js.map → PageSingle-X7FAYXMH.js.map} +1 -1
  49. package/dist/{PreOrderNotification-ZVTGNV7K.js → PreOrderNotification-OP57EA6F.js} +3 -3
  50. package/dist/PreOrderNotification-OP57EA6F.js.map +1 -0
  51. package/dist/{PriceQuoteButton-RAAPL4N4.js → PriceQuoteButton-CGRNHY3E.js} +6 -6
  52. package/dist/PriceQuoteButton-CGRNHY3E.js.map +1 -0
  53. package/dist/{ProductDetails-2JUCRU4W.js → ProductDetails-M5DBXW7K.js} +11 -10
  54. package/dist/ProductDetails-M5DBXW7K.js.map +1 -0
  55. package/dist/{ProfilePage-XGZ2HCQH.js → ProfilePage-YMFZQIKT.js} +24 -23
  56. package/dist/ProfilePage-YMFZQIKT.js.map +1 -0
  57. package/dist/{SeoCartWidget-PDK6IQ2H.js → SeoCartWidget-VVDUBWCT.js} +24 -23
  58. package/dist/SeoCartWidget-VVDUBWCT.js.map +1 -0
  59. package/dist/{SettingsPage-VCQNV2PP.js → SettingsPage-P7H7MQHU.js} +24 -23
  60. package/dist/SettingsPage-P7H7MQHU.js.map +1 -0
  61. package/dist/StoreClosedNotification-4WCOB6Y6.js +41 -0
  62. package/dist/{StoreClosedNotification-3JRNBNQK.js.map → StoreClosedNotification-4WCOB6Y6.js.map} +1 -1
  63. package/dist/{TestimonialsPage-ENMVJ4QG.js → TestimonialsPage-OYWHHUB3.js} +4 -4
  64. package/dist/TestimonialsPage-OYWHHUB3.js.map +1 -0
  65. package/dist/{ThankYouPage-4FTP6E2Y.js → ThankYouPage-XSZXBUV3.js} +32 -26
  66. package/dist/ThankYouPage-XSZXBUV3.js.map +1 -0
  67. package/dist/{WalletPage-VKV44EEG.js → WalletPage-EPD22OHW.js} +25 -24
  68. package/dist/WalletPage-EPD22OHW.js.map +1 -0
  69. package/dist/WidgetHead-RWL7D3CT.js +7 -0
  70. package/dist/{WidgetHead-FXEPCB23.js.map → WidgetHead-RWL7D3CT.js.map} +1 -1
  71. package/dist/{WishlistPage-GJZCXQUY.js → WishlistPage-I27GDNTK.js} +25 -24
  72. package/dist/WishlistPage-I27GDNTK.js.map +1 -0
  73. package/dist/ambient/virtual-modules.d.ts +28 -0
  74. package/dist/api/apps.js +2 -2
  75. package/dist/api/brands.js +5 -34
  76. package/dist/api/cart.js +5 -34
  77. package/dist/api/category.js +5 -34
  78. package/dist/api/client.d.ts.map +1 -1
  79. package/dist/api/client.js +2 -2
  80. package/dist/api/home.js +3 -3
  81. package/dist/api/loyalty.js +5 -34
  82. package/dist/api/menu.js +3 -3
  83. package/dist/api/notification.js +3 -3
  84. package/dist/api/order.js +5 -34
  85. package/dist/api/page.js +5 -34
  86. package/dist/api/product.js +5 -34
  87. package/dist/api/profile.js +2 -2
  88. package/dist/api/store.js +3 -3
  89. package/dist/api/translations.d.ts +1 -1
  90. package/dist/api/translations.d.ts.map +1 -1
  91. package/dist/api/translations.js +3 -3
  92. package/dist/api/user.js +3 -3
  93. package/dist/api/wishlist.js +3 -3
  94. package/dist/chunk-2JV6WZ6O.js +136 -0
  95. package/dist/chunk-2JV6WZ6O.js.map +1 -0
  96. package/dist/{chunk-TQUHDSKQ.js → chunk-2TB2LTL2.js} +3 -11
  97. package/dist/chunk-2TB2LTL2.js.map +1 -0
  98. package/dist/{chunk-JIJOXZPF.js → chunk-2ZRLSZ4V.js} +6 -12
  99. package/dist/chunk-2ZRLSZ4V.js.map +1 -0
  100. package/dist/{chunk-433EFDBW.js → chunk-3OAVM4PY.js} +4 -4
  101. package/dist/chunk-3OAVM4PY.js.map +1 -0
  102. package/dist/{chunk-S6AVEFCN.js → chunk-4LGAJDZV.js} +19 -12
  103. package/dist/chunk-4LGAJDZV.js.map +1 -0
  104. package/dist/{chunk-GFMVML6I.js → chunk-6D7SF3YR.js} +3 -3
  105. package/dist/{chunk-GFMVML6I.js.map → chunk-6D7SF3YR.js.map} +1 -1
  106. package/dist/{chunk-THXWAZX2.js → chunk-6JMXDZXL.js} +12 -17
  107. package/dist/chunk-6JMXDZXL.js.map +1 -0
  108. package/dist/{chunk-FCZRF6DB.js → chunk-6NBBXERE.js} +3 -3
  109. package/dist/{chunk-FCZRF6DB.js.map → chunk-6NBBXERE.js.map} +1 -1
  110. package/dist/{chunk-5DZ7HLSO.js → chunk-6Q5BFHFA.js} +3 -3
  111. package/dist/{chunk-5DZ7HLSO.js.map → chunk-6Q5BFHFA.js.map} +1 -1
  112. package/dist/{chunk-XHGF75TM.js → chunk-6TKIUG5C.js} +11 -4
  113. package/dist/chunk-6TKIUG5C.js.map +1 -0
  114. package/dist/{chunk-TQLEQSXE.js → chunk-6Z4MOC4S.js} +3 -19
  115. package/dist/chunk-6Z4MOC4S.js.map +1 -0
  116. package/dist/{chunk-SUFCEN4T.js → chunk-7LP7D75V.js} +3 -3
  117. package/dist/{chunk-SUFCEN4T.js.map → chunk-7LP7D75V.js.map} +1 -1
  118. package/dist/{chunk-GS3G4O2R.js → chunk-7O5DYSLX.js} +4 -4
  119. package/dist/chunk-7O5DYSLX.js.map +1 -0
  120. package/dist/{chunk-EB7X4YMZ.js → chunk-7UZEHQEQ.js} +4 -4
  121. package/dist/{chunk-EB7X4YMZ.js.map → chunk-7UZEHQEQ.js.map} +1 -1
  122. package/dist/{chunk-D4SRWUMH.js → chunk-B2NXQJEO.js} +4 -4
  123. package/dist/{chunk-D4SRWUMH.js.map → chunk-B2NXQJEO.js.map} +1 -1
  124. package/dist/{chunk-2FU6CVSB.js → chunk-C5X6CVXC.js} +3 -3
  125. package/dist/{chunk-2FU6CVSB.js.map → chunk-C5X6CVXC.js.map} +1 -1
  126. package/dist/chunk-CUG6VOLM.js +10 -0
  127. package/dist/{chunk-3DCZJDDK.js.map → chunk-CUG6VOLM.js.map} +1 -1
  128. package/dist/{chunk-BWFBVXT3.js → chunk-DF6FBKDN.js} +2 -2
  129. package/dist/chunk-DF6FBKDN.js.map +1 -0
  130. package/dist/{chunk-GTM2GV2N.js → chunk-DIVL44G5.js} +65 -43
  131. package/dist/chunk-DIVL44G5.js.map +1 -0
  132. package/dist/{chunk-YRKMHN7W.js → chunk-EHKTHLXK.js} +3 -3
  133. package/dist/{chunk-YRKMHN7W.js.map → chunk-EHKTHLXK.js.map} +1 -1
  134. package/dist/{chunk-P43TLDS6.js → chunk-ENIGLGGV.js} +6 -6
  135. package/dist/chunk-ENIGLGGV.js.map +1 -0
  136. package/dist/{chunk-UE3BUFZI.js → chunk-FZKRSGLP.js} +3 -3
  137. package/dist/{chunk-UE3BUFZI.js.map → chunk-FZKRSGLP.js.map} +1 -1
  138. package/dist/{chunk-C5GWTTB6.js → chunk-GQG4KE5Z.js} +4 -4
  139. package/dist/chunk-GQG4KE5Z.js.map +1 -0
  140. package/dist/{chunk-J37AYLWL.js → chunk-GU2KUQVD.js} +4 -3
  141. package/dist/chunk-GU2KUQVD.js.map +1 -0
  142. package/dist/{chunk-SVZOWI7E.js → chunk-HTGBIA7K.js} +3 -6
  143. package/dist/chunk-HTGBIA7K.js.map +1 -0
  144. package/dist/{chunk-ZZ7Q5LEG.js → chunk-HWVEOUG4.js} +3 -3
  145. package/dist/{chunk-ZZ7Q5LEG.js.map → chunk-HWVEOUG4.js.map} +1 -1
  146. package/dist/{chunk-3UHSMGPY.js → chunk-HX3YKS5W.js} +9 -3
  147. package/dist/chunk-HX3YKS5W.js.map +1 -0
  148. package/dist/{chunk-WA5QBFRU.js → chunk-I5Z4NJBB.js} +4 -4
  149. package/dist/{chunk-WA5QBFRU.js.map → chunk-I5Z4NJBB.js.map} +1 -1
  150. package/dist/{chunk-TWAHYRKI.js → chunk-IWMGDYNN.js} +4 -4
  151. package/dist/chunk-IWMGDYNN.js.map +1 -0
  152. package/dist/{chunk-TFZ2RT6P.js → chunk-JKIRRMBU.js} +3 -3
  153. package/dist/chunk-JKIRRMBU.js.map +1 -0
  154. package/dist/{chunk-YU36GBMB.js → chunk-KCKHA75V.js} +3 -3
  155. package/dist/{chunk-YU36GBMB.js.map → chunk-KCKHA75V.js.map} +1 -1
  156. package/dist/{chunk-W4CSWDEH.js → chunk-KIPZQN3Y.js} +2 -7
  157. package/dist/chunk-KIPZQN3Y.js.map +1 -0
  158. package/dist/{chunk-2SUOZEX2.js → chunk-KJRALAYM.js} +3 -3
  159. package/dist/chunk-KJRALAYM.js.map +1 -0
  160. package/dist/{chunk-SAZBQNQK.js → chunk-KZDE3XKU.js} +7 -7
  161. package/dist/chunk-KZDE3XKU.js.map +1 -0
  162. package/dist/{chunk-O7Z6BIPP.js → chunk-LSDIFHXZ.js} +4 -4
  163. package/dist/{chunk-O7Z6BIPP.js.map → chunk-LSDIFHXZ.js.map} +1 -1
  164. package/dist/{chunk-7RVUSB5C.js → chunk-NBHI5X36.js} +4 -4
  165. package/dist/{chunk-7RVUSB5C.js.map → chunk-NBHI5X36.js.map} +1 -1
  166. package/dist/{chunk-UIX3W2PN.js → chunk-OAMIDZKW.js} +3 -3
  167. package/dist/chunk-OAMIDZKW.js.map +1 -0
  168. package/dist/{chunk-MXQCE3KA.js → chunk-OBSAH7K6.js} +4 -45
  169. package/dist/chunk-OBSAH7K6.js.map +1 -0
  170. package/dist/{chunk-IILTG4A6.js → chunk-P26QKBJC.js} +84 -63
  171. package/dist/chunk-P26QKBJC.js.map +1 -0
  172. package/dist/chunk-Q5YIGQTT.js +14 -0
  173. package/dist/{chunk-ZOCDYJPX.js.map → chunk-Q5YIGQTT.js.map} +1 -1
  174. package/dist/{chunk-25SSLQAJ.js → chunk-Q7VWURUR.js} +5 -12
  175. package/dist/chunk-Q7VWURUR.js.map +1 -0
  176. package/dist/{chunk-SSQ75CKA.js → chunk-RINZVHVS.js} +4 -4
  177. package/dist/chunk-RINZVHVS.js.map +1 -0
  178. package/dist/{chunk-RYBA3JDM.js → chunk-RJPPO3ET.js} +4 -4
  179. package/dist/{chunk-RYBA3JDM.js.map → chunk-RJPPO3ET.js.map} +1 -1
  180. package/dist/{chunk-Q6MQLAYL.js → chunk-TCSNNCRH.js} +3 -3
  181. package/dist/{chunk-Q6MQLAYL.js.map → chunk-TCSNNCRH.js.map} +1 -1
  182. package/dist/{chunk-GOYYO4NI.js → chunk-TP3LCGE7.js} +2 -2
  183. package/dist/{chunk-GOYYO4NI.js.map → chunk-TP3LCGE7.js.map} +1 -1
  184. package/dist/{chunk-U33UQAWO.js → chunk-TSAQIQCD.js} +10 -9
  185. package/dist/chunk-TSAQIQCD.js.map +1 -0
  186. package/dist/{chunk-VVRYP6IL.js → chunk-TYNZ5B2B.js} +2 -2
  187. package/dist/chunk-TYNZ5B2B.js.map +1 -0
  188. package/dist/{chunk-CI4HKXVH.js → chunk-W6HFR7YA.js} +4 -4
  189. package/dist/chunk-W6HFR7YA.js.map +1 -0
  190. package/dist/{chunk-REQC7YOE.js → chunk-WUTGBZQR.js} +9 -14
  191. package/dist/chunk-WUTGBZQR.js.map +1 -0
  192. package/dist/{chunk-4AYOFKHU.js → chunk-XK42WXU5.js} +3 -3
  193. package/dist/chunk-XK42WXU5.js.map +1 -0
  194. package/dist/{chunk-HL3HSO4R.js → chunk-Y62QQRYP.js} +5 -5
  195. package/dist/chunk-Y62QQRYP.js.map +1 -0
  196. package/dist/{chunk-FBFPH5BB.js → chunk-Z4Y55HWX.js} +8 -8
  197. package/dist/chunk-Z4Y55HWX.js.map +1 -0
  198. package/dist/{chunk-6LQFMCWK.js → chunk-ZNOJPVX3.js} +4 -4
  199. package/dist/chunk-ZNOJPVX3.js.map +1 -0
  200. package/dist/components/cart/CartItem.d.ts.map +1 -1
  201. package/dist/components/cart/PriceQuoteButton.d.ts.map +1 -1
  202. package/dist/components/cart/index.js +1 -1
  203. package/dist/components/collapse/Collapse.d.ts +2 -2
  204. package/dist/components/collapse/Collapse.d.ts.map +1 -1
  205. package/dist/components/collapse/index.js +3 -3
  206. package/dist/components/collapse/index.js.map +1 -1
  207. package/dist/components/common/DeferredData.d.ts +0 -1
  208. package/dist/components/common/DeferredData.d.ts.map +1 -1
  209. package/dist/components/common/ErrorPage.d.ts.map +1 -1
  210. package/dist/components/common/index.js +1 -1
  211. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  212. package/dist/components/drawer/index.js +23 -22
  213. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  214. package/dist/components/dropdown/index.js +17 -1
  215. package/dist/components/dropdown/index.js.map +1 -1
  216. package/dist/components/home/ComponentErrorBoundary.d.ts +1 -1
  217. package/dist/components/home/ComponentErrorBoundary.d.ts.map +1 -1
  218. package/dist/components/home/PhotosSlider.d.ts +1 -0
  219. package/dist/components/home/PhotosSlider.d.ts.map +1 -1
  220. package/dist/components/home/SquarePhotos.d.ts +1 -0
  221. package/dist/components/home/SquarePhotos.d.ts.map +1 -1
  222. package/dist/components/home/StoreFeatures.d.ts.map +1 -1
  223. package/dist/components/home/index.js +25 -24
  224. package/dist/components/layout/Header.d.ts.map +1 -1
  225. package/dist/components/layout/index.js +10 -10
  226. package/dist/components/modal/ImageModal.d.ts.map +1 -1
  227. package/dist/components/modal/Modal.d.ts.map +1 -1
  228. package/dist/components/modal/index.js +2 -2
  229. package/dist/components/navigation/MainMenu.d.ts.map +1 -1
  230. package/dist/components/navigation/MobileMenu.d.ts +1 -1
  231. package/dist/components/navigation/MobileMenu.d.ts.map +1 -1
  232. package/dist/components/product/AddToCartForm.d.ts +1 -1
  233. package/dist/components/product/AddToCartForm.d.ts.map +1 -1
  234. package/dist/components/product/ProductGallery.d.ts.map +1 -1
  235. package/dist/components/product/index.js +23 -22
  236. package/dist/components/store/index.js +24 -23
  237. package/dist/components/store/index.js.map +1 -1
  238. package/dist/components/toast/index.js +47 -2
  239. package/dist/components/toast/index.js.map +1 -1
  240. package/dist/dev/DevSettingsWidget.d.ts +19 -0
  241. package/dist/dev/DevSettingsWidget.d.ts.map +1 -0
  242. package/dist/dev/dev-settings-store.d.ts +62 -0
  243. package/dist/dev/dev-settings-store.d.ts.map +1 -0
  244. package/dist/dev/index.d.ts +9 -0
  245. package/dist/dev/index.d.ts.map +1 -0
  246. package/dist/dev/index.js +330 -0
  247. package/dist/dev/index.js.map +1 -0
  248. package/dist/dev/schema-types.d.ts +43 -0
  249. package/dist/dev/schema-types.d.ts.map +1 -0
  250. package/dist/document-class-WLNCTQI2.js +21 -0
  251. package/dist/{document-class-V5XSWLMX.js.map → document-class-WLNCTQI2.js.map} +1 -1
  252. package/dist/hooks/HookRegistry.d.ts +1 -0
  253. package/dist/hooks/HookRegistry.d.ts.map +1 -1
  254. package/dist/hooks/HookRegistry.js +1 -1
  255. package/dist/hooks/HookSlot.d.ts +1 -1
  256. package/dist/hooks/HookSlot.d.ts.map +1 -1
  257. package/dist/hooks/HookSlot.js +3 -3
  258. package/dist/hooks/index.d.ts +0 -1
  259. package/dist/hooks/index.d.ts.map +1 -1
  260. package/dist/hooks/index.js +22 -21
  261. package/dist/hooks/useBlogLike.js +2 -2
  262. package/dist/hooks/useGtm.js +22 -21
  263. package/dist/hooks/useHook.js +2 -2
  264. package/dist/hooks/useMoney.d.ts.map +1 -1
  265. package/dist/hooks/useMoney.js +22 -21
  266. package/dist/hooks/useNumber.d.ts.map +1 -1
  267. package/dist/hooks/useStore.js +22 -21
  268. package/dist/hooks/useTheme.js +2 -2
  269. package/dist/hooks/useUser.js +4 -4
  270. package/dist/i18n.d.ts +1 -1
  271. package/dist/i18n.js +1 -1
  272. package/dist/index.d.ts +1 -3
  273. package/dist/index.d.ts.map +1 -1
  274. package/dist/index.js +22 -21
  275. package/dist/index.js.map +1 -1
  276. package/dist/navigation-ZCEGLIHD.js +10 -0
  277. package/dist/{navigation-77T2NTFS.js.map → navigation-ZCEGLIHD.js.map} +1 -1
  278. package/dist/{navigation-JPUI67XY.js → navigation-ZIULIDFF.js} +6 -6
  279. package/dist/{navigation-JPUI67XY.js.map → navigation-ZIULIDFF.js.map} +1 -1
  280. package/dist/nextjs/index.d.ts +1 -2
  281. package/dist/nextjs/index.d.ts.map +1 -1
  282. package/dist/nextjs/link.d.ts +0 -4
  283. package/dist/nextjs/link.d.ts.map +1 -1
  284. package/dist/nextjs/router.d.ts +0 -6
  285. package/dist/nextjs/router.d.ts.map +1 -1
  286. package/dist/nextjs.js +2 -7
  287. package/dist/nextjs.js.map +1 -1
  288. package/dist/{not-found-73ZVE5QO.js → not-found-GRNEMF22.js} +24 -23
  289. package/dist/not-found-GRNEMF22.js.map +1 -0
  290. package/dist/providers/{i18n.d.ts → I18nProvider.d.ts} +1 -1
  291. package/dist/providers/I18nProvider.d.ts.map +1 -0
  292. package/dist/providers/NavigationProvider.d.ts +1 -4
  293. package/dist/providers/NavigationProvider.d.ts.map +1 -1
  294. package/dist/providers/TwilightProvider.d.ts +1 -1
  295. package/dist/providers/TwilightProvider.d.ts.map +1 -1
  296. package/dist/providers/index.js +22 -21
  297. package/dist/providers/navigation-setups.d.ts +5 -0
  298. package/dist/providers/navigation-setups.d.ts.map +1 -0
  299. package/dist/providers/twilight-context.d.ts +1 -1
  300. package/dist/providers/twilight-context.d.ts.map +1 -1
  301. package/dist/providers/twilight-init.d.ts +1 -2
  302. package/dist/providers/twilight-init.d.ts.map +1 -1
  303. package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -1
  304. package/dist/routes/account/orders.js +6 -35
  305. package/dist/routes/account.js +14 -43
  306. package/dist/routes/account.js.map +1 -1
  307. package/dist/routes/blog/BlogAuthorPage.d.ts.map +1 -1
  308. package/dist/routes/blog/BlogCategoryPage.d.ts.map +1 -1
  309. package/dist/routes/blog/BlogPage.d.ts +1 -1
  310. package/dist/routes/blog/BlogPage.d.ts.map +1 -1
  311. package/dist/routes/blog/BlogSinglePage.d.ts.map +1 -1
  312. package/dist/routes/blog/BlogTagPage.d.ts.map +1 -1
  313. package/dist/routes/blog.js +10 -39
  314. package/dist/routes/blog.js.map +1 -1
  315. package/dist/routes/brands.js +6 -35
  316. package/dist/routes/brands.js.map +1 -1
  317. package/dist/routes/cart.js +30 -29
  318. package/dist/routes/cart.js.map +1 -1
  319. package/dist/routes/home/HomePage.d.ts.map +1 -1
  320. package/dist/routes/home.js +27 -26
  321. package/dist/routes/index.d.ts +2 -2
  322. package/dist/routes/index.d.ts.map +1 -1
  323. package/dist/routes/index.js +5 -35
  324. package/dist/routes/loyalty.js +6 -35
  325. package/dist/routes/loyalty.js.map +1 -1
  326. package/dist/routes/page.js +6 -35
  327. package/dist/routes/page.js.map +1 -1
  328. package/dist/routes/product-listing/ProductListPage.d.ts.map +1 -1
  329. package/dist/routes/product-listing.js +30 -32
  330. package/dist/routes/product-listing.js.map +1 -1
  331. package/dist/routes/product.js +25 -24
  332. package/dist/routes/product.js.map +1 -1
  333. package/dist/routes/root/beforeLoad.d.ts +0 -2
  334. package/dist/routes/root/beforeLoad.d.ts.map +1 -1
  335. package/dist/routes/seo-redirects.js +4 -35
  336. package/dist/routes/testimonials.js +2 -2
  337. package/dist/routes/thank-you/ThankYouPage.d.ts +1 -1
  338. package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
  339. package/dist/routes/thank-you.js +6 -35
  340. package/dist/routes/thank-you.js.map +1 -1
  341. package/dist/skeleton.js +27 -26
  342. package/dist/tanstack/middleware/twilight.d.ts.map +1 -1
  343. package/dist/tanstack/router.d.ts +0 -3
  344. package/dist/tanstack/router.d.ts.map +1 -1
  345. package/dist/tanstack.js +16 -31
  346. package/dist/tanstack.js.map +1 -1
  347. package/dist/twilight/context.d.ts +0 -1
  348. package/dist/twilight/context.d.ts.map +1 -1
  349. package/dist/types/hooks.d.ts +1 -0
  350. package/dist/types/hooks.d.ts.map +1 -1
  351. package/dist/types/hooks.js +1 -1
  352. package/dist/types/index.js +1 -1
  353. package/dist/{providers/salla-sdk.types.d.ts → types/salla-sdk.d.ts} +3 -1
  354. package/dist/types/salla-sdk.d.ts.map +1 -0
  355. package/dist/{providers/twilight.types.d.ts → types/twilight.d.ts} +4 -5
  356. package/dist/types/twilight.d.ts.map +1 -0
  357. package/dist/utils/breadcrumb.d.ts +0 -1
  358. package/dist/utils/breadcrumb.d.ts.map +1 -1
  359. package/dist/utils/engine-version.d.ts +10 -0
  360. package/dist/utils/engine-version.d.ts.map +1 -0
  361. package/dist/utils/index.js +21 -3
  362. package/dist/utils/index.js.map +1 -1
  363. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  364. package/dist/vite/index.js +174 -4
  365. package/dist/vite/index.js.map +1 -1
  366. package/dist/vite/plugins/twilight-schema.d.ts +18 -0
  367. package/dist/vite/plugins/twilight-schema.d.ts.map +1 -0
  368. package/dist/vite/plugins/twilight-schema.plugin.d.ts +20 -0
  369. package/dist/vite/plugins/twilight-schema.plugin.d.ts.map +1 -0
  370. package/dist/vite/types.d.ts +7 -0
  371. package/dist/vite/types.d.ts.map +1 -1
  372. package/package.json +8 -1
  373. package/dist/AddToCartForm-VS67AFNL.js.map +0 -1
  374. package/dist/BlogAuthorPage-276K2KQS.js.map +0 -1
  375. package/dist/BlogCategoryPage-GF5PLRG7.js.map +0 -1
  376. package/dist/BlogPage-BU672BXD.js.map +0 -1
  377. package/dist/BlogSinglePage-ELV4S5EV.js.map +0 -1
  378. package/dist/BlogTagPage-TXQP6ZOI.js.map +0 -1
  379. package/dist/BrandsPage-C6ZHC4KC.js.map +0 -1
  380. package/dist/Breadcrumb-TG4UTNRM.js.map +0 -1
  381. package/dist/CartItem-55JV6HDS.js.map +0 -1
  382. package/dist/CartSummary-CUWMHHMD.js.map +0 -1
  383. package/dist/Copyright-PG76AVV6.js +0 -9
  384. package/dist/CustomerLayout-SLNVCNZ6.js.map +0 -1
  385. package/dist/ErrorPage-TK4U3ENF.js +0 -6
  386. package/dist/Footer-MZDSEK57.js +0 -39
  387. package/dist/Header-CXFKDTOA.js +0 -15
  388. package/dist/ImageModal-WLJM3WIE.js +0 -41
  389. package/dist/ImageModal-WLJM3WIE.js.map +0 -1
  390. package/dist/LoyaltyPage-AIA3CUYI.js.map +0 -1
  391. package/dist/MainMenu-T3M5RB7L.js.map +0 -1
  392. package/dist/MasterLayout-QUBHRA32.js +0 -39
  393. package/dist/MobileMenu-6D52JOQA.js.map +0 -1
  394. package/dist/NotificationsPage-6H45SAS7.js.map +0 -1
  395. package/dist/OrderSinglePage-GP2M3YVH.js.map +0 -1
  396. package/dist/OrdersPage-OQGJLTQP.js.map +0 -1
  397. package/dist/PreOrderNotification-ZVTGNV7K.js.map +0 -1
  398. package/dist/PriceQuoteButton-RAAPL4N4.js.map +0 -1
  399. package/dist/ProductDetails-2JUCRU4W.js.map +0 -1
  400. package/dist/ProfilePage-XGZ2HCQH.js.map +0 -1
  401. package/dist/SeoCartWidget-PDK6IQ2H.js.map +0 -1
  402. package/dist/SettingsPage-VCQNV2PP.js.map +0 -1
  403. package/dist/StoreClosedNotification-3JRNBNQK.js +0 -40
  404. package/dist/TestimonialsPage-ENMVJ4QG.js.map +0 -1
  405. package/dist/ThankYouPage-4FTP6E2Y.js.map +0 -1
  406. package/dist/WalletPage-VKV44EEG.js.map +0 -1
  407. package/dist/WidgetHead-FXEPCB23.js +0 -7
  408. package/dist/WishlistPage-GJZCXQUY.js.map +0 -1
  409. package/dist/chunk-25SSLQAJ.js.map +0 -1
  410. package/dist/chunk-2SUOZEX2.js.map +0 -1
  411. package/dist/chunk-3DCZJDDK.js +0 -10
  412. package/dist/chunk-3UHSMGPY.js.map +0 -1
  413. package/dist/chunk-433EFDBW.js.map +0 -1
  414. package/dist/chunk-4AYOFKHU.js.map +0 -1
  415. package/dist/chunk-6LQFMCWK.js.map +0 -1
  416. package/dist/chunk-BWFBVXT3.js.map +0 -1
  417. package/dist/chunk-C5GWTTB6.js.map +0 -1
  418. package/dist/chunk-CI4HKXVH.js.map +0 -1
  419. package/dist/chunk-FBFPH5BB.js.map +0 -1
  420. package/dist/chunk-GS3G4O2R.js.map +0 -1
  421. package/dist/chunk-GTM2GV2N.js.map +0 -1
  422. package/dist/chunk-HL3HSO4R.js.map +0 -1
  423. package/dist/chunk-IILTG4A6.js.map +0 -1
  424. package/dist/chunk-J37AYLWL.js.map +0 -1
  425. package/dist/chunk-JIJOXZPF.js.map +0 -1
  426. package/dist/chunk-MXQCE3KA.js.map +0 -1
  427. package/dist/chunk-P43TLDS6.js.map +0 -1
  428. package/dist/chunk-REQC7YOE.js.map +0 -1
  429. package/dist/chunk-S6AVEFCN.js.map +0 -1
  430. package/dist/chunk-SAZBQNQK.js.map +0 -1
  431. package/dist/chunk-SSQ75CKA.js.map +0 -1
  432. package/dist/chunk-SVZOWI7E.js.map +0 -1
  433. package/dist/chunk-TFZ2RT6P.js.map +0 -1
  434. package/dist/chunk-THXWAZX2.js.map +0 -1
  435. package/dist/chunk-TQLEQSXE.js.map +0 -1
  436. package/dist/chunk-TQUHDSKQ.js.map +0 -1
  437. package/dist/chunk-TWAHYRKI.js.map +0 -1
  438. package/dist/chunk-U33UQAWO.js.map +0 -1
  439. package/dist/chunk-UIX3W2PN.js.map +0 -1
  440. package/dist/chunk-VVRYP6IL.js.map +0 -1
  441. package/dist/chunk-W4CSWDEH.js.map +0 -1
  442. package/dist/chunk-XHGF75TM.js.map +0 -1
  443. package/dist/chunk-ZOCDYJPX.js +0 -14
  444. package/dist/components/common/types.d.ts +0 -7
  445. package/dist/components/common/types.d.ts.map +0 -1
  446. package/dist/document-class-V5XSWLMX.js +0 -21
  447. package/dist/hooks/useIsMobile.d.ts +0 -2
  448. package/dist/hooks/useIsMobile.d.ts.map +0 -1
  449. package/dist/lib/services/index.d.ts +0 -1
  450. package/dist/lib/services/index.d.ts.map +0 -1
  451. package/dist/navigation-77T2NTFS.js +0 -10
  452. package/dist/not-found-73ZVE5QO.js.map +0 -1
  453. package/dist/providers/i18n.d.ts.map +0 -1
  454. package/dist/providers/salla-sdk.types.d.ts.map +0 -1
  455. package/dist/providers/twilight.types.d.ts.map +0 -1
  456. package/dist/router/context.d.ts +0 -3
  457. package/dist/router/context.d.ts.map +0 -1
  458. package/dist/router/index.d.ts +0 -4
  459. package/dist/router/index.d.ts.map +0 -1
  460. package/dist/twilight/index.d.ts +0 -3
  461. package/dist/twilight/index.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-JIJOXZPF.js';
2
- import { getAuthToken, api } from './chunk-TQUHDSKQ.js';
1
+ import { orThrow } from './chunk-2ZRLSZ4V.js';
2
+ import { getAuthToken, api } from './chunk-2TB2LTL2.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var loyalty = {
@@ -29,5 +29,5 @@ var loyalty = {
29
29
  };
30
30
 
31
31
  export { loyalty };
32
- //# sourceMappingURL=chunk-SSQ75CKA.js.map
33
- //# sourceMappingURL=chunk-SSQ75CKA.js.map
32
+ //# sourceMappingURL=chunk-RINZVHVS.js.map
33
+ //# sourceMappingURL=chunk-RINZVHVS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/loyalty.ts"],"names":[],"mappings":";;;;AAKO,IAAM,OAAA,GAAU;AAAA,EACrB,KAAK,YAA8B;AACjC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,SAAS,EAAE,IAAA,EAAwB;AAClE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,UAAA,EAAY,MAAwB,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAA;AAAA,EAEzD,kBAAkB,YAA6B;AAC7C,IAAA,MAAM,WAAW,MAAM,GAAA,CAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAA2B;AAC5E,IAAA,OAAO,QAAA,CAAS,OAAA;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,SAAS,CAAA;AAAA,MACpB,OAAA,EAAS,MAAM,OAAA,CAAQ,GAAA;AAAI,KAC5B,CAAA;AAAA,IACH,MAAA,EAAQ,MACN,YAAA,CAA4B;AAAA,MAC1B,QAAA,EAAU,CAAC,SAAA,EAAW,QAAQ,CAAA;AAAA,MAC9B,OAAA,EAAS,MAAM,OAAA,CAAQ,gBAAA,EAAiB;AAAA;AAAA;AAAA,MAGxC,OAAA,EAAS,CAAC,CAAC,YAAA,EAAa;AAAA,MACxB,SAAA,EAAW;AAAA,KACZ;AAAA;AAEP","file":"chunk-RINZVHVS.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getAuthToken } from './client';\nimport type { Loyalty, PointBalanceResponse } from '../routes/loyalty/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const loyalty = {\n get: async (): Promise<Loyalty> => {\n const { data } = await api.get('loyalty').json<{ data: Loyalty }>();\n return data;\n },\n\n getOrThrow: (): Promise<Loyalty> => orThrow(loyalty.get()),\n\n getPointsBalance: async (): Promise<number> => {\n const response = await api.get('balance/points').json<PointBalanceResponse>();\n return response.balance;\n },\n\n queries: {\n detail: () =>\n queryOptions({\n queryKey: ['loyalty'],\n queryFn: () => loyalty.get(),\n }),\n points: () =>\n queryOptions<number | null>({\n queryKey: ['loyalty', 'points'],\n queryFn: () => loyalty.getPointsBalance(),\n // Points are customer-scoped; skip for guests (no token) — the request would\n // otherwise 400 with `token_not_provided`.\n enabled: !!getAuthToken(),\n staleTime: 30_000,\n }),\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { HookSlot } from './chunk-25SSLQAJ.js';
2
- import { useTwilight } from './chunk-BWFBVXT3.js';
1
+ import { HookSlot } from './chunk-Q7VWURUR.js';
2
+ import { useTwilight } from './chunk-DF6FBKDN.js';
3
3
  import { useEffect } from 'react';
4
4
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
5
 
@@ -29,5 +29,5 @@ function WidgetHead() {
29
29
  }
30
30
 
31
31
  export { WidgetHead, pushEqualHeightConfig };
32
- //# sourceMappingURL=chunk-RYBA3JDM.js.map
33
- //# sourceMappingURL=chunk-RYBA3JDM.js.map
32
+ //# sourceMappingURL=chunk-RJPPO3ET.js.map
33
+ //# sourceMappingURL=chunk-RJPPO3ET.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/WidgetHead.tsx"],"names":[],"mappings":";;;;;AAUO,SAAS,sBAAsB,QAAA,EAAyC;AAC7E,EAAA,MAAM,SAAA,GAAY,SAAS,qCAAqC,CAAA;AAChE,EAAA,IAAI,SAAA,KAAc,MAAA,IAAa,SAAA,KAAc,IAAA,EAAM;AAEnD,EAAA,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,SAAA,IAAa,EAAC;AACxC,EAAA,MAAA,CAAO,UAAU,IAAA,CAAK;AAAA,IACpB,WAAA,EAAa;AAAA,MACX,SAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,MAC5B,GAAA,EAAK,MAAA,CAAO,QAAA,CAAS,uCAAuC,KAAK,GAAG,CAAA;AAAA,MACpE,SAAA,EAAW,MAAA,CAAO,QAAA,CAAS,kCAAkC,KAAK,KAAK;AAAA;AACzE,GACD,CAAA;AACH;AAcO,SAAS,UAAA,GAAa;AAC3B,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAG9B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAA,GAAY,KAAA,CAAM,QAAA,IAAmD,EAAC;AAC5E,IAAA,qBAAA,CAAsB,QAAQ,CAAA;AAAA,EAChC,GAAG,CAAC,KAAA,CAAM,EAAA,EAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AAE7B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,YAAA,EAAa,GAAA,EAAG,IAAA,EAAC,CAAA;AAAA,oBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,MAAA,EAAO,KAAG,IAAA,EAAC,CAAA;AAAA,oBAC1B,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,UAAA,EAAW,KAAG,IAAA,EAAC;AAAA,GAAA,EAChC,CAAA;AAEJ","file":"chunk-RYBA3JDM.js","sourcesContent":["import { useEffect } from 'react';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { HookSlot } from '../../hooks/HookSlot';\n\n/**\n * Pushes the equal-height product card configuration to the GTM dataLayer.\n * Mirrors PHP `HeadWidget::run()` -> `GoogleTagManager::set('equalHeight', ...)`.\n *\n * @param settings - Flat settings map from the store (keyed by dot-path strings).\n */\nexport function pushEqualHeightConfig(settings: Record<string, unknown>): void {\n const isEnabled = settings['products::card.equal-height.enabled'];\n if (isEnabled === undefined || isEnabled === null) return;\n\n window.dataLayer = window.dataLayer ?? [];\n window.dataLayer.push({\n equalHeight: {\n isEnabled: Boolean(isEnabled),\n max: Number(settings['products::card.equal-height.max-pixel'] ?? 300),\n classType: String(settings['products::card.equal-height.type'] ?? 'min'),\n },\n });\n}\n\n/**\n * WidgetHead - Client-side head infrastructure widget.\n *\n * Handles runtime-only head operations that cannot be done in SSR head():\n * - Pushes `equalHeight` config to GTM dataLayer (requires window).\n * - Exposes `head:start`, `head`, and `head:end` HookSlots for theme customisation.\n *\n * Static head elements (favicon, msapplication tiles, theme colors, hreflang, custom CSS/JS)\n * are handled in __root.tsx head() function.\n *\n * Renders no visible UI.\n */\nexport function WidgetHead() {\n const { store } = useTwilight();\n\n // ── equalHeight → GTM dataLayer ───────────────────────────────────────────\n useEffect(() => {\n const settings = (store.settings as unknown as Record<string, unknown>) ?? {};\n pushEqualHeightConfig(settings);\n }, [store.id, store.settings]);\n\n return (\n <>\n <HookSlot name=\"head:start\" ssr />\n <HookSlot name=\"head\" ssr />\n <HookSlot name=\"head:end\" ssr />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/layout/WidgetHead.tsx"],"names":[],"mappings":";;;;;AAUO,SAAS,sBAAsB,QAAA,EAAyC;AAC7E,EAAA,MAAM,SAAA,GAAY,SAAS,qCAAqC,CAAA;AAChE,EAAA,IAAI,SAAA,KAAc,MAAA,IAAa,SAAA,KAAc,IAAA,EAAM;AAEnD,EAAA,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,SAAA,IAAa,EAAC;AACxC,EAAA,MAAA,CAAO,UAAU,IAAA,CAAK;AAAA,IACpB,WAAA,EAAa;AAAA,MACX,SAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,MAC5B,GAAA,EAAK,MAAA,CAAO,QAAA,CAAS,uCAAuC,KAAK,GAAG,CAAA;AAAA,MACpE,SAAA,EAAW,MAAA,CAAO,QAAA,CAAS,kCAAkC,KAAK,KAAK;AAAA;AACzE,GACD,CAAA;AACH;AAcO,SAAS,UAAA,GAAa;AAC3B,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAG9B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAA,GAAY,KAAA,CAAM,QAAA,IAAmD,EAAC;AAC5E,IAAA,qBAAA,CAAsB,QAAQ,CAAA;AAAA,EAChC,GAAG,CAAC,KAAA,CAAM,EAAA,EAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AAE7B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,YAAA,EAAa,GAAA,EAAG,IAAA,EAAC,CAAA;AAAA,oBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,MAAA,EAAO,KAAG,IAAA,EAAC,CAAA;AAAA,oBAC1B,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,UAAA,EAAW,KAAG,IAAA,EAAC;AAAA,GAAA,EAChC,CAAA;AAEJ","file":"chunk-RJPPO3ET.js","sourcesContent":["import { useEffect } from 'react';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { HookSlot } from '../../hooks/HookSlot';\n\n/**\n * Pushes the equal-height product card configuration to the GTM dataLayer.\n * Mirrors PHP `HeadWidget::run()` -> `GoogleTagManager::set('equalHeight', ...)`.\n *\n * @param settings - Flat settings map from the store (keyed by dot-path strings).\n */\nexport function pushEqualHeightConfig(settings: Record<string, unknown>): void {\n const isEnabled = settings['products::card.equal-height.enabled'];\n if (isEnabled === undefined || isEnabled === null) return;\n\n window.dataLayer = window.dataLayer ?? [];\n window.dataLayer.push({\n equalHeight: {\n isEnabled: Boolean(isEnabled),\n max: Number(settings['products::card.equal-height.max-pixel'] ?? 300),\n classType: String(settings['products::card.equal-height.type'] ?? 'min'),\n },\n });\n}\n\n/**\n * WidgetHead - Client-side head infrastructure widget.\n *\n * Handles runtime-only head operations that cannot be done in SSR head():\n * - Pushes `equalHeight` config to GTM dataLayer (requires window).\n * - Exposes `head:start`, `head`, and `head:end` HookSlots for theme customisation.\n *\n * Static head elements (favicon, msapplication tiles, theme colors, hreflang, custom CSS/JS)\n * are handled in __root.tsx head() function.\n *\n * Renders no visible UI.\n */\nexport function WidgetHead() {\n const { store } = useTwilight();\n\n // ── equalHeight → GTM dataLayer ───────────────────────────────────────────\n useEffect(() => {\n const settings = (store.settings as unknown as Record<string, unknown>) ?? {};\n pushEqualHeightConfig(settings);\n }, [store.id, store.settings]);\n\n return (\n <>\n <HookSlot name=\"head:start\" ssr />\n <HookSlot name=\"head\" ssr />\n <HookSlot name=\"head:end\" ssr />\n </>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-TQUHDSKQ.js';
1
+ import { api } from './chunk-2TB2LTL2.js';
2
2
  import { queryOptions } from '@tanstack/react-query';
3
3
 
4
4
  var user = {
@@ -19,5 +19,5 @@ var user = {
19
19
  };
20
20
 
21
21
  export { user };
22
- //# sourceMappingURL=chunk-Q6MQLAYL.js.map
23
- //# sourceMappingURL=chunk-Q6MQLAYL.js.map
22
+ //# sourceMappingURL=chunk-TCSNNCRH.js.map
23
+ //# sourceMappingURL=chunk-TCSNNCRH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-Q6MQLAYL.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-TCSNNCRH.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
@@ -30,5 +30,5 @@ var HookName = /* @__PURE__ */ ((HookName2) => {
30
30
  })(HookName || {});
31
31
 
32
32
  export { HookName };
33
- //# sourceMappingURL=chunk-GOYYO4NI.js.map
34
- //# sourceMappingURL=chunk-GOYYO4NI.js.map
33
+ //# sourceMappingURL=chunk-TP3LCGE7.js.map
34
+ //# sourceMappingURL=chunk-TP3LCGE7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/hooks.ts"],"names":["HookName"],"mappings":";AAYO,IAAK,QAAA,qBAAAA,SAAAA,KAAL;AAEL,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,2BAAA,CAAA,GAA4B,kCAAA;AAC5B,EAAAA,UAAA,qBAAA,CAAA,GAAsB,4BAAA;AACtB,EAAAA,UAAA,yBAAA,CAAA,GAA0B,gCAAA;AAC1B,EAAAA,UAAA,oBAAA,CAAA,GAAqB,2BAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,yBAAA;AAEnB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AAEnB,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,mBAAA,CAAA,GAAoB,mBAAA;AAlCV,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA","file":"chunk-GOYYO4NI.js","sourcesContent":["import type { ReactNode } from 'react';\n\n/**\n * Predefined hook names for type-safe hook registration.\n *\n * @example\n * ```tsx\n * import { HookName, hookRegistry } from '@salla.sa/twilight-theme-engine';\n *\n * hookRegistry.register(HookName.BODY_END, () => <MyComponent />);\n * ```\n */\nexport enum HookName {\n // Global - Body\n BODY_START = 'body:start',\n BODY_END = 'body:end',\n BODY_INNER = 'body:inner',\n // Global - Head\n HEAD_START = 'head:start',\n HEAD_END = 'head:end',\n HEAD_INNER = 'head:inner',\n // Header\n HEADER_START = 'header:start',\n HEADER_END = 'header:end',\n // Footer\n FOOTER_START = 'footer:start',\n FOOTER_END = 'footer:end',\n // Product\n PRODUCT_DESCRIPTION_START = 'product:single.description.start',\n PRODUCT_DESCRIPTION = 'product:single.description',\n PRODUCT_DESCRIPTION_END = 'product:single.description.end',\n PRODUCT_FORM_START = 'product:single.form.start',\n PRODUCT_FORM_END = 'product:single.form.end',\n // Cart\n CART_ITEMS_START = 'cart:items.start',\n CART_ITEMS_END = 'cart:items.end',\n CART_SUMMARY_START = 'cart:summary.start',\n CART_SUMMARY_END = 'cart:summary.end',\n // Search\n SEARCH_START = 'search:start',\n SEARCH_ITEMS_START = 'search:items.start',\n SEARCH_ITEMS_END = 'search:items.end',\n SEARCH_END = 'search:end',\n // Homepage\n HOMEPAGE_SLIDER = 'homepage:slider',\n HOMEPAGE_BANNERS = 'homepage:banners',\n HOMEPAGE_FEATURED = 'homepage:featured',\n}\n\n/**\n * Hook handler function type.\n */\nexport type HookHandler<T = Record<string, unknown>> = (context: T) => ReactNode;\n\n/**\n * Hook definition with handler and priority.\n */\nexport interface HookDefinition {\n handler: HookHandler;\n priority: number;\n}\n\n/**\n * Hook handlers map for bulk registration.\n */\nexport type HookHandlers = Record<\n string,\n | HookHandler\n | Array<{\n priority?: number;\n handler: HookHandler;\n }>\n>;\n"]}
1
+ {"version":3,"sources":["../src/types/hooks.ts"],"names":["HookName"],"mappings":";AAYO,IAAK,QAAA,qBAAAA,SAAAA,KAAL;AAEL,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,2BAAA,CAAA,GAA4B,kCAAA;AAC5B,EAAAA,UAAA,qBAAA,CAAA,GAAsB,4BAAA;AACtB,EAAAA,UAAA,yBAAA,CAAA,GAA0B,gCAAA;AAC1B,EAAAA,UAAA,oBAAA,CAAA,GAAqB,2BAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,yBAAA;AAEnB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AAEnB,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,mBAAA,CAAA,GAAoB,mBAAA;AAlCV,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA","file":"chunk-TP3LCGE7.js","sourcesContent":["import type { ReactNode } from 'react';\n\n/**\n * Predefined hook names for type-safe hook registration.\n *\n * @example\n * ```tsx\n * import { HookName, hookRegistry } from '@salla.sa/twilight-theme-engine';\n *\n * hookRegistry.register(HookName.BODY_END, () => <MyComponent />);\n * ```\n */\nexport enum HookName {\n // Global - Body\n BODY_START = 'body:start',\n BODY_END = 'body:end',\n BODY_INNER = 'body:inner',\n // Global - Head\n HEAD_START = 'head:start',\n HEAD_END = 'head:end',\n HEAD_INNER = 'head:inner',\n // Header\n HEADER_START = 'header:start',\n HEADER_END = 'header:end',\n // Footer\n FOOTER_START = 'footer:start',\n FOOTER_END = 'footer:end',\n // Product\n PRODUCT_DESCRIPTION_START = 'product:single.description.start',\n PRODUCT_DESCRIPTION = 'product:single.description',\n PRODUCT_DESCRIPTION_END = 'product:single.description.end',\n PRODUCT_FORM_START = 'product:single.form.start',\n PRODUCT_FORM_END = 'product:single.form.end',\n // Cart\n CART_ITEMS_START = 'cart:items.start',\n CART_ITEMS_END = 'cart:items.end',\n CART_SUMMARY_START = 'cart:summary.start',\n CART_SUMMARY_END = 'cart:summary.end',\n // Search\n SEARCH_START = 'search:start',\n SEARCH_ITEMS_START = 'search:items.start',\n SEARCH_ITEMS_END = 'search:items.end',\n SEARCH_END = 'search:end',\n // Homepage\n HOMEPAGE_SLIDER = 'homepage:slider',\n HOMEPAGE_BANNERS = 'homepage:banners',\n HOMEPAGE_FEATURED = 'homepage:featured',\n}\n\n/**\n * Hook handler function type.\n */\nexport type HookHandler<T = Record<string, unknown>> = (context: T) => ReactNode;\n\n/**\n * Hook definition with handler and priority.\n */\nexport interface HookDefinition {\n id: number;\n handler: HookHandler;\n priority: number;\n}\n\n/**\n * Hook handlers map for bulk registration.\n */\nexport type HookHandlers = Record<\n string,\n | HookHandler\n | Array<{\n priority?: number;\n handler: HookHandler;\n }>\n>;\n"]}
@@ -1,8 +1,8 @@
1
- import { useIsHome } from './chunk-JIJOXZPF.js';
2
- import { useTranslation } from './chunk-VVRYP6IL.js';
3
- import { HookSlot } from './chunk-25SSLQAJ.js';
4
- import { Image } from './chunk-433EFDBW.js';
5
- import { useTwilight } from './chunk-BWFBVXT3.js';
1
+ import { useIsHome } from './chunk-2ZRLSZ4V.js';
2
+ import { useTranslation } from './chunk-TYNZ5B2B.js';
3
+ import { HookSlot } from './chunk-Q7VWURUR.js';
4
+ import { Image } from './chunk-3OAVM4PY.js';
5
+ import { useTwilight } from './chunk-DF6FBKDN.js';
6
6
  import { lazy, useState } from 'react';
7
7
  import { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';
8
8
  import { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';
@@ -13,9 +13,9 @@ import { SallaSearch } from '@salla.sa/twilight-components-react/search';
13
13
  import { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';
14
14
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
15
15
 
16
- var LazyMainMenu = lazy(() => import('./MainMenu-T3M5RB7L.js').then((m) => ({ default: m.MainMenu })));
16
+ var LazyMainMenu = lazy(() => import('./MainMenu-M2SHKHOK.js').then((m) => ({ default: m.MainMenu })));
17
17
  var LazyMobileMenu = lazy(
18
- () => import('./MobileMenu-6D52JOQA.js').then((m) => ({ default: m.MobileMenu }))
18
+ () => import('./MobileMenu-LTGCUCOZ.js').then((m) => ({ default: m.MobileMenu }))
19
19
  );
20
20
  function Header(_props) {
21
21
  const { currency, theme, store } = useTwilight();
@@ -57,6 +57,7 @@ function Header(_props) {
57
57
  store?.scope && /* @__PURE__ */ jsxs(
58
58
  "button",
59
59
  {
60
+ type: "button",
60
61
  className: "btn--rounded-gray",
61
62
  onClick: () => window.salla?.event.dispatch("scopes::open", {
62
63
  mode: "default"
@@ -119,5 +120,5 @@ function Header(_props) {
119
120
  }
120
121
 
121
122
  export { Header };
122
- //# sourceMappingURL=chunk-U33UQAWO.js.map
123
- //# sourceMappingURL=chunk-U33UQAWO.js.map
123
+ //# sourceMappingURL=chunk-TSAQIQCD.js.map
124
+ //# sourceMappingURL=chunk-TSAQIQCD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-TSAQIQCD.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
@@ -57,5 +57,5 @@ function I18nProvider({
57
57
  }
58
58
 
59
59
  export { I18nProvider, useTranslation };
60
- //# sourceMappingURL=chunk-VVRYP6IL.js.map
61
- //# sourceMappingURL=chunk-VVRYP6IL.js.map
60
+ //# sourceMappingURL=chunk-TYNZ5B2B.js.map
61
+ //# sourceMappingURL=chunk-TYNZ5B2B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/I18nProvider.tsx"],"names":["useTranslationBase","locale"],"mappings":";;;;AA4CA,IAAM,cAAc,aAAA,CAAgC;AAAA,EAClD,MAAA,EAAQ,eAAA;AAAA,EACR,SAAA,EAAW,YAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA,EACP,KAAA,EAAO,KAAA;AAAA,EACP,YAAA,EAAc;AAChB,CAAC,CAAA;AAEM,SAAS,eAAe,EAAA,EAAwB;AACrD,EAAA,MAAM,GAAA,GAAM,WAAW,WAAW,CAAA;AAClC,EAAA,MAAM,EAAE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,GAAIA,iBAAmB,EAAE,CAAA;AAChD,EAAA,OAAO,EAAE,GAAG,GAAA,EAAK,CAAA,EAAG,MAAM,KAAA,EAAM;AAClC;AAIO,SAAS,YAAA,CAAa;AAAA,EAC3B,YAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,EAA0C;AAExC,EAAA,MAAM,IAAA,GAAO,QAAQ,MAAM;AACzB,IAAA,IAAI,iBAAA,EAAmB;AACrB,MAAA,MAAMC,UAAS,YAAA,CAAa,QAAA;AAC5B,MAAA,MAAM,QAAA,GAAW,GAAGA,OAAM,CAAA,MAAA,CAAA;AAC1B,MAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,QAAQ,CAAA,IAAK,EAAC;AAQvD,MAAA,IAAI,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,QAAA,YAAA,CAAa,iBAAA,CAAkBA,OAAAA,EAAQ,OAAA,EAAS,cAAA,EAAgB,MAAM,IAAI,CAAA;AAAA,MAC5E;AAAA,IACF;AACA,IAAA,OAAO,YAAA;AAAA,EACT,CAAA,EAAG,CAAC,YAAA,EAAc,iBAAiB,CAAC,CAAA;AAGpC,EAAA,MAAM,SAAS,IAAA,CAAK,QAAA;AACpB,EAAA,MAAM,IAAA,GAAO,QAAQ,MAAM,eAAA,CAAgB,MAAM,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAE5D,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,OAAO;AAAA,MACL,MAAA;AAAA,MACA,WAAW,IAAA,CAAK,GAAA;AAAA,MAChB,KAAA,EAAO,KAAK,GAAA,KAAQ,KAAA;AAAA,MACpB,KAAA,EAAO,KAAK,GAAA,KAAQ,KAAA;AAAA,MACpB,cAAc,IAAA,CAAK;AAAA,KACrB,CAAA;AAAA,IACA,CAAC,QAAQ,IAAI;AAAA,GACf;AAGA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,IAAA,MAAM,kBAAkB,IAAA,CAAK,iBAAA,CAAkB,MAAA,EAAQ,KAAK,KAAK,EAAC;AAClE,IAAA,MAAA,CAAO,YAAA,GAAe;AAAA,MACpB,CAAC,CAAA,EAAG,MAAM,CAAA,MAAA,CAAQ,GAAG;AAAA,KACvB;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,MAAM,CAAC,CAAA;AAEjB,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,WAAA,CAAY,QAAA;AAAA,IACZ,EAAE,OAAO,YAAA,EAAa;AAAA,IACtB,MAAM,aAAA,CAAc,eAAA,EAAiB,EAAE,IAAA,IAAQ,QAAQ;AAAA,GACzD;AACF","file":"chunk-TYNZ5B2B.js","sourcesContent":["import { I18nextProvider, useTranslation as useTranslationBase } from 'react-i18next';\nimport React, { createContext, useContext, useEffect, useMemo, type ReactNode } from 'react';\nimport type { i18n } from 'i18next';\nimport {\n FALLBACK_LOCALE,\n FALLBACK_DIR,\n FALLBACK_LANGUAGE_NAME,\n getLanguageInfo,\n} from './locale-constants';\nimport type { TranslationMessages } from './i18n-factory';\n\nexport type { TranslationMessages } from './i18n-factory';\n\nexport {\n FALLBACK_LOCALE,\n FALLBACK_DIR,\n FALLBACK_LANGUAGE_NAME,\n RTL_LOCALES,\n SUPPORTED_LOCALES,\n isLocale,\n getLanguageInfo,\n type Locale,\n} from './locale-constants';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface I18nProviderProps {\n /** Required: shared i18n instance from twilight context */\n i18nInstance: i18n;\n /** Theme translations to merge (from theme app) */\n themeTranslations?: TranslationMessages;\n children: ReactNode;\n}\n\nexport interface I18nContextValue {\n locale: string;\n direction: 'ltr' | 'rtl';\n isRTL: boolean;\n isLTR: boolean;\n languageName: string;\n}\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\nconst I18nContext = createContext<I18nContextValue>({\n locale: FALLBACK_LOCALE,\n direction: FALLBACK_DIR,\n isRTL: true,\n isLTR: false,\n languageName: FALLBACK_LANGUAGE_NAME,\n});\n\nexport function useTranslation(ns?: string | string[]) {\n const ctx = useContext(I18nContext);\n const { t, i18n, ready } = useTranslationBase(ns);\n return { ...ctx, t, i18n, ready };\n}\n\n// ─── Provider ─────────────────────────────────────────────────────────────────\n\nexport function I18nProvider({\n i18nInstance,\n themeTranslations,\n children,\n}: I18nProviderProps): React.ReactElement {\n // Use provided i18n instance, merge theme translations if provided\n const i18n = useMemo(() => {\n if (themeTranslations) {\n const locale = i18nInstance.language;\n const transKey = `${locale}.trans`;\n const themeResources = themeTranslations[transKey] ?? {};\n\n // Merge the theme translations into the `theme` namespace.\n // The instance is created (in rootBeforeLoad) with an empty `theme: {}`\n // bundle, so `hasResourceBundle(locale, 'theme')` is already `true` — a\n // guard on it would skip loading the real translations and every\n // theme-only key would fall back to its default. Deep-merge with\n // overwrite instead, only when there is something to add.\n if (Object.keys(themeResources).length > 0) {\n i18nInstance.addResourceBundle(locale, 'theme', themeResources, true, true);\n }\n }\n return i18nInstance;\n }, [i18nInstance, themeTranslations]);\n\n // Extract locale from i18n instance\n const locale = i18n.language;\n const info = useMemo(() => getLanguageInfo(locale), [locale]);\n\n const contextValue = useMemo<I18nContextValue>(\n () => ({\n locale,\n direction: info.dir,\n isRTL: info.dir === 'rtl',\n isLTR: info.dir === 'ltr',\n languageName: info.name,\n }),\n [locale, info]\n );\n\n // Client SDK sync — extract translations from i18n instance\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const appTranslations = i18n.getResourceBundle(locale, 'app') ?? {};\n window.translations = {\n [`${locale}.trans`]: appTranslations,\n };\n }, [i18n, locale]);\n\n return React.createElement(\n I18nContext.Provider,\n { value: contextValue },\n React.createElement(I18nextProvider, { i18n }, children)\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-JIJOXZPF.js';
2
- import { api } from './chunk-TQUHDSKQ.js';
1
+ import { orThrow } from './chunk-2ZRLSZ4V.js';
2
+ import { api } from './chunk-2TB2LTL2.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  function normalizeCartResponse(data) {
@@ -24,5 +24,5 @@ var cart = {
24
24
  };
25
25
 
26
26
  export { cart };
27
- //# sourceMappingURL=chunk-CI4HKXVH.js.map
28
- //# sourceMappingURL=chunk-CI4HKXVH.js.map
27
+ //# sourceMappingURL=chunk-W6HFR7YA.js.map
28
+ //# sourceMappingURL=chunk-W6HFR7YA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/cart.ts"],"names":[],"mappings":";;;;AAWA,SAAS,sBAAsB,IAAA,EAA6B;AAC1D,EAAA,OAAO;AAAA,IACL,GAAG,IAAA,CAAK,IAAA;AAAA,IACR,OAAA,EAAS,KAAK,OAAA,IAAW,IAAA;AAAA,IACzB,IAAA,EAAM,KAAK,IAAA,IAAQ;AAAA,GACrB;AACF;AAEO,IAAM,IAAA,GAAO;AAAA,EAClB,GAAA,EAAK,OAAO,MAAA,KAAkC;AAC5C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAAgC;AACjF,IAAA,OAAO,sBAAsB,IAAI,CAAA;AAAA,EACnC,CAAA;AAAA,EAEA,YAAY,CAAC,MAAA,KAAkC,QAAQ,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA,EAEvE,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,MAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACzB,OAAA,EAAS,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM;AAAA,KAC/B;AAAA;AAEP","file":"chunk-W6HFR7YA.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Cart } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport interface CartApiResponse {\n cart: Omit<Cart, 'loyalty' | 'gift'>;\n loyalty?: Cart['loyalty'];\n gift?: Cart['gift'];\n}\n\nfunction normalizeCartResponse(data: CartApiResponse): Cart {\n return {\n ...data.cart,\n loyalty: data.loyalty ?? null,\n gift: data.gift ?? null,\n } as Cart;\n}\n\nexport const cart = {\n get: async (cartId: number): Promise<Cart> => {\n const { data } = await api.get(`cart/${cartId}`).json<{ data: CartApiResponse }>();\n return normalizeCartResponse(data);\n },\n\n getOrThrow: (cartId: number): Promise<Cart> => orThrow(cart.get(cartId)),\n\n queries: {\n detail: (cartId: number) =>\n queryOptions({\n queryKey: ['cart', cartId],\n queryFn: () => cart.get(cartId),\n }),\n },\n};\n"]}
@@ -1,9 +1,10 @@
1
- import { home } from './chunk-YU36GBMB.js';
1
+ import { home } from './chunk-KCKHA75V.js';
2
2
  import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
3
- import { HomeComponentRenderer } from './chunk-GTM2GV2N.js';
3
+ import { HomeComponentRenderer } from './chunk-DIVL44G5.js';
4
+ import { useDevHomeComponentOverrides } from './chunk-2JV6WZ6O.js';
4
5
  import { RouteId } from './chunk-MTONGOJD.js';
5
- import { getTwilightContext } from './chunk-W4CSWDEH.js';
6
- import { HookSlot } from './chunk-25SSLQAJ.js';
6
+ import { getTwilightContext } from './chunk-KIPZQN3Y.js';
7
+ import { HookSlot } from './chunk-Q7VWURUR.js';
7
8
  import { memo } from 'react';
8
9
  import { Pulse } from '@salla.sa/twilight-components-react';
9
10
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
@@ -36,17 +37,11 @@ var HomeSkeleton = memo(function HomeSkeleton2() {
36
37
  ] });
37
38
  });
38
39
  var HomePage = memo(function HomePage2({ components = [] }) {
40
+ const renderedComponents = useDevHomeComponentOverrides(components);
39
41
  return /* @__PURE__ */ jsxs(Fragment, { children: [
40
42
  /* @__PURE__ */ jsx(HookSlot, { name: "home:start" }),
41
43
  /* @__PURE__ */ jsx(HookSlot, { name: "home:content" }),
42
- components.map((data, index) => /* @__PURE__ */ jsx(
43
- HomeComponentRenderer,
44
- {
45
- data,
46
- index
47
- },
48
- data.key ?? `home-component-${index}`
49
- )),
44
+ renderedComponents.map((data, index) => /* @__PURE__ */ jsx(HomeComponentRenderer, { data, index }, data.key ?? JSON.stringify(data))),
50
45
  /* @__PURE__ */ jsx(HookSlot, { name: "home:end" })
51
46
  ] });
52
47
  });
@@ -85,5 +80,5 @@ function head(ctx) {
85
80
  var Home = { id: RouteId.INDEX, loader, head, Component: HomePage };
86
81
 
87
82
  export { Home, HomeSkeleton, homeLoader };
88
- //# sourceMappingURL=chunk-REQC7YOE.js.map
89
- //# sourceMappingURL=chunk-REQC7YOE.js.map
83
+ //# sourceMappingURL=chunk-WUTGBZQR.js.map
84
+ //# sourceMappingURL=chunk-WUTGBZQR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/home/loader.ts","../src/routes/home/HomePage.tsx","../src/routes/home/index.tsx"],"names":["HomeSkeleton","HomePage"],"mappings":"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","file":"chunk-WUTGBZQR.js","sourcesContent":["import { getTwilightContext } from '../../twilight/context';\nimport { home } from '../../api/home';\nimport type { HomeComponentData } from '../../types';\nimport { RouteId } from '../../router/route-ids';\n\nexport interface HomeLoaderData {\n locale: string;\n components: HomeComponentData[];\n page: { slug: string };\n}\n\nexport async function homeLoader(ctx?: { locale?: string }): Promise<HomeLoaderData> {\n const { queryClient } = getTwilightContext();\n const components = await queryClient.ensureQueryData(home.queries.components());\n const result = {\n locale: ctx?.locale || 'ar',\n components: components.map((comp) => ({\n ...comp,\n path: comp.path?.replace('home.', '') || comp.path,\n })),\n page: { slug: RouteId.INDEX },\n };\n return result;\n}\n","import { memo } from 'react';\nimport { useDevHomeComponentOverrides } from '../../dev/dev-settings-store';\nimport { HookSlot } from '../../hooks';\nimport { HomeComponentRenderer } from '../../components/home';\nimport type { HomePageProps } from './types';\nimport { Pulse } from '@salla.sa/twilight-components-react';\n\nexport const HomeSkeleton = memo(function HomeSkeleton() {\n return (\n <>\n <div className=\"s-block container skeleton-block-hero\">\n <Pulse className=\"h-64 sm:h-80 rounded-md\" />\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n </>\n );\n});\n\nexport const HomePage = memo(function HomePage({ components = [] }: HomePageProps) {\n // Dev-mode only: overlay DevSettingsWidget component-field overrides onto the\n // blocks so edits render live. No-op passthrough in production builds.\n const renderedComponents = useDevHomeComponentOverrides(components);\n return (\n <>\n <HookSlot name=\"home:start\" />\n <HookSlot name=\"home:content\" />\n {renderedComponents.map((data, index) => (\n <HomeComponentRenderer key={data.key ?? JSON.stringify(data)} data={data} index={index} />\n ))}\n <HookSlot name=\"home:end\" />\n </>\n );\n});\n\nexport { HomePage as default };\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { HomeLoaderData } from './loader';\nimport { homeLoader } from './loader';\nimport type { TwilightContext } from '../../twilight/context';\nimport { HomePage } from './HomePage';\nimport { RouteId } from '../../router/route-ids';\n\nexport { HomeSkeleton } from './HomePage';\nexport { registerHomeComponents, DefaultHomeComponents } from '../../components/home/register';\nexport { registerHomeComponentConfig } from '../../components/home';\nexport type { HomePageProps } from './types';\nexport type { HomeLoaderData } from './loader';\nexport type {\n HomeComponentsProps,\n AnyHomeComponent,\n HomeComponentConfig,\n} from '../../components/home';\n\nfunction loader(_ctx?: { locale?: string }): Promise<HomeLoaderData> {\n return homeLoader({ locale: _ctx?.locale });\n}\n\nfunction head(ctx: TwilightContext): HeadDescriptor {\n const store = ctx.settings?.store;\n if (!store) return {};\n\n const title = store.meta?.title ?? store.name;\n const description = store.meta?.description ?? store.description;\n const keywords = store.meta?.keywords;\n\n return {\n title,\n description,\n keywords,\n canonical: store.url,\n openGraph: {\n type: 'website',\n title,\n description,\n images: store.logo,\n url: store.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: store.logo,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n}\n\nexport const Home = { id: RouteId.INDEX, loader, head, Component: HomePage } as const;\n\nexport { homeLoader };\n"]}
@@ -1,4 +1,4 @@
1
- import { redirect } from './chunk-JIJOXZPF.js';
1
+ import { redirect } from './chunk-2ZRLSZ4V.js';
2
2
  import { FALLBACK_LOCALE } from './chunk-T72DAX7R.js';
3
3
 
4
4
  // src/routes/seo-redirects.ts
@@ -12,5 +12,5 @@ async function pendingOrdersRedirectLoader(ctx = { params: {} }) {
12
12
  }
13
13
 
14
14
  export { pendingOrdersRedirectLoader, slugBrandRedirectLoader };
15
- //# sourceMappingURL=chunk-4AYOFKHU.js.map
16
- //# sourceMappingURL=chunk-4AYOFKHU.js.map
15
+ //# sourceMappingURL=chunk-XK42WXU5.js.map
16
+ //# sourceMappingURL=chunk-XK42WXU5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/seo-redirects.ts"],"names":[],"mappings":";;;;AAYA,eAAsB,wBAAwB,GAAA,EAAkD;AAC9F,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAA,IAAU,eAAA;AACpC,EAAA,MAAM,SAAS,CAAA,CAAA,EAAI,MAAM,WAAW,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA,CAAE,CAAA;AACrD;AAOA,eAAsB,4BACpB,GAAA,GAA+C,EAAE,MAAA,EAAQ,IAAG,EAC5C;AAChB,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAA,IAAU,eAAA;AACpC,EAAA,MAAM,QAAA,CAAS,CAAA,CAAA,EAAI,MAAM,CAAA,sBAAA,CAAwB,CAAA;AACnD","file":"chunk-XK42WXU5.js","sourcesContent":["import { redirect } from '../providers/NavigationProvider';\nimport { FALLBACK_LOCALE } from '../providers/locale-constants';\n\nexport interface SlugBrandParams {\n /** SEO slug segment (ignored — only here to match the route pattern). */\n slug: string;\n /** Brand numeric ID to redirect to. */\n id: string;\n /** Active locale from the `/$locale` parent layout (e.g. `'ar'`, `'en'`). */\n locale?: string;\n}\n\nexport async function slugBrandRedirectLoader(ctx: { params: SlugBrandParams }): Promise<never> {\n const locale = ctx.params.locale || FALLBACK_LOCALE;\n throw redirect(`/${locale}/brands/${ctx.params.id}`);\n}\n\nexport interface PendingOrdersRedirectParams {\n /** Active locale from the `/$locale` parent layout (e.g. `'ar'`, `'en'`). */\n locale?: string;\n}\n\nexport async function pendingOrdersRedirectLoader(\n ctx: { params: PendingOrdersRedirectParams } = { params: {} }\n): Promise<never> {\n const locale = ctx.params.locale || FALLBACK_LOCALE;\n throw redirect(`/${locale}/orders?status=pending`);\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { useDate } from './chunk-IILTG4A6.js';
2
- import { useTranslation } from './chunk-VVRYP6IL.js';
3
- import { Image } from './chunk-433EFDBW.js';
1
+ import { useDate } from './chunk-P26QKBJC.js';
2
+ import { useTranslation } from './chunk-TYNZ5B2B.js';
3
+ import { Image } from './chunk-3OAVM4PY.js';
4
4
  import { Link } from './chunk-AXW67SY7.js';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -61,5 +61,5 @@ function BlogListLayout({
61
61
  }
62
62
 
63
63
  export { BlogArticleCard, BlogListLayout };
64
- //# sourceMappingURL=chunk-HL3HSO4R.js.map
65
- //# sourceMappingURL=chunk-HL3HSO4R.js.map
64
+ //# sourceMappingURL=chunk-Y62QQRYP.js.map
65
+ //# sourceMappingURL=chunk-Y62QQRYP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/blog/components.tsx"],"names":[],"mappings":"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","file":"chunk-Y62QQRYP.js","sourcesContent":["import type { ReactNode } from 'react';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useDate } from '../../hooks';\nimport { Image, Link } from '../../components/common';\nimport type { BlogCategory, ArticleSummary } from './types';\n\nexport function BlogCategoriesSidebar({ categories }: { categories: BlogCategory[] }) {\n const { t } = useTranslation();\n\n if (!categories.length) return null;\n\n return (\n <nav aria-label=\"Sidebar\" className=\"hidden lg:block lg:sticky shrink-0 top-24 col-span-2\">\n <h2 className=\"font-bold mb-3\">{t('pages.blog_categories.categories')}</h2>\n <ul>\n {categories.map((category) => (\n <li key={category.id} className={category.is_current ? 'text-primary' : ''}>\n <Link className=\"py-3 block text-sm hover:text-primary\" to={category.url}>\n {category.name}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n}\n\nexport function BlogArticleCard({\n article,\n showAuthor = false,\n}: {\n article: ArticleSummary;\n showAuthor?: boolean;\n}) {\n const { format: formatDate } = useDate();\n\n return (\n <div className=\"list-block post-entry relative h-full transition-shadow duration-500 bg-white hover:shadow-default rounded-lg justify-around overflow-hidden flex flex-col\">\n <Link\n to={article.url}\n className=\"post-entry__image relative overflow-hidden hover:opacity-90 w-full h-56 bg-border-color flex items-center justify-center\"\n >\n {article.image && (\n <Image\n className=\"h-full w-full object-cover\"\n src={article.image}\n alt={article.name}\n aspectRatio=\"16/9\"\n />\n )}\n </Link>\n <div className=\"flex-1 px-5 pt-5 pb-7\">\n <div className=\"mb-2.5 text-gray-500 rounded-md inline-flex text-sm rtl:space-x-reverse space-x-5\">\n <div className=\"flex items-center\">\n <i className=\"sicon-calendar-date rtl:ml-1 ltr:mr-1\"></i>\n <span>{formatDate(article.created_at)}</span>\n </div>\n {showAuthor && article.author && (\n <Link to={article.author.url} className=\"flex items-center hover:text-dark\">\n <i className=\"sicon-user rtl:ml-1 ltr:mr-1\"></i>\n <span>{article.author.name}</span>\n </Link>\n )}\n </div>\n <h3 className=\"post-entry__title text-sm font-bold text-gray-800 leading-6 mb-2.5\">\n <Link to={article.url}>{article.name}</Link>\n </h3>\n <p className=\"text-sm text-gray-500 leading-6 mb-2.5\">{article.description}</p>\n </div>\n </div>\n );\n}\n\nexport function BlogListLayout({\n categories,\n children,\n}: {\n categories: BlogCategory[];\n children: ReactNode;\n}) {\n return (\n <div className=\"grid grid-cols-1 lg:grid-cols-8 gap-8\">\n <BlogCategoriesSidebar categories={categories} />\n <div className=\"main-content lg:col-span-6\">{children}</div>\n </div>\n );\n}\n"]}
@@ -1,6 +1,10 @@
1
- import { useTranslation } from './chunk-VVRYP6IL.js';
1
+ import { useTranslation } from './chunk-TYNZ5B2B.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
 
4
+ var LINK_STYLE = {
5
+ backgroundColor: "var(--color-primary)",
6
+ color: "var(--color-primary-reverse, #ffffff)"
7
+ };
4
8
  function ErrorPage({
5
9
  code,
6
10
  title,
@@ -16,19 +20,15 @@ function ErrorPage({
16
20
  const resolvedMessage = message ?? t("common.errors.error_occurred") ?? "An unexpected error occurred.";
17
21
  const resolvedActionText = actionText ?? t("common.elements.back_home") ?? "Back to Home";
18
22
  const linkClassName = "inline-flex items-center px-6 py-3 rounded-lg transition-opacity hover:opacity-90";
19
- const linkStyle = {
20
- backgroundColor: "var(--color-primary)",
21
- color: "var(--color-primary-reverse, #ffffff)"
22
- };
23
23
  return /* @__PURE__ */ jsxs("div", { className: "container py-16 text-center", children: [
24
24
  code && /* @__PURE__ */ jsx("h1", { className: "text-6xl font-bold text-gray-300 mb-4", "data-testid": "error-code", children: code }),
25
25
  /* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold text-gray-700 mb-4", children: resolvedTitle }),
26
26
  /* @__PURE__ */ jsx("p", { className: "text-gray-500 mb-8", children: resolvedMessage }),
27
27
  children,
28
- showAction && (LinkComponent ? /* @__PURE__ */ jsx(LinkComponent, { to: actionHref, className: linkClassName, style: linkStyle, children: resolvedActionText }) : /* @__PURE__ */ jsx("a", { href: actionHref, className: linkClassName, style: linkStyle, children: resolvedActionText }))
28
+ showAction && (LinkComponent ? /* @__PURE__ */ jsx(LinkComponent, { to: actionHref, className: linkClassName, style: LINK_STYLE, children: resolvedActionText }) : /* @__PURE__ */ jsx("a", { href: actionHref, className: linkClassName, style: LINK_STYLE, children: resolvedActionText }))
29
29
  ] });
30
30
  }
31
31
 
32
32
  export { ErrorPage };
33
- //# sourceMappingURL=chunk-FBFPH5BB.js.map
34
- //# sourceMappingURL=chunk-FBFPH5BB.js.map
33
+ //# sourceMappingURL=chunk-Z4Y55HWX.js.map
34
+ //# sourceMappingURL=chunk-Z4Y55HWX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/common/ErrorPage.tsx"],"names":[],"mappings":";;;AAGA,IAAM,UAAA,GAAkC;AAAA,EACtC,eAAA,EAAiB,sBAAA;AAAA,EACjB,KAAA,EAAO;AACT,CAAA;AAkBO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,UAAA,GAAa,IAAA;AAAA,EACb,aAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM,gBAAgB,KAAA,IAAS,CAAA,CAAE,CAAA,cAAA,EAAiB,IAAI,EAAE,CAAA,IAAK,OAAA;AAC7D,EAAA,MAAM,eAAA,GACJ,OAAA,IAAW,CAAA,CAAE,8BAA8B,CAAA,IAAK,+BAAA;AAClD,EAAA,MAAM,kBAAA,GAAqB,UAAA,IAAc,CAAA,CAAE,2BAA2B,CAAA,IAAK,cAAA;AAE3E,EAAA,MAAM,aAAA,GACJ,mFAAA;AAEF,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACZ,QAAA,EAAA;AAAA,IAAA,IAAA,wBACE,IAAA,EAAA,EAAG,SAAA,EAAU,uCAAA,EAAwC,aAAA,EAAY,cAC/D,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,oBAEF,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2CAAA,EAA6C,QAAA,EAAA,aAAA,EAAc,CAAA;AAAA,oBACzE,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,IAElD,QAAA;AAAA,IAEA,UAAA,KACE,gCACC,GAAA,CAAC,aAAA,EAAA,EAAc,IAAI,UAAA,EAAY,SAAA,EAAW,eAAe,KAAA,EAAO,UAAA,EAC7D,8BACH,CAAA,mBAEA,GAAA,CAAC,OAAE,IAAA,EAAM,UAAA,EAAY,WAAW,aAAA,EAAe,KAAA,EAAO,YACnD,QAAA,EAAA,kBAAA,EACH,CAAA;AAAA,GAAA,EAEN,CAAA;AAEJ","file":"chunk-Z4Y55HWX.js","sourcesContent":["import type { ComponentType, ReactNode } from 'react';\nimport { useTranslation } from '../../providers/I18nProvider';\n\nconst LINK_STYLE: React.CSSProperties = {\n backgroundColor: 'var(--color-primary)',\n color: 'var(--color-primary-reverse, #ffffff)',\n};\n\nexport interface ErrorPageProps {\n code?: string | number;\n title?: string;\n message?: string;\n actionText?: string;\n actionHref?: string;\n showAction?: boolean;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n children?: ReactNode;\n}\n\nexport function ErrorPage({\n code,\n title,\n message,\n actionText,\n actionHref = '/',\n showAction = true,\n LinkComponent,\n children,\n}: ErrorPageProps) {\n const { t } = useTranslation();\n\n const resolvedTitle = title ?? t(`common.errors.${code}`) ?? 'Error';\n const resolvedMessage =\n message ?? t('common.errors.error_occurred') ?? 'An unexpected error occurred.';\n const resolvedActionText = actionText ?? t('common.elements.back_home') ?? 'Back to Home';\n\n const linkClassName =\n 'inline-flex items-center px-6 py-3 rounded-lg transition-opacity hover:opacity-90';\n\n return (\n <div className=\"container py-16 text-center\">\n {code && (\n <h1 className=\"text-6xl font-bold text-gray-300 mb-4\" data-testid=\"error-code\">\n {code}\n </h1>\n )}\n <h2 className=\"text-2xl font-semibold text-gray-700 mb-4\">{resolvedTitle}</h2>\n <p className=\"text-gray-500 mb-8\">{resolvedMessage}</p>\n\n {children}\n\n {showAction &&\n (LinkComponent ? (\n <LinkComponent to={actionHref} className={linkClassName} style={LINK_STYLE}>\n {resolvedActionText}\n </LinkComponent>\n ) : (\n <a href={actionHref} className={linkClassName} style={LINK_STYLE}>\n {resolvedActionText}\n </a>\n ))}\n </div>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-JIJOXZPF.js';
2
- import { getActiveScopeId, api } from './chunk-TQUHDSKQ.js';
1
+ import { orThrow } from './chunk-2ZRLSZ4V.js';
2
+ import { getActiveScopeId, api } from './chunk-2TB2LTL2.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var product = {
@@ -62,5 +62,5 @@ var product = {
62
62
  };
63
63
 
64
64
  export { product };
65
- //# sourceMappingURL=chunk-6LQFMCWK.js.map
66
- //# sourceMappingURL=chunk-6LQFMCWK.js.map
65
+ //# sourceMappingURL=chunk-ZNOJPVX3.js.map
66
+ //# sourceMappingURL=chunk-ZNOJPVX3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/product.ts"],"names":[],"mappings":";;;;AA4EO,IAAM,OAAA,GAAU;AAAA,EACrB,IAAA,EAAM,OAAO,EAAA,KAAiC;AAC5C,IAAA,MAAM,QAAA,GAAW,YAAY,EAAE,CAAA,wNAAA,CAAA;AAC/B,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,QAAQ,EAAE,IAAA,EAAwB;AACjE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAiC,QAAQ,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvE,IAAA,EAAM,OAAO,MAAA,KAA4D;AACvE,IAAA,MAAM,EAAE,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,MAAA,EAAQ,UAAU,EAAA,EAAI,IAAA,EAAM,UAAA,EAAY,MAAA,EAAO,GAAI,MAAA;AAGtF,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AACzC,IAAA,YAAA,CAAa,GAAA,CAAI,UAAU,MAAM,CAAA;AAEjC,IAAA,IAAI,SAAS,MAAA,EAAW,YAAA,CAAa,IAAI,MAAA,EAAQ,MAAA,CAAO,IAAI,CAAC,CAAA;AAC7D,IAAA,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,MAAA,CAAO,OAAO,CAAC,CAAA;AAI5C,IAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,MAAA,IAAI,WAAW,QAAA,EAAU;AACvB,QAAA,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,MAAA,CAAO,WAAW,CAAC,CAAA;AAAA,MACjD,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AACrC,QAAA,WAAA,CAAY,OAAA,CAAQ,CAAC,GAAA,KAAQ,YAAA,CAAa,OAAO,gBAAA,EAAkB,MAAA,CAAO,GAAG,CAAC,CAAC,CAAA;AAAA,MACjF,CAAA,MAAO;AACL,QAAA,YAAA,CAAa,MAAA,CAAO,gBAAA,EAAkB,MAAA,CAAO,WAAW,CAAC,CAAA;AAAA,MAC3D;AAAA,IACF;AAGA,IAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,MAAA,YAAA,CAAa,GAAA,CAAI,YAAA,EAAc,UAAA,GAAa,GAAA,GAAM,GAAG,CAAA;AAAA,IACvD;AAGA,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,YAAA,CAAa,GAAA,CAAI,QAAQ,IAAI,CAAA;AAAA,IAC/B;AAGA,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,YAAA,CAAa,GAAA,CAAI,UAAU,MAAM,CAAA;AAAA,IACnC;AAGA,IAAA,MAAM,UAAmC,EAAC;AAC1C,IAAA,IAAI,MAAA,UAAgB,MAAA,GAAS,MAAA;AAE7B,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CACpB,GAAA,CAAI,CAAA,SAAA,EAAY,YAAA,CAAa,QAAA,EAAU,CAAA,CAAA,EAAI,OAAc,CAAA,CACzD,IAAA,EAA2B;AAE9B,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA,CAAS,IAAA,IAAQ,EAAC;AAAA,MACzB,IAAA,EAAM,QAAA,CAAS,MAAA,EAAQ,IAAA,IAAQ,IAAA;AAAA,MAC/B,SAAS,QAAA,CAAS;AAAA,KACpB;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,UAAA,EAAY,QAAA,EAAU,EAAE,CAAA;AAAA,MACnC,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAA,CAAK,EAAE;AAAA,KAC/B,CAAA;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,KACL,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,UAAA,EAAY,MAAA,EAAQ,QAAQ,EAAE,KAAA,EAAO,gBAAA,EAAiB,EAAG,CAAA;AAAA,MACpE,OAAA,EAAS,CAAC,EAAE,MAAA,EAAO,KAAM,OAAA,CAAQ,IAAA,CAAK,EAAE,GAAG,MAAA,EAAQ,MAAA,EAAQ;AAAA,KAC5D;AAAA;AAEP","file":"chunk-ZNOJPVX3.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScopeId } from './client';\nimport type { Product } from '../types';\nimport type { Pagination, PaginatedResult } from './types';\nimport { orThrow } from '../providers/NavigationProvider';\n\n// ===== Filter Types =====\n\nexport interface FilterValue {\n key?: string;\n count?: number;\n value?: string;\n from?: number | '*';\n to?: number | '*';\n}\n\nexport interface Filter {\n key?: string;\n label?: string;\n type?: string;\n values?: FilterValue[];\n max?: number;\n min?: number;\n}\n\n// ===== Product List Types =====\n\nexport type ProductsListSource =\n | 'brands'\n | 'categories'\n | 'json'\n | 'landing-page'\n | 'latest'\n | 'offers'\n | 'recently'\n | 'related'\n | 'selected'\n | 'tags'\n | 'top-rated'\n | 'wishlist'\n | 'search'\n | 'sales'\n | 'reorder'\n | 'best_selling';\n\nexport interface ProductsListParams {\n /** Source type (wishlist, latest, brands, etc.) */\n source: ProductsListSource;\n /** Source value (brand_id, category_id, tag_id, search keyword, or JSON array of product IDs) */\n sourceValue?: string | number | number[] | null;\n /** Page number for offset-based pagination */\n page?: number;\n /** Cursor for cursor-based pagination (from previous response) */\n cursor?: string | null;\n /** Items per page (default: 15) */\n perPage?: number;\n /** Sort option */\n sort?: string;\n /** Enable filters on the response */\n filterable?: boolean;\n /** Abort signal for cancellation */\n signal?: AbortSignal;\n}\n\nexport type ProductsListResult = PaginatedResult<Product> & {\n filters?: Filter[];\n};\n\nexport interface ProductsListResponse {\n data: Product[];\n cursor?: Pagination;\n filters?: Filter[];\n}\n\n// ===== API Functions =====\n\nexport const product = {\n find: async (id: string): Promise<Product> => {\n const endpoint = `products/${id}/details?with[]=images&with[]=category&with[]=rating&with[]=notify_availability&with[]=tags&with[]=brand&with[]=options&with[]=skus&with[]=skus_availability&with[]=included_products&with[]=bundle&with[]=sold_quantity`;\n const { data } = await api.get(endpoint).json<{ data: Product }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Product> => orThrow(product.find(id)),\n\n /**\n * Fetch products list with pagination support\n * Used by native ProductsList component for SSR loaders\n *\n * API pattern: GET /products?source=wishlist&page=1\n */\n list: async (params: ProductsListParams): Promise<ProductsListResult> => {\n const { source, sourceValue, page, cursor, perPage = 16, sort, filterable, signal } = params;\n\n // Build URL with query parameters\n const searchParams = new URLSearchParams();\n searchParams.set('source', source);\n // Only send page when explicitly provided — cursor-based callers omit it entirely\n if (page !== undefined) searchParams.set('page', String(page));\n searchParams.set('per_page', String(perPage));\n\n // Add source_value[] parameter (brand_id, category_id, tag_id, etc.)\n // For search source, use keyword parameter instead\n if (sourceValue !== undefined) {\n if (source === 'search') {\n searchParams.set('keyword', String(sourceValue));\n } else if (Array.isArray(sourceValue)) {\n sourceValue.forEach((val) => searchParams.append('source_value[]', String(val)));\n } else {\n searchParams.append('source_value[]', String(sourceValue));\n }\n }\n\n // Add filterable parameter\n if (filterable !== undefined) {\n searchParams.set('filterable', filterable ? '1' : '0');\n }\n\n // Add sort parameter\n if (sort) {\n searchParams.set('sort', sort);\n }\n\n // Add cursor for cursor-based pagination\n if (cursor) {\n searchParams.set('cursor', cursor);\n }\n\n // Make the request\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`products?${searchParams.toString()}`, options as any)\n .json<ProductsListResponse>();\n\n return {\n items: response.data ?? [],\n next: response.cursor?.next ?? null,\n filters: response.filters,\n };\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n queryKey: ['products', 'detail', id],\n queryFn: () => product.find(id),\n }),\n list: (params: Omit<ProductsListParams, 'signal'>) =>\n queryOptions({\n // Scope (branch) varies product availability — key must include it.\n queryKey: ['products', 'list', params, { scope: getActiveScopeId() }],\n queryFn: ({ signal }) => product.list({ ...params, signal }),\n }),\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CartItem.d.ts","sourceRoot":"","sources":["../../../src/components/cart/CartItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AASnE,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAe,EAAE,EAAE,aAAa,2CA2JhE"}
1
+ {"version":3,"file":"CartItem.d.ts","sourceRoot":"","sources":["../../../src/components/cart/CartItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AASnE,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiBD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAe,EAAE,EAAE,aAAa,2CAuJhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"PriceQuoteButton.d.ts","sourceRoot":"","sources":["../../../src/components/cart/PriceQuoteButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,4CAiB/B"}
1
+ {"version":3,"file":"PriceQuoteButton.d.ts","sourceRoot":"","sources":["../../../src/components/cart/PriceQuoteButton.tsx"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,4CAa/B"}
@@ -1,4 +1,4 @@
1
- export { LazyCartItem as CartItem, LazyCartSummary as CartSummary, LazySeoCartWidget as SeoCartWidget } from '../../chunk-ZOCDYJPX.js';
1
+ export { LazyCartItem as CartItem, LazyCartSummary as CartSummary, LazySeoCartWidget as SeoCartWidget } from '../../chunk-Q5YIGQTT.js';
2
2
  import '../../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -24,7 +24,7 @@
24
24
  * }
25
25
  * ```
26
26
  */
27
- import { type ReactNode, type HTMLAttributes } from 'react';
27
+ import { type ReactNode, type HTMLAttributes, type ButtonHTMLAttributes } from 'react';
28
28
  export interface CollapseProps {
29
29
  isOpen: boolean;
30
30
  onToggle: () => void;
@@ -39,7 +39,7 @@ export declare namespace Collapse {
39
39
  var Trigger: ({ children, isOpen, onToggle, className, ...props }: CollapseTriggerProps) => import("react/jsx-runtime").JSX.Element;
40
40
  var Content: ({ children, isOpen, className, ...props }: CollapseContentProps) => import("react/jsx-runtime").JSX.Element;
41
41
  }
42
- export interface CollapseTriggerProps extends HTMLAttributes<HTMLDivElement> {
42
+ export interface CollapseTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
43
43
  children: ReactNode;
44
44
  isOpen?: boolean;
45
45
  onToggle?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../../src/components/collapse/Collapse.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,2CAE9D;yBAFe,QAAQ;uEAiBrB,oBAAoB;6DAyBpB,oBAAoB;;AArCvB,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAuBD,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../../src/components/collapse/Collapse.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,2CAE9D;yBAFe,QAAQ;uEAiBrB,oBAAoB;6DAyBpB,oBAAoB;;AArCvB,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IACnF,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAuBD,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -12,11 +12,11 @@ Collapse.Trigger = function CollapseTrigger({
12
12
  ...props
13
13
  }) {
14
14
  return /* @__PURE__ */ jsx(
15
- "div",
15
+ "button",
16
16
  {
17
+ type: "button",
17
18
  onClick: onToggle,
18
- className: `cursor-pointer ${className || ""}`,
19
- role: "button",
19
+ className: `block cursor-pointer border-0 bg-transparent p-0 text-start ${className || ""}`,
20
20
  "aria-expanded": isOpen,
21
21
  ...props,
22
22
  children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/collapse/Collapse.tsx"],"names":[],"mappings":";;;AAuCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAkB;AAC/D,EAAA,2BAAQ,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAmB,SAAA,IAAa,EAAE,IAAK,QAAA,EAAS,CAAA;AACzE;AASA,QAAA,CAAS,OAAA,GAAU,SAAS,eAAA,CAAgB;AAAA,EAC1C,QAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAW,CAAA,eAAA,EAAkB,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC5C,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,MAAA;AAAA,MACd,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAQA,QAAA,CAAS,OAAA,GAAU,SAAS,eAAA,CAAgB;AAAA,EAC1C,QAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,CAAA,qCAAA,EACT,MAAA,GAAS,qCAAqC,gCAChD,CAAA,CAAA,EAAI,aAAa,EAAE,CAAA,CAAA;AAAA,MAClB,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,iBAAA,EACb,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,QAAA,EAAS,CAAA,EAClC;AAAA;AAAA,GACF;AAEJ,CAAA","file":"index.js","sourcesContent":["/**\n * Collapse Component\n *\n * A controlled collapsible content area with smooth animation.\n *\n * @example\n * ```tsx\n * function FAQItem({ question, answer }) {\n * const [isOpen, setIsOpen] = useState(false);\n *\n * return (\n * <Collapse isOpen={isOpen} onToggle={() => setIsOpen(!isOpen)}>\n * <Collapse.Trigger>\n * <div className=\"flex justify-between\">\n * <span>{question}</span>\n * <span>{isOpen ? '−' : '+'}</span>\n * </div>\n * </Collapse.Trigger>\n * <Collapse.Content>\n * <p>{answer}</p>\n * </Collapse.Content>\n * </Collapse>\n * );\n * }\n * ```\n */\n\nimport { type ReactNode, type HTMLAttributes } from 'react';\n\nexport interface CollapseProps {\n isOpen: boolean;\n onToggle: () => void;\n children: ReactNode;\n /**\n * Additional className for the collapse container\n */\n className?: string;\n}\n\nexport function Collapse({ children, className }: CollapseProps) {\n return <div className={`overflow-hidden ${className || ''}`}>{children}</div>;\n}\n\n// Trigger Component\nexport interface CollapseTriggerProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n isOpen?: boolean;\n onToggle?: () => void;\n}\n\nCollapse.Trigger = function CollapseTrigger({\n children,\n isOpen = false,\n onToggle,\n className,\n ...props\n}: CollapseTriggerProps) {\n return (\n <div\n onClick={onToggle}\n className={`cursor-pointer ${className || ''}`}\n role=\"button\"\n aria-expanded={isOpen}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n// Content Component\nexport interface CollapseContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n isOpen?: boolean;\n}\n\nCollapse.Content = function CollapseContent({\n children,\n isOpen = false,\n className,\n ...props\n}: CollapseContentProps) {\n return (\n <div\n className={`transition-all duration-200 ease-out ${\n isOpen ? 'grid grid-rows-[1fr] opacity-100' : 'grid grid-rows-[0fr] opacity-0'\n } ${className || ''}`}\n {...props}\n >\n <div className=\"overflow-hidden\">\n <div className=\"pb-2\">{children}</div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/collapse/Collapse.tsx"],"names":[],"mappings":";;;AAuCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAkB;AAC/D,EAAA,2BAAQ,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAmB,SAAA,IAAa,EAAE,IAAK,QAAA,EAAS,CAAA;AACzE;AASA,QAAA,CAAS,OAAA,GAAU,SAAS,eAAA,CAAgB;AAAA,EAC1C,QAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAW,CAAA,4DAAA,EAA+D,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MACzF,eAAA,EAAe,MAAA;AAAA,MACd,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAQA,QAAA,CAAS,OAAA,GAAU,SAAS,eAAA,CAAgB;AAAA,EAC1C,QAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,CAAA,qCAAA,EACT,MAAA,GAAS,qCAAqC,gCAChD,CAAA,CAAA,EAAI,aAAa,EAAE,CAAA,CAAA;AAAA,MAClB,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,iBAAA,EACb,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,QAAA,EAAS,CAAA,EAClC;AAAA;AAAA,GACF;AAEJ,CAAA","file":"index.js","sourcesContent":["/**\n * Collapse Component\n *\n * A controlled collapsible content area with smooth animation.\n *\n * @example\n * ```tsx\n * function FAQItem({ question, answer }) {\n * const [isOpen, setIsOpen] = useState(false);\n *\n * return (\n * <Collapse isOpen={isOpen} onToggle={() => setIsOpen(!isOpen)}>\n * <Collapse.Trigger>\n * <div className=\"flex justify-between\">\n * <span>{question}</span>\n * <span>{isOpen ? '−' : '+'}</span>\n * </div>\n * </Collapse.Trigger>\n * <Collapse.Content>\n * <p>{answer}</p>\n * </Collapse.Content>\n * </Collapse>\n * );\n * }\n * ```\n */\n\nimport { type ReactNode, type HTMLAttributes, type ButtonHTMLAttributes } from 'react';\n\nexport interface CollapseProps {\n isOpen: boolean;\n onToggle: () => void;\n children: ReactNode;\n /**\n * Additional className for the collapse container\n */\n className?: string;\n}\n\nexport function Collapse({ children, className }: CollapseProps) {\n return <div className={`overflow-hidden ${className || ''}`}>{children}</div>;\n}\n\n// Trigger Component\nexport interface CollapseTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n isOpen?: boolean;\n onToggle?: () => void;\n}\n\nCollapse.Trigger = function CollapseTrigger({\n children,\n isOpen = false,\n onToggle,\n className,\n ...props\n}: CollapseTriggerProps) {\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n className={`block cursor-pointer border-0 bg-transparent p-0 text-start ${className || ''}`}\n aria-expanded={isOpen}\n {...props}\n >\n {children}\n </button>\n );\n};\n\n// Content Component\nexport interface CollapseContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n isOpen?: boolean;\n}\n\nCollapse.Content = function CollapseContent({\n children,\n isOpen = false,\n className,\n ...props\n}: CollapseContentProps) {\n return (\n <div\n className={`transition-all duration-200 ease-out ${\n isOpen ? 'grid grid-rows-[1fr] opacity-100' : 'grid grid-rows-[0fr] opacity-0'\n } ${className || ''}`}\n {...props}\n >\n <div className=\"overflow-hidden\">\n <div className=\"pb-2\">{children}</div>\n </div>\n </div>\n );\n};\n"]}
@@ -13,7 +13,6 @@ interface DeferredState<T> {
13
13
  export interface DeferredPromise<T> extends Promise<T> {
14
14
  [DEFERRED_KEY]?: DeferredState<T>;
15
15
  }
16
- export declare function defer<T>(promise: Promise<T>): DeferredPromise<T>;
17
16
  export declare function resolveDeferred<T>(promiseOrValue: Promise<T> | T | undefined): T | Promise<T> | undefined;
18
17
  export declare function DeferredData<T>({ promise, fallback, children }: DeferredDataProps<T>): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
19
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"DeferredData.d.ts","sourceRoot":"","sources":["../../../src/components/common/DeferredData.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;CAClC;AAED,QAAA,MAAM,YAAY,eAAkC,CAAC;AAErD,UAAU,aAAa,CAAC,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACnC;AAID,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAqBhE;AAuCD,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAMzG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,2UA6BpF"}
1
+ {"version":3,"file":"DeferredData.d.ts","sourceRoot":"","sources":["../../../src/components/common/DeferredData.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;CAClC;AAED,QAAA,MAAM,YAAY,eAAkC,CAAC;AAErD,UAAU,aAAa,CAAC,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACnC;AAgED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GACzC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAM5B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,2UA6BpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/components/common/ErrorPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC5B,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAgB,EAChB,UAAiB,EACjB,aAAa,EACb,QAAQ,GACT,EAAE,cAAc,2CAuChB"}
1
+ {"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/components/common/ErrorPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQtD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC5B,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAgB,EAChB,UAAiB,EACjB,aAAa,EACb,QAAQ,GACT,EAAE,cAAc,2CAmChB"}
@@ -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-433EFDBW.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-3OAVM4PY.js';
2
2
  export { Link } from '../../chunk-AXW67SY7.js';
3
3
  import '../../chunk-BYMOPN2S.js';
4
4
  import '../../chunk-DGUM43GV.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAkC,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAInG,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACnC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAW,EACX,oBAA2B,EAC3B,aAAoB,EACpB,iBAAwB,EACxB,SAAS,GACV,EAAE,WAAW,4BA0Fb;yBAnGe,MAAM;8EAkHnB,iBAAiB;kDAgCiD,eAAe;oDAYX,iBAAiB;;AAxD1F,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAoCD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAUD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;CACrB"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAkC,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAInG,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACnC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,IAAW,EACX,oBAA2B,EAC3B,aAAoB,EACpB,iBAAwB,EACxB,SAAS,GACV,EAAE,WAAW,4BAiGb;yBA1Ge,MAAM;8EAyHnB,iBAAiB;kDAgCiD,eAAe;oDAYX,iBAAiB;;AAxD1F,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAoCD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAUD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;CACrB"}