@faststore/core 3.88.7 → 3.89.1

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 (160) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +55 -55
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/react-loadable-manifest.json +27 -27
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/1607.js +1 -0
  14. package/.next/server/chunks/2570.js +1 -1
  15. package/.next/server/chunks/6886.js +1 -1
  16. package/.next/server/chunks/9563.js +2 -2
  17. package/.next/server/chunks/9630.js +1 -1
  18. package/.next/server/functions-config-manifest.json +1 -1
  19. package/.next/server/middleware-build-manifest.js +1 -1
  20. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  21. package/.next/server/pages/404.js.nft.json +1 -1
  22. package/.next/server/pages/500.js.nft.json +1 -1
  23. package/.next/server/pages/[...slug].js.nft.json +1 -1
  24. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  25. package/.next/server/pages/_app.js.nft.json +1 -1
  26. package/.next/server/pages/_document.js.nft.json +1 -1
  27. package/.next/server/pages/_error.js.nft.json +1 -1
  28. package/.next/server/pages/api/graphql.js +1 -1
  29. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  30. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  31. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  32. package/.next/server/pages/api/preview.js.nft.json +1 -1
  33. package/.next/server/pages/checkout.js.nft.json +1 -1
  34. package/.next/server/pages/en-US/404.html +1 -1
  35. package/.next/server/pages/en-US/500.html +1 -1
  36. package/.next/server/pages/en-US/checkout.html +1 -1
  37. package/.next/server/pages/en-US/login.html +1 -1
  38. package/.next/server/pages/en-US/s.html +1 -1
  39. package/.next/server/pages/en-US.html +1 -1
  40. package/.next/server/pages/index.js.nft.json +1 -1
  41. package/.next/server/pages/login.js.nft.json +1 -1
  42. package/.next/server/pages/pvt/account/403.js +1 -1
  43. package/.next/server/pages/pvt/account/403.js.nft.json +1 -1
  44. package/.next/server/pages/pvt/account/404.js +1 -1
  45. package/.next/server/pages/pvt/account/404.js.nft.json +1 -1
  46. package/.next/server/pages/pvt/account/[...unknown].js.nft.json +1 -1
  47. package/.next/server/pages/pvt/account/orders/[id].js +1 -1
  48. package/.next/server/pages/pvt/account/orders/[id].js.nft.json +1 -1
  49. package/.next/server/pages/pvt/account/orders.js +1 -1
  50. package/.next/server/pages/pvt/account/orders.js.nft.json +1 -1
  51. package/.next/server/pages/pvt/account/profile.js +1 -1
  52. package/.next/server/pages/pvt/account/profile.js.nft.json +1 -1
  53. package/.next/server/pages/pvt/account/security.js +1 -1
  54. package/.next/server/pages/pvt/account/security.js.nft.json +1 -1
  55. package/.next/server/pages/pvt/account/user-details.js +1 -1
  56. package/.next/server/pages/pvt/account/user-details.js.nft.json +1 -1
  57. package/.next/server/pages/pvt/account.js.nft.json +1 -1
  58. package/.next/server/pages/s.js.nft.json +1 -1
  59. package/.next/server/pages-manifest.json +1 -1
  60. package/.next/static/43JSGz9XxT2_nidd-70dX/_buildManifest.js +1 -0
  61. package/.next/static/chunks/pages/pvt/account/403-f2858569fde3873b.js +1 -0
  62. package/.next/static/chunks/pages/pvt/account/404-c68124bed7cb7c48.js +1 -0
  63. package/.next/static/chunks/pages/pvt/account/orders/[id]-459f6b9a86780410.js +1 -0
  64. package/.next/static/chunks/pages/pvt/account/orders-f376bbaf561ae429.js +1 -0
  65. package/.next/static/chunks/pages/pvt/account/profile-b6cdbf02d4682544.js +1 -0
  66. package/.next/static/chunks/pages/pvt/account/security-e6289a40e745d3c4.js +1 -0
  67. package/.next/static/chunks/pages/pvt/account/user-details-fba1822e52e7de26.js +1 -0
  68. package/.next/static/chunks/{webpack-747ebf1e0c896030.js → webpack-f16e329d9f50b79b.js} +1 -1
  69. package/.next/static/css/{5273202f7c5e5ec1.css → 02eaf202d3d11fd1.css} +1 -1
  70. package/.next/static/css/0f8f72ecdeb79402.css +1 -0
  71. package/.next/static/css/2c0f8724c01f2ab8.css +1 -0
  72. package/.next/static/css/32a4ddbf3999c2a5.css +1 -0
  73. package/.next/static/css/331f08e9d306e70b.css +1 -0
  74. package/.next/static/css/{865e30903caadb79.css → 4f0597b0bf0ef2e1.css} +1 -1
  75. package/.next/static/css/5177628438c28f74.css +1 -0
  76. package/.next/static/css/6bb0abee27fe0019.css +1 -0
  77. package/.next/static/css/84ebcfe7a63d709d.css +1 -0
  78. package/.next/static/css/8df9f9a136312210.css +1 -0
  79. package/.next/static/css/a8bcd71b15adb1ec.css +1 -0
  80. package/.next/static/css/a9328b56f3942b82.css +1 -0
  81. package/.next/static/css/{b7bba8fce075688b.css → b65e005fb943434c.css} +1 -1
  82. package/.next/static/css/{831a1f72fe4b2d80.css → bd121d85d6ceed46.css} +1 -1
  83. package/.next/static/css/{dbbb10bf2f162a58.css → be59e989720e6e50.css} +1 -1
  84. package/.next/static/css/{b1806cbafd0c1f81.css → c29fee5b9f9d48d9.css} +1 -1
  85. package/.next/static/css/{936c65069d608087.css → c34f6ea9953e2f63.css} +1 -1
  86. package/.next/static/css/{e46393a76c5d93a9.css → c53b17b6fa994508.css} +1 -1
  87. package/.next/static/css/{5347dbc8b71de47d.css → ceb410a7062740d1.css} +1 -1
  88. package/.next/static/css/da0f1f3329c5657a.css +1 -0
  89. package/.next/static/css/da5bfb1f39c54578.css +1 -0
  90. package/.next/static/css/f60366555f563deb.css +1 -0
  91. package/.next/static/css/f81198b7fe9f5f6f.css +1 -0
  92. package/.next/trace +138 -137
  93. package/.turbo/turbo-build.log +26 -26
  94. package/.turbo/turbo-test.log +6 -5
  95. package/@generated/gql.ts +12 -12
  96. package/@generated/graphql.ts +13 -14
  97. package/@generated/persisted-documents.json +6 -6
  98. package/@generated/schema.graphql +0 -2
  99. package/CHANGELOG.md +12 -0
  100. package/package.json +4 -4
  101. package/src/components/account/MyAccountLayout/MyAccountLayout.tsx +3 -3
  102. package/src/components/account/MyAccountLayout/styles.scss +10 -0
  103. package/src/components/account/MyAccountMenu/styles.scss +2 -1
  104. package/src/components/account/MyAccountUserDetails/MyAccountUserDetails.tsx +18 -39
  105. package/src/components/account/MyAccountUserDetails/styles.module.scss +1 -93
  106. package/src/components/account/components/MyAccountHeader/MyAccountHeader.tsx +13 -0
  107. package/src/components/account/components/MyAccountHeader/index.ts +1 -0
  108. package/src/components/account/components/MyAccountHeader/styles.scss +13 -0
  109. package/src/components/account/components/MyAccountStatusBadge/styles.scss +4 -4
  110. package/src/components/account/components/MyAccountTable/MyAccountTable.tsx +23 -0
  111. package/src/components/account/components/MyAccountTable/index.ts +1 -0
  112. package/src/components/account/components/MyAccountTable/styles.scss +67 -0
  113. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrders.tsx +131 -134
  114. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/MyAccountListOrdersTable.tsx +9 -24
  115. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/styles.scss +37 -42
  116. package/src/components/account/orders/MyAccountListOrders/styles.module.scss +4 -25
  117. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderActions/MyAccountOrderActions.tsx +1 -6
  118. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx +1 -1
  119. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/MyAccountStatusCard.tsx +9 -11
  120. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/styles.scss +27 -11
  121. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/useConnectorPositioning.ts +0 -8
  122. package/src/components/account/orders/MyAccountOrderDetails/section.module.scss +2 -3
  123. package/src/components/account/profile/profile.module.scss +1 -85
  124. package/src/components/account/profile/profile.tsx +24 -31
  125. package/src/components/account/security/SecurityDrawer.tsx +86 -88
  126. package/src/components/account/security/SecuritySection.tsx +23 -20
  127. package/src/components/account/security/styles.module.scss +26 -150
  128. package/src/experimental/myAccountSeverSideProps.ts +6 -4
  129. package/src/pages/pvt/account/403.tsx +5 -3
  130. package/src/pages/pvt/account/404.tsx +5 -3
  131. package/src/pages/pvt/account/orders/[id].tsx +4 -2
  132. package/src/pages/pvt/account/orders/index.tsx +4 -2
  133. package/src/pages/pvt/account/profile.tsx +2 -6
  134. package/src/pages/pvt/account/security.tsx +4 -5
  135. package/src/pages/pvt/account/user-details.tsx +4 -2
  136. package/src/utils/userOrderStatus.ts +5 -5
  137. package/test/server/index.test.ts +0 -1
  138. package/.next/static/chunks/pages/pvt/account/403-e4315ace8609a7ff.js +0 -1
  139. package/.next/static/chunks/pages/pvt/account/404-1e450ae9476bbcaa.js +0 -1
  140. package/.next/static/chunks/pages/pvt/account/orders/[id]-a3e46af1be9816a4.js +0 -1
  141. package/.next/static/chunks/pages/pvt/account/orders-db7a364869130660.js +0 -1
  142. package/.next/static/chunks/pages/pvt/account/profile-e8a7ad7a7d7c60fb.js +0 -1
  143. package/.next/static/chunks/pages/pvt/account/security-cad4e4260be8b0cd.js +0 -1
  144. package/.next/static/chunks/pages/pvt/account/user-details-401f6f6e4ce4b9ce.js +0 -1
  145. package/.next/static/css/04fb2d4b8924b0c6.css +0 -1
  146. package/.next/static/css/083dc2a5b0de2439.css +0 -1
  147. package/.next/static/css/175fa823349dc534.css +0 -1
  148. package/.next/static/css/297be4be3be36ff0.css +0 -1
  149. package/.next/static/css/2a4b7072e47636f1.css +0 -1
  150. package/.next/static/css/45fac71f6411cceb.css +0 -1
  151. package/.next/static/css/6cd282d958f613bc.css +0 -1
  152. package/.next/static/css/b52f8f6500d3439e.css +0 -1
  153. package/.next/static/css/b7fc24e8f1eb011f.css +0 -1
  154. package/.next/static/css/d26cb0a54378b3d9.css +0 -1
  155. package/.next/static/css/ec7fdad03808422d.css +0 -1
  156. package/.next/static/css/f93cf36b16950027.css +0 -1
  157. package/.next/static/css/fd0a7a134ddc3d90.css +0 -1
  158. package/.next/static/css/fe0bcc13a2b68605.css +0 -1
  159. package/.next/static/pe6z3Z3bQ07PowbWL75Ts/_buildManifest.js +0 -1
  160. /package/.next/static/{pe6z3Z3bQ07PowbWL75Ts → 43JSGz9XxT2_nidd-70dX}/_ssgManifest.js +0 -0
