@salla.sa/twilight-theme-engine 1.0.63 → 1.0.64

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 (154) hide show
  1. package/dist/{AddToCartForm-365O6IQY.js → AddToCartForm-QDOLIEJQ.js} +3 -3
  2. package/dist/{AddToCartForm-365O6IQY.js.map → AddToCartForm-QDOLIEJQ.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-QIII3YRK.js → BlogAuthorPage-3PXTTKD2.js} +6 -6
  4. package/dist/{BlogAuthorPage-QIII3YRK.js.map → BlogAuthorPage-3PXTTKD2.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-HNGWYTN6.js → BlogCategoryPage-ELIZ66NZ.js} +6 -6
  6. package/dist/{BlogCategoryPage-HNGWYTN6.js.map → BlogCategoryPage-ELIZ66NZ.js.map} +1 -1
  7. package/dist/{BlogPage-7NGO5VLL.js → BlogPage-QP5FYB6W.js} +5 -5
  8. package/dist/{BlogPage-7NGO5VLL.js.map → BlogPage-QP5FYB6W.js.map} +1 -1
  9. package/dist/{BlogSinglePage-Y42LPA2L.js → BlogSinglePage-WML62TEH.js} +5 -5
  10. package/dist/{BlogSinglePage-Y42LPA2L.js.map → BlogSinglePage-WML62TEH.js.map} +1 -1
  11. package/dist/{BlogTagPage-ZCFYLXH6.js → BlogTagPage-UYB62N2A.js} +6 -6
  12. package/dist/{BlogTagPage-ZCFYLXH6.js.map → BlogTagPage-UYB62N2A.js.map} +1 -1
  13. package/dist/{BrandsPage-PPJVASUW.js → BrandsPage-I7TW2URN.js} +5 -5
  14. package/dist/{BrandsPage-PPJVASUW.js.map → BrandsPage-I7TW2URN.js.map} +1 -1
  15. package/dist/{Breadcrumb-4DUAJK3V.js → Breadcrumb-EH55PVNJ.js} +5 -5
  16. package/dist/{Breadcrumb-4DUAJK3V.js.map → Breadcrumb-EH55PVNJ.js.map} +1 -1
  17. package/dist/{CartItem-T4N3HMXU.js → CartItem-N4XSKQTB.js} +5 -5
  18. package/dist/{CartItem-T4N3HMXU.js.map → CartItem-N4XSKQTB.js.map} +1 -1
  19. package/dist/{CartSummary-Z25JDFWN.js → CartSummary-OM4X2NLC.js} +5 -5
  20. package/dist/{CartSummary-Z25JDFWN.js.map → CartSummary-OM4X2NLC.js.map} +1 -1
  21. package/dist/{Copyright-WNJIDKSR.js → Copyright-XE5XNMYG.js} +3 -3
  22. package/dist/{Copyright-WNJIDKSR.js.map → Copyright-XE5XNMYG.js.map} +1 -1
  23. package/dist/{CustomerLayout-A6DVYYC3.js → CustomerLayout-HQAWJ4CV.js} +24 -8
  24. package/dist/CustomerLayout-HQAWJ4CV.js.map +1 -0
  25. package/dist/{Footer-3YBOSAO5.js → Footer-4KM2TX4Q.js} +5 -5
  26. package/dist/{Footer-3YBOSAO5.js.map → Footer-4KM2TX4Q.js.map} +1 -1
  27. package/dist/{Header-6M7TVMSW.js → Header-NNACXS5F.js} +4 -4
  28. package/dist/{Header-6M7TVMSW.js.map → Header-NNACXS5F.js.map} +1 -1
  29. package/dist/{LoyaltyPage-XQJ6RDT6.js → LoyaltyPage-DIU7FAEL.js} +5 -5
  30. package/dist/{LoyaltyPage-XQJ6RDT6.js.map → LoyaltyPage-DIU7FAEL.js.map} +1 -1
  31. package/dist/{LoyaltyPointsPage-K75LJNNP.js → LoyaltyPointsPage-EMJEFBLA.js} +3 -3
  32. package/dist/{LoyaltyPointsPage-K75LJNNP.js.map → LoyaltyPointsPage-EMJEFBLA.js.map} +1 -1
  33. package/dist/{MainMenu-V7GPKDTU.js → MainMenu-7W5ENSPK.js} +3 -3
  34. package/dist/{MainMenu-V7GPKDTU.js.map → MainMenu-7W5ENSPK.js.map} +1 -1
  35. package/dist/{MasterLayout-MBQ4JM3D.js → MasterLayout-QCCMRBYA.js} +5 -5
  36. package/dist/{MasterLayout-MBQ4JM3D.js.map → MasterLayout-QCCMRBYA.js.map} +1 -1
  37. package/dist/{MobileMenu-UFX4ZHW7.js → MobileMenu-QFOL5UPI.js} +5 -5
  38. package/dist/{MobileMenu-UFX4ZHW7.js.map → MobileMenu-QFOL5UPI.js.map} +1 -1
  39. package/dist/{NotificationsPage-M3YK2HRM.js → NotificationsPage-VOUFKNUQ.js} +5 -5
  40. package/dist/{NotificationsPage-M3YK2HRM.js.map → NotificationsPage-VOUFKNUQ.js.map} +1 -1
  41. package/dist/OrderSinglePage-WYNWGJ6N.js +719 -0
  42. package/dist/OrderSinglePage-WYNWGJ6N.js.map +1 -0
  43. package/dist/OrdersPage-BAPUFN4I.js +68 -0
  44. package/dist/OrdersPage-BAPUFN4I.js.map +1 -0
  45. package/dist/{PageSingle-HRMSVNHN.js → PageSingle-WPU4OJF4.js} +3 -3
  46. package/dist/{PageSingle-HRMSVNHN.js.map → PageSingle-WPU4OJF4.js.map} +1 -1
  47. package/dist/{ProductDetails-GAC3NYQM.js → ProductDetails-NKNCR5QX.js} +3 -3
  48. package/dist/{ProductDetails-GAC3NYQM.js.map → ProductDetails-NKNCR5QX.js.map} +1 -1
  49. package/dist/{ProfilePage-33I2XTJ6.js → ProfilePage-ENSVDCJI.js} +5 -5
  50. package/dist/{ProfilePage-33I2XTJ6.js.map → ProfilePage-ENSVDCJI.js.map} +1 -1
  51. package/dist/{SeoCartWidget-AEG2YLEF.js → SeoCartWidget-H7IY2ZR4.js} +5 -5
  52. package/dist/{SeoCartWidget-AEG2YLEF.js.map → SeoCartWidget-H7IY2ZR4.js.map} +1 -1
  53. package/dist/{SettingsPage-N3M677LP.js → SettingsPage-HEWBMFUI.js} +5 -5
  54. package/dist/{SettingsPage-N3M677LP.js.map → SettingsPage-HEWBMFUI.js.map} +1 -1
  55. package/dist/{StoreClosedNotification-5MTDRRC3.js → StoreClosedNotification-VIS7RAEH.js} +6 -6
  56. package/dist/{StoreClosedNotification-5MTDRRC3.js.map → StoreClosedNotification-VIS7RAEH.js.map} +1 -1
  57. package/dist/{TestimonialsPage-Z64P6MZX.js → TestimonialsPage-TNL7CM6X.js} +3 -3
  58. package/dist/{TestimonialsPage-Z64P6MZX.js.map → TestimonialsPage-TNL7CM6X.js.map} +1 -1
  59. package/dist/{ThankYouPage-ZXQZMWCX.js → ThankYouPage-VFVXLL6Q.js} +5 -5
  60. package/dist/{ThankYouPage-ZXQZMWCX.js.map → ThankYouPage-VFVXLL6Q.js.map} +1 -1
  61. package/dist/{WalletPage-557AU5GH.js → WalletPage-CINZCGTU.js} +5 -5
  62. package/dist/{WalletPage-557AU5GH.js.map → WalletPage-CINZCGTU.js.map} +1 -1
  63. package/dist/{WishlistPage-HTDQW2N2.js → WishlistPage-M37MPJBY.js} +5 -5
  64. package/dist/{WishlistPage-HTDQW2N2.js.map → WishlistPage-M37MPJBY.js.map} +1 -1
  65. package/dist/api/order.d.ts +22 -0
  66. package/dist/api/order.d.ts.map +1 -1
  67. package/dist/api/order.js +1 -1
  68. package/dist/{chunk-KILNHLWE.js → chunk-3A4ZJP5S.js} +4 -4
  69. package/dist/{chunk-KILNHLWE.js.map → chunk-3A4ZJP5S.js.map} +1 -1
  70. package/dist/{chunk-HSVGQ2DV.js → chunk-6J33ZJB6.js} +3 -3
  71. package/dist/{chunk-HSVGQ2DV.js.map → chunk-6J33ZJB6.js.map} +1 -1
  72. package/dist/{chunk-XFCJM6RN.js → chunk-7ZYIBWZM.js} +14 -10
  73. package/dist/chunk-7ZYIBWZM.js.map +1 -0
  74. package/dist/{chunk-4KTY2FT6.js → chunk-ABOMCRUW.js} +5 -5
  75. package/dist/{chunk-4KTY2FT6.js.map → chunk-ABOMCRUW.js.map} +1 -1
  76. package/dist/{chunk-Y7HKVYDG.js → chunk-EHEXX43T.js} +7 -7
  77. package/dist/{chunk-Y7HKVYDG.js.map → chunk-EHEXX43T.js.map} +1 -1
  78. package/dist/{chunk-UFPZXWGM.js → chunk-LJ525OCU.js} +3 -3
  79. package/dist/{chunk-UFPZXWGM.js.map → chunk-LJ525OCU.js.map} +1 -1
  80. package/dist/{chunk-YEY3SO23.js → chunk-N6TNEM5G.js} +11 -2
  81. package/dist/chunk-N6TNEM5G.js.map +1 -0
  82. package/dist/{chunk-UH5ZXDEO.js → chunk-PDDMAWWF.js} +3 -3
  83. package/dist/{chunk-UH5ZXDEO.js.map → chunk-PDDMAWWF.js.map} +1 -1
  84. package/dist/{chunk-YLPI4HDD.js → chunk-T6YSHLAI.js} +6 -6
  85. package/dist/{chunk-YLPI4HDD.js.map → chunk-T6YSHLAI.js.map} +1 -1
  86. package/dist/{chunk-LUTMPFRW.js → chunk-VKY5OTIN.js} +3 -3
  87. package/dist/{chunk-LUTMPFRW.js.map → chunk-VKY5OTIN.js.map} +1 -1
  88. package/dist/{chunk-EIJXSBL6.js → chunk-XCS3HZNM.js} +22 -46
  89. package/dist/chunk-XCS3HZNM.js.map +1 -0
  90. package/dist/chunk-YZHHK5IP.js +14 -0
  91. package/dist/{chunk-JKT44Y2M.js.map → chunk-YZHHK5IP.js.map} +1 -1
  92. package/dist/{chunk-EXKTSWBC.js → chunk-ZJ5KWIEB.js} +4 -4
  93. package/dist/{chunk-EXKTSWBC.js.map → chunk-ZJ5KWIEB.js.map} +1 -1
  94. package/dist/components/cart/index.js +1 -1
  95. package/dist/components/common/index.js +1 -1
  96. package/dist/components/drawer/index.js +3 -3
  97. package/dist/components/home/index.js +5 -5
  98. package/dist/components/layout/CustomerLayout.d.ts.map +1 -1
  99. package/dist/components/layout/index.js +1 -1
  100. package/dist/components/product/index.js +4 -4
  101. package/dist/components/store/index.js +5 -5
  102. package/dist/{document-class-SKCL6IJF.js → document-class-37KI2E52.js} +3 -3
  103. package/dist/{document-class-SKCL6IJF.js.map → document-class-37KI2E52.js.map} +1 -1
  104. package/dist/hooks/index.js +3 -3
  105. package/dist/hooks/useGtm.js +3 -3
  106. package/dist/hooks/useMoney.d.ts +3 -3
  107. package/dist/hooks/useMoney.d.ts.map +1 -1
  108. package/dist/hooks/useMoney.js +3 -3
  109. package/dist/hooks/useStore.js +3 -3
  110. package/dist/index.js +3 -3
  111. package/dist/{not-found-KBOXJ3AG.js → not-found-UXBV4766.js} +5 -5
  112. package/dist/{not-found-KBOXJ3AG.js.map → not-found-UXBV4766.js.map} +1 -1
  113. package/dist/providers/index.js +3 -3
  114. package/dist/routes/account/orders/OrderSinglePage.d.ts +7 -1
  115. package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -1
  116. package/dist/routes/account/orders/OrdersPage.d.ts +2 -1
  117. package/dist/routes/account/orders/OrdersPage.d.ts.map +1 -1
  118. package/dist/routes/account/orders/loader.d.ts.map +1 -1
  119. package/dist/routes/account/orders/single/OrderActions.d.ts +7 -0
  120. package/dist/routes/account/orders/single/OrderActions.d.ts.map +1 -0
  121. package/dist/routes/account/orders/single/OrderHeader.d.ts +8 -0
  122. package/dist/routes/account/orders/single/OrderHeader.d.ts.map +1 -0
  123. package/dist/routes/account/orders/single/OrderItemRow.d.ts +9 -0
  124. package/dist/routes/account/orders/single/OrderItemRow.d.ts.map +1 -0
  125. package/dist/routes/account/orders/single/OrderSections.d.ts +23 -0
  126. package/dist/routes/account/orders/single/OrderSections.d.ts.map +1 -0
  127. package/dist/routes/account/orders/single/types.d.ts +53 -0
  128. package/dist/routes/account/orders/single/types.d.ts.map +1 -0
  129. package/dist/routes/account/orders/types.d.ts +3 -0
  130. package/dist/routes/account/orders/types.d.ts.map +1 -1
  131. package/dist/routes/account/orders.js +2 -2
  132. package/dist/routes/account.js +7 -7
  133. package/dist/routes/blog.js +5 -5
  134. package/dist/routes/brands.js +1 -1
  135. package/dist/routes/cart.js +7 -7
  136. package/dist/routes/home.js +6 -6
  137. package/dist/routes/loyalty.js +2 -2
  138. package/dist/routes/page.js +1 -1
  139. package/dist/routes/product-listing.js +5 -5
  140. package/dist/routes/product.js +5 -5
  141. package/dist/routes/testimonials.js +1 -1
  142. package/dist/routes/thank-you.js +2 -2
  143. package/dist/skeleton.js +6 -6
  144. package/dist/tanstack.js +2 -2
  145. package/package.json +1 -1
  146. package/dist/CustomerLayout-A6DVYYC3.js.map +0 -1
  147. package/dist/OrderSinglePage-7LIUMNRB.js +0 -502
  148. package/dist/OrderSinglePage-7LIUMNRB.js.map +0 -1
  149. package/dist/OrdersPage-WI4OSGBF.js +0 -252
  150. package/dist/OrdersPage-WI4OSGBF.js.map +0 -1
  151. package/dist/chunk-EIJXSBL6.js.map +0 -1
  152. package/dist/chunk-JKT44Y2M.js +0 -14
  153. package/dist/chunk-XFCJM6RN.js.map +0 -1
  154. package/dist/chunk-YEY3SO23.js.map +0 -1