@@ -17,11 +17,11 @@
17
17
  --fs-list-orders-table-product-info-margin-top-first : var(--fs-spacing-0);
18
18
  --fs-list-orders-table-product-info-margin-top : var(--fs-spacing-1);
19
19
  --fs-list-orders-table-product-info-line-height : var(--fs-text-size-1);
20
- --fs-list-orders-table-cell-padding : var(--fs-spacing-4) var(--fs-spacing-2) var(--fs-spacing-3);
20
+ --fs-list-orders-table-cell-padding : var(--fs-spacing-4) var(--fs-spacing-2);
21
21
  --fs-list-orders-table-cell-padding-mobile : var(--fs-spacing-3) var(--fs-spacing-1);
22
22
  --fs-list-orders-table-cell-color : var(--fs-color-neutral-6);
23
- --fs-list-orders-table-row-border-bottom : var(--fs-border-width) solid var(--fs-color-neutral-3);
24
- --fs-list-orders-table-row-hover-bg : color-mix(in srgb, var(--fs-color-accent-0) 30%, transparent);
23
+ --fs-list-orders-table-row-border-bottom : var(--fs-border-width) solid var(--fs-border-color-light);
24
+ --fs-list-orders-table-row-hover-bg : var(--fs-color-neutral-1);
25
25
 
26
26
  // Specific sizes
27
27
  --fs-list-orders-table-product-info-value-size : 150px;
@@ -34,38 +34,50 @@
34
34
  width: 100%;
35
35
  margin: 0 auto;
36
36
  font-size: var(--fs-list-orders-table-font-size);
37
+ overflow-wrap: break-word;
37
38
  vertical-align: middle;
39
+ table-layout: fixed;
38
40
  border-collapse: collapse;
39
41
  border: none;
40
42
 
41
- [data-fs-list-orders-table-cell]:first-child {
42
- width: var(--fs-list-orders-table-first-child-width);
43
+ [data-fs-list-orders-table-product-info-main] {
44
+ display: flex;
45
+ flex-direction: column;
46
+ justify-content: space-between;
47
+ width: 100%;
48
+ height: 100%;
49
+ }
43
50
 
44
- @include media("<notebook") {
45
- display: flex;
46
- align-items: center;
47
- width: var(--fs-list-orders-table-first-child-width-mobile);
51
+ [data-fs-list-orders-table-cell] {
52
+ box-sizing: border-box;
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--fs-list-orders-table-gap);
56
+ align-items: flex-end;
57
+ justify-content: flex-end;
58
+ width: 50%;
59
+ padding: var(--fs-list-orders-table-cell-padding);
60
+ text-align: left;
61
+ vertical-align: top;
62
+
63
+ &:not(:first-child):not(:last-child) {
64
+ color: var(--fs-list-orders-table-cell-color);
48
65
  }
49
- }
50
66
 
51
- [data-fs-list-orders-table-cell]:last-child {
52
- width: var(--fs-list-orders-table-last-child-width);
53
- text-align: end;
67
+ &:last-child {
68
+ text-align: end;
69
+ }
54
70
 
55
- @include media("<notebook") {
56
- display: flex;
57
- flex-direction: column;
58
- gap: var(--fs-list-orders-table-gap);
59
- align-items: flex-end;
60
- justify-content: flex-end;
61
- width: auto;
71
+ [data-fs-my-account-badge] { margin-right: calc(var(--fs-spacing-0) * -1); }
72
+
73
+ @include media(">=notebook") {
74
+ display: table-cell;
62
75
  }
63
76
  }
64
77
 
65
78
  [data-fs-list-orders-table-product-info-order-id], [data-fs-list-orders-table-product-info-order-total], [data-fs-list-orders-table-product-info-value] {
66
79
  overflow: hidden;
67
80
  text-overflow: ellipsis;
68
- white-space: nowrap;
69
81
  }
70
82
 
71
83
  [data-fs-list-orders-table-product-info]:first-child, [data-fs-list-orders-table-product-info-value] {
@@ -74,9 +86,6 @@
74
86
 
75
87
  [data-fs-list-orders-table-product-info-value] {
76
88
  max-width: var(--fs-list-orders-table-product-info-value-size);
77
- overflow: hidden;
78
- text-overflow: ellipsis;
79
- white-space: nowrap;
80
89
  }
81
90
 
82
91
  [data-fs-list-orders-table-product-info-label] {
@@ -98,17 +107,6 @@
98
107
  line-height: var(--fs-list-orders-table-product-info-line-height);
99
108
  }
100
109
 
101
- [data-fs-list-orders-table-cell] {
102
- padding: var(--fs-list-orders-table-cell-padding);
103
- text-align: left;
104
- vertical-align: top;
105
- border: none;
106
-
107
- @include media("<notebook") {
108
- padding: var(--fs-list-orders-table-cell-padding-mobile);
109
- }
110
- }
111
-
112
110
  [data-fs-list-orders-table-product-info-order], [data-fs-list-orders-table-product-info-item] {
113
111
  max-width: var(--fs-list-orders-table-product-info-order-size);
114
112
  margin-top: var(--fs-list-orders-table-product-info-margin-top-first);
@@ -117,11 +115,6 @@
117
115
  white-space: nowrap;
118
116
  }
119
117
 
120
- [data-fs-list-orders-table-cell]:not(:first-child):not(:last-child) {
121
- padding-top: calc(var(--fs-spacing-4) + var(--fs-spacing-0));
122
- color: var(--fs-list-orders-table-cell-color);
123
- }
124
-
125
118
  [data-fs-list-orders-table-row] {
126
119
  cursor: pointer;
127
120
  border-bottom: var(--fs-list-orders-table-row-border-bottom);
@@ -171,7 +164,7 @@
171
164
 
172
165
  [data-fs-list-orders-table-pagination] {
173
166
  --fs-list-orders-table-pagination-text-size : .8rem;
174
- --fs-list-orders-table-pagination-box-shadow : 0 -4px 8px rgb(0 0 0 / 5%);
167
+ --fs-list-orders-table-pagination-box-shadow : 0 -4px var(--fs-spacing-1) rgb(0 0 0 / 5%);
175
168
  --fs-list-orders-table-pagination-bkg-color : var(--fs-body-bkg);
176
169
  --fs-list-orders-table-pagination-padding : var(--fs-spacing-0) var(--fs-spacing-2) var(--fs-spacing-0) var(--fs-spacing-0);
177
170
 
@@ -179,8 +172,10 @@
179
172
  position: sticky;
180
173
  bottom: 0;
181
174
  left: 0;
182
- width: 100%;
175
+ width: 100vw;
183
176
  padding: var(--fs-list-orders-table-pagination-padding);
177
+ margin-right: calc(var(--fs-spacing-4) * -1);
178
+ margin-left: calc(var(--fs-spacing-4) * -1);
184
179
  background-color: var(--fs-list-orders-table-pagination-bkg-color);
185
180
  box-shadow: var(--fs-list-orders-table-pagination-box-shadow);
186
181
  }
@@ -2,6 +2,8 @@
2
2
  @import "./MyAccountListOrdersTable/styles.scss";
3
3
  @import "./MyAccountSelectedTags/styles.scss";
4
4
  @import "../../components/MyAccountStatusBadge/styles.scss";
5
+ @import "@faststore/ui/src/components/atoms/Button/styles.scss";
6
+ @import "@faststore/ui/src/components/molecules/SearchInputField/styles.scss";
5
7
  @import "@faststore/ui/src/components/organisms/EmptyState/styles.scss";
6
8
 
7
9
  // --------------------------------------------------------
@@ -12,11 +14,6 @@
12
14
  --fs-list-orders-padding : var(--fs-spacing-5);
13
15
  --fs-page-height : 100%;
14
16
 
15
- // Title
16
- --fs-list-orders-title-margin-bottom : var(--fs-spacing-5);
17
- --fs-list-orders-title-font-size : var(--fs-spacing-4);
18
- --fs-list-orders-title-font-weight : var(--fs-text-weight-semibold);
19
-
20
17
  // Search Filters
21
18
  --fs-list-orders-filter-width : 55%;
22
19
  --fs-list-orders-filter-margin-bottom : var(--fs-spacing-3);
@@ -33,24 +30,10 @@
33
30
 
34
31
  height: var(--fs-page-height);
35
32
 
36
- [data-fs-list-orders] {
37
- padding: var(--fs-list-orders-padding);
38
-
39
- @include media("<notebook") {
40
- padding-bottom: 0;
41
- }
42
- }
43
-
44
- [data-fs-list-orders-title] {
45
- margin-bottom: var(--fs-list-orders-title-margin-bottom);
46
- font-size: var(--fs-list-orders-title-font-size);
47
- font-weight: var(--fs-list-orders-title-font-weight);
48
- }
49
-
50
- [data-fs-list-orders-header] {
33
+ [data-fs-list-orders-controls] {
51
34
  display: flex;
52
- align-items: baseline;
53
35
  justify-content: space-between;
36
+ margin-bottom: var(--fs-list-orders-filter-margin-bottom);
54
37
  }
55
38
 
56
39
  [data-fs-list-orders-search-filters] {
@@ -58,7 +41,6 @@
58
41
  align-items: center;
59
42
  justify-content: space-between;
60
43
  width: var(--fs-list-orders-filter-width);
61
- margin-bottom: var(--fs-list-orders-filter-margin-bottom);
62
44
 
63
45
  @include media("<notebook") {
64
46
  flex-direction: column;
@@ -91,9 +73,6 @@
91
73
  }
92
74
 
93
75
  [data-fs-list-orders-search-filters-button] {
94
- --fs-button-border-radius : var(--fs-list-orders-filter-button-border-radius);
95
- --fs-button-height : var(--fs-list-orders-filter-button-height);
96
-
97
76
  margin-left: var(--fs-list-orders-filter-button-margin-left);
98
77
  }
99
78
  }
@@ -64,12 +64,7 @@ export default function MyAccountOrderActions({
64
64
  <div data-fs-order-actions>
65
65
  <Dropdown>
66
66
  <DropdownButton aria-label="View More" data-fs-dropdown-button>
67
- <UIIcon
68
- name="DotsThree"
69
- width={20}
70
- height={20}
71
- data-fs-dropdown-icon
72
- />
67
+ <UIIcon name="DotsThree" data-fs-dropdown-icon />
73
68
  </DropdownButton>
74
69
  <DropdownMenu align="right">
75
70
  {allowCancellation && (
@@ -36,7 +36,7 @@ export default function MyAccountOrderDetails({
36
36
  data-fs-order-details-header-back-button
37
37
  size="small"
38
38
  aria-label="Go back"
39
- icon={<UIIcon height={20} width={20} name="ArrowLeft" />}
39
+ icon={<UIIcon name="ArrowLeft" />}
40
40
  type="button"
41
41
  />
42
42
  </a>
@@ -35,8 +35,8 @@ const STEP_LABELS: Record<StepKey, Record<StepStatus, string>> = {
35
35
  },
36
36
  approval: {
37
37
  completed: 'Approved', // Custom
38
- loading: 'Approval Pending', // Use from orderStatusMap
39
- 'not-started': 'Approval Pending',
38
+ loading: 'Pending approval', // Use from orderStatusMap
39
+ 'not-started': 'Pending approval',
40
40
  failed: 'Denied', // Custom
41
41
  },
42
42
  payment: {
@@ -86,7 +86,7 @@ const VISUAL_STEPS = [
86
86
  // Map labels from userOrderStatus.ts to step keys
87
87
  const LABEL_TO_STEP_MAPPING: Record<string, StepKey> = {
88
88
  'Order Placed': 'order',
89
- 'Approval Pending': 'approval',
89
+ 'Pending approval': 'approval',
90
90
  'Payment Pending': 'payment',
91
91
  'Payment Approved': 'processing',
92
92
  'Payment Denied': 'payment',
@@ -291,14 +291,12 @@ function MyAccountStatusCard({
291
291
  </div>
292
292
  )}
293
293
  </div>
294
- {index < steps.length - 1 && (
295
- <div
296
- data-fs-shipping-connector
297
- data-fs-shipping-connector-status={
298
- step.status === 'completed' ? 'completed' : 'not-started'
299
- }
300
- />
301
- )}
294
+ <div
295
+ data-fs-shipping-connector
296
+ data-fs-shipping-connector-status={
297
+ step.status === 'completed' ? 'completed' : 'not-started'
298
+ }
299
+ />
302
300
  </div>
303
301
  ))}
304
302
  </div>
@@ -6,7 +6,7 @@
6
6
  // Default properties
7
7
  --fs-order-status-card-gap : var(--fs-spacing-1);
8
8
  --fs-order-status-card-padding : var(--fs-spacing-3) var(--fs-spacing-2);
9
- --fs-order-status-card-bkg-color : var(--fs-color-neutral-1);
9
+ --fs-order-status-card-bkg-color : rgb(0 0 0 / 3%);
10
10
  --fs-order-status-card-border-radius : var(--fs-border-radius-medium);
11
11
 
12
12
  // Step Icon
@@ -17,8 +17,8 @@
17
17
  --fs-order-status-step-icon-margin : var(--fs-spacing-0);
18
18
 
19
19
  // Step Icon States
20
- --fs-order-status-step-icon-completed-color : #08a822;
21
- --fs-order-status-step-icon-failed-color : #5c5c5c;
20
+ --fs-order-status-step-icon-completed-color : var(--fs-color-success-2);
21
+ --fs-order-status-step-icon-failed-color : var(--fs-color-neutral-5);
22
22
  --fs-order-status-step-icon-canceled-color : var(--fs-color-neutral-1);
23
23
  --fs-order-status-step-icon-loading-color : var(--fs-color-neutral-4);
24
24
  --fs-order-status-step-icon-text-color : var(--fs-color-neutral-0);
@@ -77,6 +77,10 @@
77
77
  width: 100%;
78
78
  padding: var(--fs-order-status-card-padding);
79
79
 
80
+ &:first-child [data-fs-shipping-connector] {
81
+ display: none;
82
+ }
83
+
80
84
  &[data-fs-shipping-status="loading"] {
81
85
  z-index: -1;
82
86
  background-color: var(--fs-order-status-card-bkg-color);
@@ -104,6 +108,7 @@
104
108
  width: var(--fs-order-status-step-icon-size);
105
109
  height: var(--fs-order-status-step-icon-size);
106
110
  margin: var(--fs-order-status-step-icon-margin);
111
+ border-radius: var(--fs-order-status-step-icon-border-radius);
107
112
 
108
113
  [data-fs-icon] {
109
114
  color: var(--fs-color-neutral-0);
@@ -111,7 +116,6 @@
111
116
 
112
117
  &[data-fs-shipping-step-completed] {
113
118
  background-color: var(--fs-order-status-step-icon-completed-color);
114
- border-radius: var(--fs-order-status-step-icon-border-radius);
115
119
 
116
120
  [class*="icon"] {
117
121
  color: var(--fs-order-status-step-icon-text-color);
@@ -120,7 +124,6 @@
120
124
 
121
125
  &[data-fs-shipping-step-failed] {
122
126
  background-color: var(--fs-order-status-step-icon-failed-color);
123
- border-radius: var(--fs-order-status-step-icon-border-radius);
124
127
 
125
128
  [class*="icon"] {
126
129
  color: var(--fs-order-status-step-icon-text-color);
@@ -133,17 +136,11 @@
133
136
 
134
137
  &[data-fs-shipping-step-loading] {
135
138
  background-color: var(--fs-order-status-step-icon-loading-color);
136
- border-radius: var(--fs-order-status-step-icon-border-radius);
137
139
 
138
140
  [class*="icon"] {
139
141
  color: var(--fs-order-status-step-icon-text-color);
140
142
  }
141
143
  }
142
-
143
- &:not([data-fs-shipping-step-completed]):not([data-fs-shipping-step-loading]) {
144
- border: var(--fs-order-status-step-icon-border);
145
- border-radius: var(--fs-order-status-step-icon-border-radius);
146
- }
147
144
  }
148
145
 
149
146
  [data-fs-shipping-step-content] {
@@ -193,8 +190,19 @@
193
190
 
194
191
  [data-fs-shipping-connector] {
195
192
  position: absolute;
193
+ bottom: calc(50% + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-connector-spacing));
194
+ left: calc(var(--fs-spacing-2) + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-step-icon-margin));
196
195
  background-color: var(--fs-order-status-connector-color);
197
196
 
197
+ @include media(">=notebook") {
198
+ top: calc(1rem + var(--fs-order-status-step-icon-margin) + var(--fs-order-status-step-icon-half-size));
199
+ right: calc(50% + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-card-gap));
200
+ bottom: auto;
201
+ left: auto;
202
+ width: 100%;
203
+ height: var(--fs-border-width);
204
+ }
205
+
198
206
  &[data-fs-shipping-connector-status="completed"] {
199
207
  background-color: var(--fs-order-status-connector-completed-color);
200
208
  }
@@ -213,7 +221,15 @@
213
221
  }
214
222
  }
215
223
 
224
+ [data-fs-shipping-status="completed"] + [data-fs-shipping-step]:not([data-fs-shipping-status="completed"]) {
225
+ [data-fs-shipping-connector] { background-color: var(--fs-color-neutral-4); }
226
+ }
227
+
216
228
  [data-fs-shipping-status="not-started"] {
229
+ [data-fs-shipping-step-icon]:not([data-fs-shipping-step-canceled]) {
230
+ border: var(--fs-order-status-step-icon-border);
231
+ }
232
+
217
233
  [data-fs-shipping-step-label] {
218
234
  color: var(--fs-order-status-step-not-started-color);
219
235
  }
@@ -45,19 +45,11 @@ export function useConnectorPositioning(
45
45
  if (isDesktop) {
46
46
  const containerGap = calculateContainerGap()
47
47
  connectors.forEach((connector) => {
48
- connector.style.top =
49
- 'calc(1rem + var(--fs-order-status-step-icon-margin) + var(--fs-order-status-step-icon-half-size))'
50
- connector.style.left =
51
- 'calc(50% + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-card-gap))'
52
48
  connector.style.width = `calc(((50% - var(--fs-order-status-step-icon-half-size) - var(--fs-order-status-card-gap)) * 2) + ${containerGap}px)`
53
49
  connector.style.height = 'var(--fs-border-width)'
54
50
  })
55
51
  } else {
56
52
  connectors.forEach((connector) => {
57
- connector.style.top =
58
- 'calc(50% + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-connector-spacing))'
59
- connector.style.left =
60
- 'calc(var(--fs-spacing-2) + var(--fs-order-status-step-icon-half-size) + var(--fs-order-status-step-icon-margin))'
61
53
  connector.style.width = 'var(--fs-border-width)'
62
54
  connector.style.height =
63
55
  'calc((50% - var(--fs-order-status-step-icon-half-size)) + var(--fs-order-status-card-gap) + (50% - var(--fs-order-status-step-icon-half-size)) - (var(--fs-order-status-connector-spacing) * 2))'
@@ -40,8 +40,6 @@
40
40
  // Structural Styles
41
41
  // --------------------------------------------------------
42
42
 
43
- padding: var(--fs-order-details-padding);
44
-
45
43
  @include media (">=notebook") {
46
44
  --fs-order-details-padding : 0;
47
45
  }
@@ -73,6 +71,7 @@
73
71
  [data-fs-order-details-header-back-button] {
74
72
  flex-shrink: 0;
75
73
  margin-top: calc(var(--fs-spacing-2) * -1); // Align the back button with the title
74
+ margin-left: calc(var(--fs-spacing-2) * -1); // Align the back button with the content
76
75
 
77
76
  @include media(">=notebook") {
78
77
  margin-top: calc(var(--fs-spacing-1) * -1); // Align the back button with the title
@@ -96,7 +95,7 @@
96
95
  font-weight: var(--fs-order-details-header-weight);
97
96
  line-height: var(--fs-order-details-header-line-height);
98
97
 
99
- @include truncate-title(1);
98
+ @include truncate-title(2);
100
99
  }
101
100
  }
102
101
  }
@@ -1,89 +1,5 @@
1
1
  @layer components {
2
2
  .section {
3
- [data-fs-account-profile-header] {
4
- padding-block: var(--fs-spacing-6);
5
- padding-inline: var(--fs-spacing-11);
6
- }
7
-
8
- [data-fs-account-profile-body] {
9
- padding-inline: var(--fs-spacing-11);
10
- }
11
-
12
- [data-fs-account-profile-title] {
13
- font-family: var(--fs-text-face-title);
14
- font-size: var(--fs-text-size-4);
15
- font-weight: var(--fs-text-weight-semibold);
16
- }
17
-
18
- [data-fs-account-profile-table] {
19
- display: grid;
20
- grid-template-columns: minmax(11.25rem, auto) 1fr;
21
- width: 100%;
22
- border-spacing: 0;
23
- border-collapse: collapse;
24
- }
25
-
26
- [data-fs-account-profile-table-body] {
27
- display: contents;
28
- gap: var(--fs-spacing-1);
29
- }
30
-
31
- [data-fs-account-profile-table-row] {
32
- display: contents;
33
-
34
- &:last-child {
35
- > [data-fs-account-profile-table-heading] {
36
- border-bottom: none;
37
- }
38
-
39
- > [data-fs-account-profile-table-data] {
40
- border-bottom: none;
41
- }
42
- }
43
- }
44
-
45
- [data-fs-account-profile-table-heading] {
46
- padding-block: var(--fs-spacing-4);
47
- font-family: var(--fs-text-face-body);
48
- font-size: var(--fs-text-size-2);
49
- font-weight: var(--fs-text-weight-regular);
50
- color: var(--fs-color-text-light);
51
- text-align: left;
52
- border-bottom: var(--fs-border-width) solid var(--fs-border-color-light);
53
- }
54
-
55
- [data-fs-account-profile-table-data] {
56
- padding-block: var(--fs-spacing-4);
57
- padding-inline: var(--fs-spacing-1);
58
- font-family: var(--fs-text-face-body);
59
- font-size: var(--fs-text-size-2);
60
- font-weight: var(--fs-text-weight-regular);
61
- color: var(--fs-color-text);
62
- border-bottom: var(--fs-border-width) solid var(--fs-border-color-light);
63
- }
64
-
65
- @include media("<notebook") {
66
- [data-fs-account-profile-header] {
67
- padding-inline: var(--fs-spacing-4);
68
- }
69
-
70
- [data-fs-account-profile-body] {
71
- padding-inline: var(--fs-spacing-4);
72
- }
73
-
74
- [data-fs-account-profile-table] {
75
- grid-template-columns: 1fr;
76
- }
77
-
78
- [data-fs-account-profile-table-heading] {
79
- padding-block: var(--fs-spacing-4) 0;
80
- border-bottom: none;
81
- }
82
-
83
- [data-fs-account-profile-table-data] {
84
- padding-block: var(--fs-spacing-1) var(--fs-spacing-4);
85
- padding-inline: 0;
86
- }
87
- }
3
+ @import "../components/MyAccountTable/styles.scss";
88
4
  }
89
5
  }
@@ -1,3 +1,6 @@
1
+ import { Link } from '@faststore/ui'
2
+ import AccountTable from '../components/MyAccountTable'
3
+ import AccountHeader from '../components/MyAccountHeader'
1
4
  import { strings } from './i18n'
2
5
  import styles from './profile.module.scss'
3
6
  import { useDateFormatter } from './use-date-formatter'
@@ -25,38 +28,28 @@ export function ProfileSection({
25
28
 
26
29
  return (
27
30
  <div data-fs-account-profile-section className={styles.section}>
28
- <header data-fs-account-profile-header>
29
- <h1 data-fs-account-profile-title>{strings.profile}</h1>
30
- </header>
31
+ <AccountHeader pageTitle={strings.profile} />
31
32
  <section data-fs-account-profile-body>
32
- <table data-fs-account-profile-table>
33
- <tbody data-fs-account-profile-table-body>
34
- <tr data-fs-account-profile-table-row>
35
- <th data-fs-account-profile-table-heading>{strings.name}</th>
36
- <td data-fs-account-profile-table-data>{profile?.name}</td>
37
- </tr>
38
- <tr data-fs-account-profile-table-row>
39
- <th data-fs-account-profile-table-heading>{strings.email}</th>
40
- <td data-fs-account-profile-table-data>
41
- <a href={`mailto:${profile?.email}`}>{profile?.email}</a>
42
- </td>
43
- </tr>
44
- <tr data-fs-account-profile-table-row>
45
- <th data-fs-account-profile-table-heading>{strings.id}</th>
46
- <td data-fs-account-profile-table-data>{profile?.id}</td>
47
- </tr>
48
- {profile.createdDate && (
49
- <tr data-fs-account-profile-table-row>
50
- <th data-fs-account-profile-table-heading>
51
- {strings.createdDate}
52
- </th>
53
- <td data-fs-account-profile-table-data>
54
- {formatStringDate(profile.createdDate)}
55
- </td>
56
- </tr>
57
- )}
58
- </tbody>
59
- </table>
33
+ <AccountTable
34
+ rows={[
35
+ { heading: strings.name, data: profile?.name },
36
+ {
37
+ heading: strings.email,
38
+ data: (
39
+ <Link href={`mailto:${profile?.email}`}>{profile?.email}</Link>
40
+ ),
41
+ },
42
+ { heading: strings.id, data: profile?.id },
43
+ ...(profile?.createdDate
44
+ ? [
45
+ {
46
+ heading: strings.createdDate,
47
+ data: formatStringDate(profile.createdDate),
48
+ },
49
+ ]
50
+ : []),
51
+ ]}
52
+ />
60
53
  </section>
61
54
  </div>
62
55
  )