@@ -1,502 +0,0 @@
1
- import { order } from './chunk-YEY3SO23.js';
2
- import { usePageConfig, useDate, useMoney } from './chunk-EIJXSBL6.js';
3
- import './chunk-4KTY2FT6.js';
4
- import './chunk-JKIRRMBU.js';
5
- import './chunk-2JV6WZ6O.js';
6
- import './chunk-UIOLSYKV.js';
7
- import './chunk-VVZNW5CB.js';
8
- import './chunk-2XGQSJKH.js';
9
- import { useNavigate, useLocation } from './chunk-I62RENKM.js';
10
- import './chunk-ZGHRSRDO.js';
11
- import './chunk-GOPUP26T.js';
12
- import './chunk-C5X6CVXC.js';
13
- import { useUser } from './chunk-UZKTK6YV.js';
14
- import './chunk-5X2UFNKY.js';
15
- import './chunk-P3OPJL6I.js';
16
- import './chunk-WY4IYO3G.js';
17
- import './chunk-TYLKNVQA.js';
18
- import './chunk-SR4OTLTJ.js';
19
- import './chunk-N2S25NXP.js';
20
- import './chunk-TP3LCGE7.js';
21
- import './chunk-Z653O7MX.js';
22
- import './chunk-ZCH7W7DZ.js';
23
- import './chunk-PWBMSGMU.js';
24
- import './chunk-JWXJPJBO.js';
25
- import './chunk-CW625T2E.js';
26
- import './chunk-7V36I5GT.js';
27
- import './chunk-BVSJPBJ6.js';
28
- import './chunk-GBWCXUPD.js';
29
- import './chunk-OAMIDZKW.js';
30
- import { useTranslation } from './chunk-TYNZ5B2B.js';
31
- import './chunk-T72DAX7R.js';
32
- import './chunk-RJPPO3ET.js';
33
- import { HookSlot } from './chunk-Q7VWURUR.js';
34
- import './chunk-GU2KUQVD.js';
35
- import { Image } from './chunk-UH5ZXDEO.js';
36
- import { Link } from './chunk-AXW67SY7.js';
37
- import './chunk-BYMOPN2S.js';
38
- import './chunk-SKLEJJ6M.js';
39
- import { useAsyncFn } from './chunk-6BZ5TKEV.js';
40
- import './chunk-FZKRSGLP.js';
41
- import './chunk-CUG6VOLM.js';
42
- import './chunk-HX3YKS5W.js';
43
- import './chunk-OBSAH7K6.js';
44
- import { useTwilight } from './chunk-DF6FBKDN.js';
45
- import './chunk-DGUM43GV.js';
46
- import { memo, useState } from 'react';
47
- import { useQuery } from '@tanstack/react-query';
48
- import { SallaButton } from '@salla.sa/twilight-components-react/button';
49
- import { SallaOrderDetails } from '@salla.sa/twilight-components-react/order-details';
50
- import { SallaRatingStars } from '@salla.sa/twilight-components-react/rating-stars';
51
- import { SallaRatingModal } from '@salla.sa/twilight-components-react/rating-modal';
52
- import { SallaModal } from '@salla.sa/twilight-components-react/modal';
53
- import { SallaEditOrderButton } from '@salla.sa/twilight-components-react/edit-order-button';
54
- import { SallaOrderBranch } from '@salla.sa/twilight-components-react/order-branch';
55
- import { SallaOrderTotalsCard } from '@salla.sa/twilight-components-react/order-totals-card';
56
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
57
-
58
- var ContentSkeleton = memo(function ContentSkeleton2() {
59
- return /* @__PURE__ */ jsxs("div", { className: "animate-pulse bg-white rounded-md p-5 space-y-3", children: [
60
- /* @__PURE__ */ jsx("div", { className: "h-4 bg-gray-200 rounded w-1/3" }),
61
- /* @__PURE__ */ jsx("div", { className: "h-4 bg-gray-200 rounded w-2/3" }),
62
- /* @__PURE__ */ jsx("div", { className: "h-4 bg-gray-200 rounded w-1/2" })
63
- ] });
64
- });
65
- function OrderSinglePage({ order: order2, page }) {
66
- const { t, direction } = useTranslation();
67
- usePageConfig(page);
68
- const { store } = useTwilight();
69
- const { data: user } = useUser();
70
- const navigate = useNavigate();
71
- const location = useLocation();
72
- const { format: formatDate } = useDate();
73
- const { format } = useMoney();
74
- const [showReorderModal, setShowReorderModal] = useState(false);
75
- const [showCancelModal, setShowCancelModal] = useState(false);
76
- const { data: shipments, isLoading: isLoadingShipments } = useQuery({
77
- ...order.queries.shipments(String(order2.id)),
78
- enabled: order2.features.shippable
79
- });
80
- const { data: ratings, isLoading: isLoadingRatings } = useQuery({
81
- ...order.queries.ratings(String(order2.id)),
82
- enabled: order2.actions.rateable
83
- });
84
- const [reorderState, handleReorder] = useAsyncFn(async () => {
85
- await window.salla?.order.createCartFromOrder(Number(order2.id));
86
- setShowReorderModal(false);
87
- navigate("/cart");
88
- }, [navigate, order2.id]);
89
- const [cancelState, handleCancel] = useAsyncFn(async () => {
90
- await window.salla?.order.cancel(Number(order2.id));
91
- setShowCancelModal(false);
92
- navigate(location.pathname, { replace: true });
93
- }, [navigate, order2.id, location.pathname]);
94
- return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
95
- /* @__PURE__ */ jsx(HookSlot, { name: "customer:orders.single.details.start" }),
96
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 flex-wrap", children: [
97
- order2.type === "buy_as_gift" || order2.source?.type === "buy_as_gift" ? /* @__PURE__ */ jsxs("span", { className: "inline-block text-primary", children: [
98
- /* @__PURE__ */ jsx("i", { className: "sicon-gift-sharing" }),
99
- "\xA0",
100
- t("pages.orders.gift_tag", "Gift order")
101
- ] }) : /* @__PURE__ */ jsx("span", {}),
102
- /* @__PURE__ */ jsx(SallaEditOrderButton, { orderId: String(order2.id) })
103
- ] }),
104
- /* @__PURE__ */ jsx("table", { className: "min-w-full rounded-md overflow-hidden", children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { className: "bg-white overflow-hidden flex md:table-row flex-row md:flex-row flex-wrap md:flex-no-wrap py-1.5 md:py-0", children: [
105
- /* @__PURE__ */ jsxs("td", { className: "single-order-header-item w-full md:w-auto px-3 md:px-6 py-2 md:py-4 md:h-20 whitespace-nowrap text-sm", children: [
106
- /* @__PURE__ */ jsx("div", { className: "rtl:ml-2 ltr:mr-2 font-normal text-gray-400", children: t("pages.orders.date") }),
107
- /* @__PURE__ */ jsx("b", { children: formatDate(order2.created_at.date) })
108
- ] }),
109
- /* @__PURE__ */ jsxs("td", { className: "single-order-header-item flex justify-between items-center w-full md:w-auto px-3 md:px-6 py-2 md:py-4 md:h-20 whitespace-nowrap text-sm", children: [
110
- /* @__PURE__ */ jsxs(
111
- "span",
112
- {
113
- className: "text-primary inline-flex items-center rtl:space-x-reverse space-x-1",
114
- style: { color: order2.status.color },
115
- children: [
116
- order2.status.icon && /* @__PURE__ */ jsx("i", { className: `mt-1 ${order2.status.icon}` }),
117
- /* @__PURE__ */ jsx("span", { children: order2.status.name })
118
- ]
119
- }
120
- ),
121
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
122
- order2.type === "quote" && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-4", children: t("pages.orders.your_order_is_under_review") }),
123
- /* @__PURE__ */ jsxs("div", { className: "flex space-x-2 rtl:space-x-reverse text-start flex-none px-2", children: [
124
- order2.urls.digital_content && /* @__PURE__ */ jsx(
125
- "a",
126
- {
127
- href: order2.urls.digital_content,
128
- target: "_blank",
129
- rel: "noopener noreferrer",
130
- className: "salla-button salla-button--small",
131
- children: /* @__PURE__ */ jsxs("span", { className: "salla-button-text", children: [
132
- t("pages.orders.digital"),
133
- /* @__PURE__ */ jsx(
134
- "i",
135
- {
136
- className: user && direction === "rtl" ? "sicon-arrow-up-left" : "sicon-arrow-up-right"
137
- }
138
- )
139
- ] })
140
- }
141
- ),
142
- order2.urls.tracking?.map((trackingUrl) => /* @__PURE__ */ jsx(
143
- "a",
144
- {
145
- href: trackingUrl,
146
- target: "_blank",
147
- rel: "noopener noreferrer",
148
- className: "salla-button salla-button--small",
149
- children: /* @__PURE__ */ jsxs("span", { className: "salla-button-text", children: [
150
- t("pages.orders.tracking"),
151
- /* @__PURE__ */ jsx(
152
- "i",
153
- {
154
- className: user && direction === "rtl" ? "sicon-arrow-up-left" : "sicon-arrow-up-right"
155
- }
156
- )
157
- ] })
158
- },
159
- trackingUrl
160
- ))
161
- ] }),
162
- order2.urls.receipt && /* @__PURE__ */ jsxs(
163
- SallaButton,
164
- {
165
- fill: "outline",
166
- size: "small",
167
- onClick: () => window.open(
168
- order2.urls.receipt,
169
- "_blank",
170
- "toolbar=yes, scrollbars=yes, resizable=yes, width=900, height=700"
171
- ),
172
- children: [
173
- /* @__PURE__ */ jsx("i", { className: "sicon-printer2 v-align" }),
174
- t("pages.orders.print")
175
- ]
176
- }
177
- )
178
- ] })
179
- ] })
180
- ] }) }) }),
181
- /* @__PURE__ */ jsx(SallaOrderBranch, { stackCards: true }),
182
- order2.refund_message && /* @__PURE__ */ jsx("div", { className: "min-w-full rounded-md overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "bg-white flex items-center gap-1 rounded-md px-3 py-5 md:px-5", children: [
183
- /* @__PURE__ */ jsx("i", { className: "sicon-refund h-6 w-6" }),
184
- /* @__PURE__ */ jsx(
185
- "p",
186
- {
187
- className: "font-medium text-base",
188
- dangerouslySetInnerHTML: { __html: order2.refund_message }
189
- }
190
- )
191
- ] }) }),
192
- order2.actions.rateable && /* @__PURE__ */ jsxs("div", { className: "rating-header gradient-bg center-between", children: [
193
- /* @__PURE__ */ jsxs("div", { children: [
194
- /* @__PURE__ */ jsx("h2", { className: "font-bold mb-1", children: t("pages.order.order_rating_title") }),
195
- /* @__PURE__ */ jsx("p", { className: "text-sm", children: t("pages.order.order_rating_message") })
196
- ] }),
197
- /* @__PURE__ */ jsx(
198
- SallaButton,
199
- {
200
- color: "light",
201
- className: "btn--rounded-full !text-primary",
202
- onClick: () => window.salla?.event.dispatch("rating::open"),
203
- children: t("pages.rating.rate")
204
- }
205
- )
206
- ] }),
207
- store.settings?.rating?.allow_update && ratings && ratings.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 bg-blue-50 border border-blue-200 text-blue-500 px-2 py-3 rounded-md text-sm", children: [
208
- /* @__PURE__ */ jsx("i", { className: "sicon-info" }),
209
- /* @__PURE__ */ jsxs("p", { children: [
210
- t("pages.order.can_edit_or_delete_your_review_within"),
211
- " ",
212
- store.settings?.rating?.update_period,
213
- " ",
214
- t("pages.order.days_since_added"),
215
- "."
216
- ] })
217
- ] }),
218
- order2.features.shippable && (isLoadingShipments ? /* @__PURE__ */ jsx(ContentSkeleton, {}) : shipments?.map((shipment) => /* @__PURE__ */ jsx("div", { className: "shipping-orders", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row justify-between md:items-center bg-white px-5 py-3 border-b border-gray-100 rounded-t-md text-sm space-y-4 md:space-y-0", children: [
219
- /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2 rtl:space-x-reverse", children: [
220
- /* @__PURE__ */ jsx(
221
- Image,
222
- {
223
- src: shipment.logo,
224
- className: "max-w-16 max-h-8",
225
- alt: shipment.name,
226
- aspectRatio: "2/1"
227
- }
228
- ),
229
- /* @__PURE__ */ jsx("span", { children: shipment.name })
230
- ] }),
231
- /* @__PURE__ */ jsxs("div", { className: "flex space-x-5 rtl:space-x-reverse", children: [
232
- shipment.number && /* @__PURE__ */ jsxs("span", { children: [
233
- t("pages.orders.shipment_no"),
234
- ":",
235
- " ",
236
- /* @__PURE__ */ jsx("span", { className: "font-bold", children: shipment.number })
237
- ] }),
238
- shipment.tracking_url && /* @__PURE__ */ jsxs(
239
- "a",
240
- {
241
- href: shipment.tracking_url,
242
- target: "_blank",
243
- rel: "noopener noreferrer",
244
- className: "salla-button salla-button--link",
245
- children: [
246
- /* @__PURE__ */ jsx("span", { className: "sicon-shipping rtl:ml-1 ltr:mr-1" }),
247
- t("pages.orders.tracking_url")
248
- ]
249
- }
250
- )
251
- ] })
252
- ] }) }, shipment.id))),
253
- order2.items.map((item) => /* @__PURE__ */ jsxs(
254
- "div",
255
- {
256
- "data-order-item-id": item.id,
257
- "data-order-item-product-id": item.product?.id,
258
- className: "order-item bg-white p-5 border-b border-gray-100 first:rounded-t-md last:rounded-b-md last:border-none",
259
- children: [
260
- /* @__PURE__ */ jsxs("div", { className: "mb-5 last:mb-0", children: [
261
- item.product ? /* @__PURE__ */ jsxs("div", { className: "flex rtl:space-x-reverse space-x-5 mb-4", children: [
262
- /* @__PURE__ */ jsx(Link, { to: item.product.url, className: "shrink-0", children: /* @__PURE__ */ jsx(
263
- Image,
264
- {
265
- src: item.image || "/images/placeholder.png",
266
- alt: item.name,
267
- className: `w-18 h-14 object-${item.image ? "cover" : "contain"} rounded-md`
268
- }
269
- ) }),
270
- /* @__PURE__ */ jsxs("div", { children: [
271
- /* @__PURE__ */ jsx(
272
- Link,
273
- {
274
- to: item.product.url,
275
- className: "block leading-5 mb-1.5 md:text-base font-semibold transition-colors text-gray-500 hover:text-primary",
276
- children: item.name
277
- }
278
- ),
279
- /* @__PURE__ */ jsx("b", { children: format(item.amounts.amount?.amount, {
280
- currency: item.amounts.amount?.currency
281
- }) })
282
- ] })
283
- ] }) : /* @__PURE__ */ jsxs("div", { className: "w-full flex justify-between text-sm py-2.5", children: [
284
- /* @__PURE__ */ jsx("span", { className: "w-40 inline-block font-normal", children: item.name }),
285
- /* @__PURE__ */ jsx("b", { children: format(item.amounts.amount?.amount, { currency: item.amounts.amount?.currency }) })
286
- ] }),
287
- /* @__PURE__ */ jsxs("div", { className: "w-full flex justify-between text-sm py-2.5", children: [
288
- /* @__PURE__ */ jsx("span", { className: "w-40 inline-block font-normal", children: t("pages.products.quantity", "Quantity") }),
289
- /* @__PURE__ */ jsx("b", { children: item.quantity })
290
- ] }),
291
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm py-2.5", children: [
292
- /* @__PURE__ */ jsx("span", { className: "w-40 inline-block font-normal", children: t("pages.products.price", "Price") }),
293
- /* @__PURE__ */ jsx("b", { children: format(item.amounts.cost?.amount, { currency: item.amounts.cost?.currency }) })
294
- ] }),
295
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm py-2.5", children: [
296
- /* @__PURE__ */ jsx("span", { className: "w-40 inline-block font-normal", children: t("pages.cart.total", "Total") }),
297
- /* @__PURE__ */ jsx("b", { children: format(item.amounts.total?.amount, { currency: item.amounts.total?.currency }) })
298
- ] })
299
- ] }),
300
- item.availability_date && /* @__PURE__ */ jsxs("div", { className: "flex gap-2 text-sm py-2.5 text-blue-500", children: [
301
- /* @__PURE__ */ jsx("i", { className: "sicon-info" }),
302
- /* @__PURE__ */ jsxs("span", { children: [
303
- t("pages.products.expected_to_be"),
304
- ": ",
305
- /* @__PURE__ */ jsx("b", { children: item.availability_date })
306
- ] })
307
- ] }),
308
- item.product?.type === "booking" && item.product_reservations && item.product_reservations.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
309
- item.booking_location && /* @__PURE__ */ jsx("ul", { className: "font-medium text-xs text-gray-600", children: /* @__PURE__ */ jsxs("li", { className: "py-1 flex justify-between items-baseline", children: [
310
- /* @__PURE__ */ jsx("span", { className: "mt-5 mb-3.5 text-sm font-bold", children: t("common.elements.location") }),
311
- /* @__PURE__ */ jsx("span", { className: "text-unicode", children: item.booking_location })
312
- ] }) }),
313
- /* @__PURE__ */ jsx("h3", { className: "mt-5 mb-3.5 text-sm font-bold", children: item.product_reservations.length > 1 ? t("pages.cart.reservations") : t("pages.cart.item_options") }),
314
- /* @__PURE__ */ jsx("div", { className: "rounded-md p-4 border border-gray-200 mb-2", children: /* @__PURE__ */ jsx(SallaOrderDetails, { orderDetails: JSON.stringify(item) }) })
315
- ] }),
316
- !(item.product?.type === "booking" && item.product_reservations && item.product_reservations.length > 0) && /* @__PURE__ */ jsx(SallaOrderDetails, { orderDetails: JSON.stringify(item) }),
317
- item.options && item.options.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-3", children: [
318
- /* @__PURE__ */ jsx("h3", { className: "mb-2 text-sm font-bold", children: t("pages.cart.item_options", "Product Options") }),
319
- /* @__PURE__ */ jsx("div", { className: "rounded-md border border-gray-200 divide-y divide-gray-200", children: item.options.map((option) => /* @__PURE__ */ jsxs(
320
- "div",
321
- {
322
- className: "flex items-center justify-between gap-4 px-4 py-2.5 text-sm",
323
- children: [
324
- /* @__PURE__ */ jsx("span", { className: "font-normal text-gray-500", children: option.name }),
325
- option.is_image ? /* @__PURE__ */ jsx(
326
- Image,
327
- {
328
- src: option.value,
329
- alt: option.name,
330
- className: "h-7 w-7 rounded-md object-cover"
331
- }
332
- ) : option.color ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
333
- /* @__PURE__ */ jsx(
334
- "span",
335
- {
336
- className: "h-4 w-4 rounded-full border border-gray-200",
337
- style: { backgroundColor: option.color }
338
- }
339
- ),
340
- /* @__PURE__ */ jsx("b", { children: option.value })
341
- ] }) : /* @__PURE__ */ jsx("b", { children: option.value })
342
- ]
343
- },
344
- option.name
345
- )) })
346
- ] }),
347
- item.note && /* @__PURE__ */ jsxs("p", { className: "mt-3 text-sm text-gray-500", children: [
348
- /* @__PURE__ */ jsxs("span", { children: [
349
- t("common.elements.note", "Note"),
350
- ": "
351
- ] }),
352
- item.note
353
- ] }),
354
- item.attachments && item.attachments.length > 0 && /* @__PURE__ */ jsx("div", { className: "flow-root rounded-md px-4 border border-gray-200", children: /* @__PURE__ */ jsx("dl", { className: "text-sm text-dark divide-y divide-border-color", children: item.attachments.map((attachment) => /* @__PURE__ */ jsxs(
355
- "div",
356
- {
357
- className: "py-3.5 md:flex items-center justify-between",
358
- children: [
359
- /* @__PURE__ */ jsx("dt", { className: "mb-2 md:mb-0", children: t("pages.products.attachments") }),
360
- /* @__PURE__ */ jsx(
361
- "dd",
362
- {
363
- className: `font-medium ${attachment.type === "image" ? "text-gray-900" : "text-xs"}`,
364
- children: attachment.type === "image" && attachment.url ? /* @__PURE__ */ jsx("div", { className: "flex rtl:space-x-reverse space-x-2.5", children: /* @__PURE__ */ jsx("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ jsx(
365
- Image,
366
- {
367
- className: "h-7 w-7 object-cover rounded-md",
368
- src: attachment.url,
369
- alt: item.name
370
- }
371
- ) }) }) : /* @__PURE__ */ jsx("a", { href: attachment.url, children: t("pages.orders.file_url") })
372
- }
373
- )
374
- ]
375
- },
376
- `${attachment.type}:${attachment.url}`
377
- )) }) })
378
- ]
379
- },
380
- item.id
381
- )),
382
- /* @__PURE__ */ jsx(SallaOrderTotalsCard, { amounts: JSON.stringify(order2.amounts), ...{} }),
383
- (order2.actions.reorderable || order2.actions.cancellable || order2.actions.payable) && /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-md p-5 divide-y divide-border-color space-y-4", children: [
384
- (order2.actions.reorderable || order2.actions.payable) && /* @__PURE__ */ jsx("div", { className: order2.actions.payable ? "flex-center" : "center-between", children: order2.actions.payable ? (order2.payment?.pending_payment_ends_at ?? 0) === 0 ? /* @__PURE__ */ jsx("span", { className: "text-red-500", children: t("pages.orders.pending_payment_expired") }) : order2.urls.checkout ? /* @__PURE__ */ jsxs(SallaButton, { width: "wide", href: order2.urls.checkout, children: [
385
- /* @__PURE__ */ jsx("i", { className: "sicon sicon-wallet rtl:ml-2 ltr:mr-2" }),
386
- /* @__PURE__ */ jsx("span", { children: t("pages.orders.finish_payment") })
387
- ] }) : /* @__PURE__ */ jsx("span", { className: "text-red-500", children: t("pages.orders.pending_payment_expired") }) : user ? /* @__PURE__ */ jsxs(Fragment, { children: [
388
- /* @__PURE__ */ jsxs("div", { className: "text-sm", children: [
389
- /* @__PURE__ */ jsx("h3", { className: "font-bold text-lg leading-none mb-1", children: t("pages.orders.reorder") }),
390
- /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.orders.reorder_description") })
391
- ] }),
392
- /* @__PURE__ */ jsxs(SallaButton, { onClick: () => setShowReorderModal(true), children: [
393
- /* @__PURE__ */ jsx("i", { className: "sicon sicon-rotate rtl:ml-2 ltr:mr-2" }),
394
- /* @__PURE__ */ jsx("span", { children: t("pages.orders.reorder") })
395
- ] })
396
- ] }) : null }),
397
- order2.actions.cancellable && /* @__PURE__ */ jsxs("div", { className: "center-between pt-4", children: [
398
- /* @__PURE__ */ jsxs("div", { className: "text-sm", children: [
399
- /* @__PURE__ */ jsx("h3", { className: "font-bold text-lg leading-none mb-1", children: t("pages.orders.cancel") }),
400
- /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.order.order_cancelation_desc") })
401
- ] }),
402
- /* @__PURE__ */ jsxs(SallaButton, { shape: "link", color: "danger", onClick: () => setShowCancelModal(true), children: [
403
- /* @__PURE__ */ jsx("i", { className: "sicon sicon-cancel-circle rtl:ml-2 ltr:mr-2" }),
404
- /* @__PURE__ */ jsx("span", { children: t("pages.orders.cancel") })
405
- ] })
406
- ] })
407
- ] }),
408
- isLoadingRatings ? /* @__PURE__ */ jsx(ContentSkeleton, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
409
- ratings?.map(
410
- (rating) => rating.type === "rating" && /* @__PURE__ */ jsx(
411
- "section",
412
- {
413
- className: "flex justify-between items-start bg-white p-5 rounded-md",
414
- children: /* @__PURE__ */ jsxs("div", { children: [
415
- /* @__PURE__ */ jsx("p", { className: "mb-2", children: rating.content }),
416
- /* @__PURE__ */ jsx(SallaRatingStars, { withLabel: true, size: "small", value: rating.rating }),
417
- rating.images?.map(
418
- (img) => img && /* @__PURE__ */ jsx(
419
- Image,
420
- {
421
- className: "w-20 h-20 object-cover rounded-md mt-2 mr-2 inline-block",
422
- src: img,
423
- alt: ""
424
- },
425
- img
426
- )
427
- )
428
- ] })
429
- },
430
- rating.id
431
- )
432
- ),
433
- (() => {
434
- const shippingRating = ratings?.find((r) => r.type === "shipping");
435
- return shippingRating && /* @__PURE__ */ jsx("section", { className: "flex justify-between items-start bg-white p-5 rounded-md", children: /* @__PURE__ */ jsxs("div", { children: [
436
- /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold mb-5", children: t("pages.rating.rate_shipping") }),
437
- /* @__PURE__ */ jsx("p", { className: "mb-2", children: shippingRating.content }),
438
- /* @__PURE__ */ jsx(SallaRatingStars, { withLabel: true, value: shippingRating.rating })
439
- ] }) });
440
- })(),
441
- (() => {
442
- const testimonialRating = ratings?.find((r) => r.type === "testimonial");
443
- return testimonialRating && /* @__PURE__ */ jsx("section", { className: "flex justify-between items-start bg-white p-5 rounded-md", children: /* @__PURE__ */ jsxs("div", { children: [
444
- /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold mb-5", children: t("pages.rating.rate_the_store") }),
445
- /* @__PURE__ */ jsx("p", { className: "mb-2", children: testimonialRating.content }),
446
- /* @__PURE__ */ jsx(SallaRatingStars, { withLabel: true, value: testimonialRating.rating })
447
- ] }) });
448
- })()
449
- ] }),
450
- /* @__PURE__ */ jsx(HookSlot, { name: "customer:orders.single.details.end" }),
451
- order2.actions.rateable && /* @__PURE__ */ jsx(SallaRatingModal, {}),
452
- user && order2.actions.reorderable && showReorderModal && /* @__PURE__ */ jsx(
453
- SallaModal,
454
- {
455
- width: "sm",
456
- subTitle: t("pages.orders.reorder_confirmation"),
457
- iconStyle: "success",
458
- children: /* @__PURE__ */ jsxs("div", { slot: "footer", className: "grid grid-cols-2 gap-3", children: [
459
- /* @__PURE__ */ jsx(SallaButton, { width: "wide", onClick: handleReorder, disabled: reorderState.loading, children: reorderState.loading ? /* @__PURE__ */ jsx("span", { className: "loader loader--small" }) : t("common.elements.ok") }),
460
- /* @__PURE__ */ jsx(
461
- SallaButton,
462
- {
463
- className: "w-full",
464
- fill: "outline",
465
- color: "light",
466
- onClick: () => setShowReorderModal(false),
467
- disabled: reorderState.loading,
468
- children: t("common.elements.cancel")
469
- }
470
- )
471
- ] })
472
- }
473
- ),
474
- order2.actions.cancellable && showCancelModal && /* @__PURE__ */ jsx(SallaModal, { width: "sm", subTitle: t("pages.orders.cancel_confirmation"), iconStyle: "error", children: /* @__PURE__ */ jsxs("div", { slot: "footer", className: "grid grid-cols-2 gap-3", children: [
475
- /* @__PURE__ */ jsx(
476
- SallaButton,
477
- {
478
- color: "danger",
479
- className: "w-full cursor-pointer",
480
- onClick: handleCancel,
481
- disabled: cancelState.loading,
482
- children: cancelState.loading ? /* @__PURE__ */ jsx("span", { className: "loader loader--small" }) : t("common.elements.ok")
483
- }
484
- ),
485
- /* @__PURE__ */ jsx(
486
- SallaButton,
487
- {
488
- className: "w-full",
489
- fill: "outline",
490
- color: "light",
491
- onClick: () => setShowCancelModal(false),
492
- disabled: cancelState.loading,
493
- children: t("common.elements.cancel")
494
- }
495
- )
496
- ] }) })
497
- ] });
498
- }
499
-
500
- export { OrderSinglePage };
501
- //# sourceMappingURL=OrderSinglePage-7LIUMNRB.js.map
502
- //# sourceMappingURL=OrderSinglePage-7LIUMNRB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routes/account/orders/OrderSinglePage.tsx"],"names":["ContentSkeleton","order"],"mappings":"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","file":"OrderSinglePage-7LIUMNRB.js","sourcesContent":["import { useState, memo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { SallaOrderDetails } from '@salla.sa/twilight-components-react/order-details';\nimport { SallaRatingStars } from '@salla.sa/twilight-components-react/rating-stars';\nimport { SallaRatingModal } from '@salla.sa/twilight-components-react/rating-modal';\nimport { SallaModal } from '@salla.sa/twilight-components-react/modal';\nimport { SallaEditOrderButton } from '@salla.sa/twilight-components-react/edit-order-button';\nimport { SallaOrderBranch } from '@salla.sa/twilight-components-react/order-branch';\nimport { SallaOrderTotalsCard } from '@salla.sa/twilight-components-react/order-totals-card';\nimport { HookSlot, useUser, useDate, usePageConfig } from '../../../hooks';\nimport { useAsyncFn } from '../../../hooks/useAsyncFn';\nimport { useMoney } from '../../../hooks/useMoney';\nimport type { OrderSinglePageProps } from '../types';\nimport { useTwilight } from '../../../providers/twilight-context';\nimport { useNavigate, useLocation } from '../../../providers/NavigationProvider';\n\nimport { Link, Image } from '../../../components/common';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport { order as orderApi } from '../../../api/order';\n\nconst ContentSkeleton = memo(function ContentSkeleton() {\n return (\n <div className=\"animate-pulse bg-white rounded-md p-5 space-y-3\">\n <div className=\"h-4 bg-gray-200 rounded w-1/3\" />\n <div className=\"h-4 bg-gray-200 rounded w-2/3\" />\n <div className=\"h-4 bg-gray-200 rounded w-1/2\" />\n </div>\n );\n});\n\nexport function OrderSinglePage({ order, page }: OrderSinglePageProps) {\n const { t, direction } = useTranslation();\n // `<salla-order-branch>` reads the order id from `salla.config.page.id`, which the router\n // only sets on client-side navigations — seed it so a direct load works too.\n usePageConfig(page);\n const { store } = useTwilight();\n const { data: user } = useUser();\n const navigate = useNavigate();\n const location = useLocation();\n const { format: formatDate } = useDate();\n const { format } = useMoney();\n const [showReorderModal, setShowReorderModal] = useState(false);\n const [showCancelModal, setShowCancelModal] = useState(false);\n\n const { data: shipments, isLoading: isLoadingShipments } = useQuery({\n ...orderApi.queries.shipments(String(order.id)),\n enabled: order.features.shippable,\n });\n const { data: ratings, isLoading: isLoadingRatings } = useQuery({\n ...orderApi.queries.ratings(String(order.id)),\n enabled: order.actions.rateable,\n });\n\n const [reorderState, handleReorder] = useAsyncFn(async () => {\n // Pass the order id explicitly: salla.js falls back to `salla.config.get('page.id')`,\n // which this SSR theme never sets, so a bare call would hit `reorder/undefined`.\n await window.salla?.order.createCartFromOrder(Number(order.id));\n setShowReorderModal(false);\n navigate('/cart');\n }, [navigate, order.id]);\n\n const [cancelState, handleCancel] = useAsyncFn(async () => {\n await window.salla?.order.cancel(Number(order.id));\n setShowCancelModal(false);\n // Invalidate current route to refetch order data. The router's own location,\n // not `window.location`: on a host where the store is the root, the address bar\n // carries the store segment and `navigate` would add it a second time.\n navigate(location.pathname, { replace: true });\n }, [navigate, order.id, location.pathname]);\n\n return (\n <div className=\"space-y-4\">\n <HookSlot name=\"customer:orders.single.details.start\" />\n\n {/* Gift orders are tagged; the edit button gates itself (edit window / order state). */}\n <div className=\"flex items-center justify-between gap-3 flex-wrap\">\n {order.type === 'buy_as_gift' || order.source?.type === 'buy_as_gift' ? (\n <span className=\"inline-block text-primary\">\n <i className=\"sicon-gift-sharing\"></i>&nbsp;{t('pages.orders.gift_tag', 'Gift order')}\n </span>\n ) : (\n <span />\n )}\n <SallaEditOrderButton orderId={String(order.id)} />\n </div>\n\n {/* Order Details Table */}\n <table className=\"min-w-full rounded-md overflow-hidden\">\n <tbody>\n <tr className=\"bg-white overflow-hidden flex md:table-row flex-row md:flex-row flex-wrap md:flex-no-wrap py-1.5 md:py-0\">\n <td className=\"single-order-header-item w-full md:w-auto px-3 md:px-6 py-2 md:py-4 md:h-20 whitespace-nowrap text-sm\">\n <div className=\"rtl:ml-2 ltr:mr-2 font-normal text-gray-400\">\n {t('pages.orders.date')}\n </div>\n <b>{formatDate(order.created_at.date)}</b>\n </td>\n\n <td className=\"single-order-header-item flex justify-between items-center w-full md:w-auto px-3 md:px-6 py-2 md:py-4 md:h-20 whitespace-nowrap text-sm\">\n <span\n className=\"text-primary inline-flex items-center rtl:space-x-reverse space-x-1\"\n style={{ color: order.status.color }}\n >\n {order.status.icon && <i className={`mt-1 ${order.status.icon}`}></i>}\n <span>{order.status.name}</span>\n </span>\n\n <div className=\"flex items-center justify-between\">\n {order.type === 'quote' && (\n <span className=\"text-red-500 ml-4\">\n {t('pages.orders.your_order_is_under_review')}\n </span>\n )}\n\n <div className=\"flex space-x-2 rtl:space-x-reverse text-start flex-none px-2\">\n {order.urls.digital_content && (\n <a\n href={order.urls.digital_content}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"salla-button salla-button--small\"\n >\n <span className=\"salla-button-text\">\n {t('pages.orders.digital')}\n <i\n className={\n user && direction === 'rtl'\n ? 'sicon-arrow-up-left'\n : 'sicon-arrow-up-right'\n }\n ></i>\n </span>\n </a>\n )}\n {order.urls.tracking?.map((trackingUrl) => (\n <a\n key={trackingUrl}\n href={trackingUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"salla-button salla-button--small\"\n >\n <span className=\"salla-button-text\">\n {t('pages.orders.tracking')}\n <i\n className={\n user && direction === 'rtl'\n ? 'sicon-arrow-up-left'\n : 'sicon-arrow-up-right'\n }\n ></i>\n </span>\n </a>\n ))}\n </div>\n\n {order.urls.receipt && (\n <SallaButton\n fill=\"outline\"\n size=\"small\"\n onClick={() =>\n window.open(\n order.urls.receipt,\n '_blank',\n 'toolbar=yes, scrollbars=yes, resizable=yes, width=900, height=700'\n )\n }\n >\n <i className=\"sicon-printer2 v-align\"></i>\n {t('pages.orders.print')}\n </SallaButton>\n )}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n {/* Pickup branch details — renders nothing for orders that aren't pickable */}\n <SallaOrderBranch stackCards />\n\n {/* Refund Message */}\n {order.refund_message && (\n <div className=\"min-w-full rounded-md overflow-hidden\">\n <div className=\"bg-white flex items-center gap-1 rounded-md px-3 py-5 md:px-5\">\n <i className=\"sicon-refund h-6 w-6\"></i>\n <p\n className=\"font-medium text-base\"\n dangerouslySetInnerHTML={{ __html: order.refund_message }}\n />\n </div>\n </div>\n )}\n\n {/* Rating Message */}\n {order.actions.rateable && (\n <div className=\"rating-header gradient-bg center-between\">\n <div>\n <h2 className=\"font-bold mb-1\">{t('pages.order.order_rating_title')}</h2>\n <p className=\"text-sm\">{t('pages.order.order_rating_message')}</p>\n </div>\n <SallaButton\n color=\"light\"\n className=\"btn--rounded-full !text-primary\"\n onClick={() => window.salla?.event.dispatch('rating::open')}\n >\n {t('pages.rating.rate')}\n </SallaButton>\n </div>\n )}\n\n {/* Rating Update Info Banner */}\n {store.settings?.rating?.allow_update && ratings && ratings.length > 0 && (\n <div className=\"flex items-start gap-2 bg-blue-50 border border-blue-200 text-blue-500 px-2 py-3 rounded-md text-sm\">\n <i className=\"sicon-info\"></i>\n <p>\n {t('pages.order.can_edit_or_delete_your_review_within')}{' '}\n {store.settings?.rating?.update_period} {t('pages.order.days_since_added')}.\n </p>\n </div>\n )}\n\n {/* Order Shipments */}\n {order.features.shippable &&\n (isLoadingShipments ? (\n <ContentSkeleton />\n ) : (\n shipments?.map((shipment) => (\n <div key={shipment.id} className=\"shipping-orders\">\n <div className=\"flex flex-col md:flex-row justify-between md:items-center bg-white px-5 py-3 border-b border-gray-100 rounded-t-md text-sm space-y-4 md:space-y-0\">\n <div className=\"flex items-center space-x-2 rtl:space-x-reverse\">\n <Image\n src={shipment.logo}\n className=\"max-w-16 max-h-8\"\n alt={shipment.name}\n aspectRatio=\"2/1\"\n />\n <span>{shipment.name}</span>\n </div>\n <div className=\"flex space-x-5 rtl:space-x-reverse\">\n {shipment.number && (\n <span>\n {t('pages.orders.shipment_no')}:{' '}\n <span className=\"font-bold\">{shipment.number}</span>\n </span>\n )}\n {shipment.tracking_url && (\n <a\n href={shipment.tracking_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"salla-button salla-button--link\"\n >\n <span className=\"sicon-shipping rtl:ml-1 ltr:mr-1\"></span>\n {t('pages.orders.tracking_url')}\n </a>\n )}\n </div>\n </div>\n </div>\n ))\n ))}\n\n {/* Order Items */}\n {order.items.map((item) => (\n <div\n key={item.id}\n data-order-item-id={item.id}\n data-order-item-product-id={item.product?.id}\n className=\"order-item bg-white p-5 border-b border-gray-100 first:rounded-t-md last:rounded-b-md last:border-none\"\n >\n <div className=\"mb-5 last:mb-0\">\n {item.product ? (\n <div className=\"flex rtl:space-x-reverse space-x-5 mb-4\">\n <Link to={item.product.url} className=\"shrink-0\">\n <Image\n src={item.image || '/images/placeholder.png'}\n alt={item.name}\n className={`w-18 h-14 object-${item.image ? 'cover' : 'contain'} rounded-md`}\n />\n </Link>\n <div>\n <Link\n to={item.product.url}\n className=\"block leading-5 mb-1.5 md:text-base font-semibold transition-colors text-gray-500 hover:text-primary\"\n >\n {item.name}\n </Link>\n <b>\n {format(item.amounts.amount?.amount, {\n currency: item.amounts.amount?.currency,\n })}\n </b>\n </div>\n </div>\n ) : (\n <div className=\"w-full flex justify-between text-sm py-2.5\">\n <span className=\"w-40 inline-block font-normal\">{item.name}</span>\n <b>\n {format(item.amounts.amount?.amount, { currency: item.amounts.amount?.currency })}\n </b>\n </div>\n )}\n\n <div className=\"w-full flex justify-between text-sm py-2.5\">\n <span className=\"w-40 inline-block font-normal\">\n {t('pages.products.quantity', 'Quantity')}\n </span>\n <b>{item.quantity}</b>\n </div>\n <div className=\"flex justify-between text-sm py-2.5\">\n <span className=\"w-40 inline-block font-normal\">\n {t('pages.products.price', 'Price')}\n </span>\n <b>{format(item.amounts.cost?.amount, { currency: item.amounts.cost?.currency })}</b>\n </div>\n <div className=\"flex justify-between text-sm py-2.5\">\n <span className=\"w-40 inline-block font-normal\">\n {t('pages.cart.total', 'Total')}\n </span>\n <b>\n {format(item.amounts.total?.amount, { currency: item.amounts.total?.currency })}\n </b>\n </div>\n </div>\n\n {/* Availability Date */}\n {item.availability_date && (\n <div className=\"flex gap-2 text-sm py-2.5 text-blue-500\">\n <i className=\"sicon-info\"></i>\n <span>\n {t('pages.products.expected_to_be')}: <b>{item.availability_date}</b>\n </span>\n </div>\n )}\n\n {/* Booking / Reservations */}\n {item.product?.type === 'booking' &&\n item.product_reservations &&\n (item.product_reservations as unknown[]).length > 0 && (\n <>\n {item.booking_location && (\n <ul className=\"font-medium text-xs text-gray-600\">\n <li className=\"py-1 flex justify-between items-baseline\">\n <span className=\"mt-5 mb-3.5 text-sm font-bold\">\n {t('common.elements.location')}\n </span>\n <span className=\"text-unicode\">{item.booking_location}</span>\n </li>\n </ul>\n )}\n <h3 className=\"mt-5 mb-3.5 text-sm font-bold\">\n {(item.product_reservations as unknown[]).length > 1\n ? t('pages.cart.reservations')\n : t('pages.cart.item_options')}\n </h3>\n <div className=\"rounded-md p-4 border border-gray-200 mb-2\">\n <SallaOrderDetails orderDetails={JSON.stringify(item)} />\n </div>\n </>\n )}\n\n {/* Order details (sub-products / options) — for non-booking items */}\n {!(\n item.product?.type === 'booking' &&\n item.product_reservations &&\n (item.product_reservations as unknown[]).length > 0\n ) && <SallaOrderDetails orderDetails={JSON.stringify(item)} />}\n\n {/* Product options (e.g. custom fields the merchant added to the\n product) — item.options exists on the API response but nothing\n rendered it; SallaOrderDetails above doesn't cover this data. */}\n {item.options && item.options.length > 0 && (\n <div className=\"mt-3\">\n <h3 className=\"mb-2 text-sm font-bold\">\n {t('pages.cart.item_options', 'Product Options')}\n </h3>\n <div className=\"rounded-md border border-gray-200 divide-y divide-gray-200\">\n {item.options.map((option) => (\n <div\n key={option.name}\n className=\"flex items-center justify-between gap-4 px-4 py-2.5 text-sm\"\n >\n <span className=\"font-normal text-gray-500\">{option.name}</span>\n {option.is_image ? (\n <Image\n src={option.value}\n alt={option.name}\n className=\"h-7 w-7 rounded-md object-cover\"\n />\n ) : option.color ? (\n <span className=\"inline-flex items-center gap-2\">\n <span\n className=\"h-4 w-4 rounded-full border border-gray-200\"\n style={{ backgroundColor: option.color }}\n />\n <b>{option.value}</b>\n </span>\n ) : (\n <b>{option.value}</b>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {item.note && (\n <p className=\"mt-3 text-sm text-gray-500\">\n <span>{t('common.elements.note', 'Note')}: </span>\n {item.note}\n </p>\n )}\n\n {/* Attachments */}\n {item.attachments && item.attachments.length > 0 && (\n <div className=\"flow-root rounded-md px-4 border border-gray-200\">\n <dl className=\"text-sm text-dark divide-y divide-border-color\">\n {item.attachments.map((attachment) => (\n <div\n key={`${attachment.type}:${attachment.url}`}\n className=\"py-3.5 md:flex items-center justify-between\"\n >\n <dt className=\"mb-2 md:mb-0\">{t('pages.products.attachments')}</dt>\n <dd\n className={`font-medium ${attachment.type === 'image' ? 'text-gray-900' : 'text-xs'}`}\n >\n {attachment.type === 'image' && attachment.url ? (\n <div className=\"flex rtl:space-x-reverse space-x-2.5\">\n <a href={attachment.url} target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n className=\"h-7 w-7 object-cover rounded-md\"\n src={attachment.url}\n alt={item.name}\n />\n </a>\n </div>\n ) : (\n <a href={attachment.url}>{t('pages.orders.file_url')}</a>\n )}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n )}\n </div>\n ))}\n\n {/* Order Totals */}\n <SallaOrderTotalsCard amounts={JSON.stringify(order.amounts)} {...({} as any)} />\n\n {/* Reorder & Cancel Actions */}\n {(order.actions.reorderable || order.actions.cancellable || order.actions.payable) && (\n <div className=\"bg-white rounded-md p-5 divide-y divide-border-color space-y-4\">\n {(order.actions.reorderable || order.actions.payable) && (\n <div className={order.actions.payable ? 'flex-center' : 'center-between'}>\n {order.actions.payable ? (\n (order.payment?.pending_payment_ends_at ?? 0) === 0 ? (\n <span className=\"text-red-500\">{t('pages.orders.pending_payment_expired')}</span>\n ) : order.urls.checkout ? (\n <SallaButton width=\"wide\" href={order.urls.checkout}>\n <i className=\"sicon sicon-wallet rtl:ml-2 ltr:mr-2\"></i>\n <span>{t('pages.orders.finish_payment')}</span>\n </SallaButton>\n ) : (\n <span className=\"text-red-500\">{t('pages.orders.pending_payment_expired')}</span>\n )\n ) : user ? (\n <>\n <div className=\"text-sm\">\n <h3 className=\"font-bold text-lg leading-none mb-1\">\n {t('pages.orders.reorder')}\n </h3>\n <p className=\"text-gray-500\">{t('pages.orders.reorder_description')}</p>\n </div>\n <SallaButton onClick={() => setShowReorderModal(true)}>\n <i className=\"sicon sicon-rotate rtl:ml-2 ltr:mr-2\"></i>\n <span>{t('pages.orders.reorder')}</span>\n </SallaButton>\n </>\n ) : null}\n </div>\n )}\n\n {order.actions.cancellable && (\n <div className=\"center-between pt-4\">\n <div className=\"text-sm\">\n <h3 className=\"font-bold text-lg leading-none mb-1\">{t('pages.orders.cancel')}</h3>\n <p className=\"text-gray-500\">{t('pages.order.order_cancelation_desc')}</p>\n </div>\n <SallaButton shape=\"link\" color=\"danger\" onClick={() => setShowCancelModal(true)}>\n <i className=\"sicon sicon-cancel-circle rtl:ml-2 ltr:mr-2\"></i>\n <span>{t('pages.orders.cancel')}</span>\n </SallaButton>\n </div>\n )}\n </div>\n )}\n\n {/* Ratings */}\n {isLoadingRatings ? (\n <ContentSkeleton />\n ) : (\n <>\n {/* Product Ratings (type: \"rating\") */}\n {ratings?.map(\n (rating) =>\n rating.type === 'rating' && (\n <section\n key={rating.id}\n className=\"flex justify-between items-start bg-white p-5 rounded-md\"\n >\n <div>\n <p className=\"mb-2\">{rating.content}</p>\n <SallaRatingStars withLabel size=\"small\" value={rating.rating} />\n {rating.images?.map(\n (img) =>\n img && (\n <Image\n key={img}\n className=\"w-20 h-20 object-cover rounded-md mt-2 mr-2 inline-block\"\n src={img}\n alt=\"\"\n />\n )\n )}\n </div>\n </section>\n )\n )}\n\n {(() => {\n const shippingRating = ratings?.find((r) => r.type === 'shipping');\n return (\n shippingRating && (\n <section className=\"flex justify-between items-start bg-white p-5 rounded-md\">\n <div>\n <h2 className=\"text-lg font-bold mb-5\">{t('pages.rating.rate_shipping')}</h2>\n <p className=\"mb-2\">{shippingRating.content}</p>\n <SallaRatingStars withLabel value={shippingRating.rating} />\n </div>\n </section>\n )\n );\n })()}\n\n {(() => {\n const testimonialRating = ratings?.find((r) => r.type === 'testimonial');\n return (\n testimonialRating && (\n <section className=\"flex justify-between items-start bg-white p-5 rounded-md\">\n <div>\n <h2 className=\"text-lg font-bold mb-5\">{t('pages.rating.rate_the_store')}</h2>\n <p className=\"mb-2\">{testimonialRating.content}</p>\n <SallaRatingStars withLabel value={testimonialRating.rating} />\n </div>\n </section>\n )\n );\n })()}\n </>\n )}\n\n <HookSlot name=\"customer:orders.single.details.end\" />\n\n {order.actions.rateable && <SallaRatingModal />}\n\n {/* Reorder Modal */}\n {user && order.actions.reorderable && showReorderModal && (\n <SallaModal\n width=\"sm\"\n subTitle={t('pages.orders.reorder_confirmation')}\n iconStyle=\"success\"\n >\n <div slot=\"footer\" className=\"grid grid-cols-2 gap-3\">\n <SallaButton width=\"wide\" onClick={handleReorder} disabled={reorderState.loading}>\n {reorderState.loading ? (\n <span className=\"loader loader--small\"></span>\n ) : (\n t('common.elements.ok')\n )}\n </SallaButton>\n <SallaButton\n className=\"w-full\"\n fill=\"outline\"\n color=\"light\"\n onClick={() => setShowReorderModal(false)}\n disabled={reorderState.loading}\n >\n {t('common.elements.cancel')}\n </SallaButton>\n </div>\n </SallaModal>\n )}\n\n {/* Cancel Modal */}\n {order.actions.cancellable && showCancelModal && (\n <SallaModal width=\"sm\" subTitle={t('pages.orders.cancel_confirmation')} iconStyle=\"error\">\n <div slot=\"footer\" className=\"grid grid-cols-2 gap-3\">\n <SallaButton\n color=\"danger\"\n className=\"w-full cursor-pointer\"\n onClick={handleCancel}\n disabled={cancelState.loading}\n >\n {cancelState.loading ? (\n <span className=\"loader loader--small\"></span>\n ) : (\n t('common.elements.ok')\n )}\n </SallaButton>\n <SallaButton\n className=\"w-full\"\n fill=\"outline\"\n color=\"light\"\n onClick={() => setShowCancelModal(false)}\n disabled={cancelState.loading}\n >\n {t('common.elements.cancel')}\n </SallaButton>\n </div>\n </SallaModal>\n )}\n </div>\n );\n}\n"]}