@faststore/core 3.88.7 → 3.89.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 (142) 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/functions-config-manifest.json +1 -1
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  19. package/.next/server/pages/404.js.nft.json +1 -1
  20. package/.next/server/pages/500.js.nft.json +1 -1
  21. package/.next/server/pages/[...slug].js.nft.json +1 -1
  22. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  23. package/.next/server/pages/_app.js.nft.json +1 -1
  24. package/.next/server/pages/_document.js.nft.json +1 -1
  25. package/.next/server/pages/_error.js.nft.json +1 -1
  26. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  27. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  28. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  29. package/.next/server/pages/api/preview.js.nft.json +1 -1
  30. package/.next/server/pages/checkout.js.nft.json +1 -1
  31. package/.next/server/pages/en-US/404.html +1 -1
  32. package/.next/server/pages/en-US/500.html +1 -1
  33. package/.next/server/pages/en-US/checkout.html +1 -1
  34. package/.next/server/pages/en-US/login.html +1 -1
  35. package/.next/server/pages/en-US/s.html +1 -1
  36. package/.next/server/pages/en-US.html +1 -1
  37. package/.next/server/pages/index.js.nft.json +1 -1
  38. package/.next/server/pages/login.js.nft.json +1 -1
  39. package/.next/server/pages/pvt/account/403.js.nft.json +1 -1
  40. package/.next/server/pages/pvt/account/404.js.nft.json +1 -1
  41. package/.next/server/pages/pvt/account/[...unknown].js.nft.json +1 -1
  42. package/.next/server/pages/pvt/account/orders/[id].js +1 -1
  43. package/.next/server/pages/pvt/account/orders/[id].js.nft.json +1 -1
  44. package/.next/server/pages/pvt/account/orders.js +1 -1
  45. package/.next/server/pages/pvt/account/orders.js.nft.json +1 -1
  46. package/.next/server/pages/pvt/account/profile.js +1 -1
  47. package/.next/server/pages/pvt/account/profile.js.nft.json +1 -1
  48. package/.next/server/pages/pvt/account/security.js +1 -1
  49. package/.next/server/pages/pvt/account/security.js.nft.json +1 -1
  50. package/.next/server/pages/pvt/account/user-details.js +1 -1
  51. package/.next/server/pages/pvt/account/user-details.js.nft.json +1 -1
  52. package/.next/server/pages/pvt/account.js.nft.json +1 -1
  53. package/.next/server/pages/s.js.nft.json +1 -1
  54. package/.next/server/pages-manifest.json +1 -1
  55. package/.next/static/chunks/pages/pvt/account/403-f2858569fde3873b.js +1 -0
  56. package/.next/static/chunks/pages/pvt/account/404-c68124bed7cb7c48.js +1 -0
  57. package/.next/static/chunks/pages/pvt/account/orders/[id]-459f6b9a86780410.js +1 -0
  58. package/.next/static/chunks/pages/pvt/account/orders-f376bbaf561ae429.js +1 -0
  59. package/.next/static/chunks/pages/pvt/account/profile-e13024f80e939a5f.js +1 -0
  60. package/.next/static/chunks/pages/pvt/account/security-e6289a40e745d3c4.js +1 -0
  61. package/.next/static/chunks/pages/pvt/account/user-details-fba1822e52e7de26.js +1 -0
  62. package/.next/static/chunks/{webpack-747ebf1e0c896030.js → webpack-f16e329d9f50b79b.js} +1 -1
  63. package/.next/static/css/{5273202f7c5e5ec1.css → 02eaf202d3d11fd1.css} +1 -1
  64. package/.next/static/css/0f8f72ecdeb79402.css +1 -0
  65. package/.next/static/css/2c0f8724c01f2ab8.css +1 -0
  66. package/.next/static/css/32a4ddbf3999c2a5.css +1 -0
  67. package/.next/static/css/331f08e9d306e70b.css +1 -0
  68. package/.next/static/css/{865e30903caadb79.css → 4f0597b0bf0ef2e1.css} +1 -1
  69. package/.next/static/css/5177628438c28f74.css +1 -0
  70. package/.next/static/css/6bb0abee27fe0019.css +1 -0
  71. package/.next/static/css/84ebcfe7a63d709d.css +1 -0
  72. package/.next/static/css/8df9f9a136312210.css +1 -0
  73. package/.next/static/css/a8bcd71b15adb1ec.css +1 -0
  74. package/.next/static/css/a9328b56f3942b82.css +1 -0
  75. package/.next/static/css/{b7bba8fce075688b.css → b65e005fb943434c.css} +1 -1
  76. package/.next/static/css/{831a1f72fe4b2d80.css → bd121d85d6ceed46.css} +1 -1
  77. package/.next/static/css/{dbbb10bf2f162a58.css → be59e989720e6e50.css} +1 -1
  78. package/.next/static/css/{b1806cbafd0c1f81.css → c29fee5b9f9d48d9.css} +1 -1
  79. package/.next/static/css/{936c65069d608087.css → c34f6ea9953e2f63.css} +1 -1
  80. package/.next/static/css/{e46393a76c5d93a9.css → c53b17b6fa994508.css} +1 -1
  81. package/.next/static/css/{5347dbc8b71de47d.css → ceb410a7062740d1.css} +1 -1
  82. package/.next/static/css/da0f1f3329c5657a.css +1 -0
  83. package/.next/static/css/da5bfb1f39c54578.css +1 -0
  84. package/.next/static/css/f60366555f563deb.css +1 -0
  85. package/.next/static/css/f81198b7fe9f5f6f.css +1 -0
  86. package/.next/static/zzqNGaHXIghWiPWB3TKER/_buildManifest.js +1 -0
  87. package/.next/trace +138 -137
  88. package/.turbo/turbo-build.log +26 -26
  89. package/.turbo/turbo-test.log +6 -5
  90. package/CHANGELOG.md +6 -0
  91. package/package.json +3 -3
  92. package/src/components/account/MyAccountLayout/MyAccountLayout.tsx +3 -3
  93. package/src/components/account/MyAccountLayout/styles.scss +10 -0
  94. package/src/components/account/MyAccountMenu/styles.scss +2 -1
  95. package/src/components/account/MyAccountUserDetails/MyAccountUserDetails.tsx +18 -39
  96. package/src/components/account/MyAccountUserDetails/styles.module.scss +1 -93
  97. package/src/components/account/components/MyAccountHeader/MyAccountHeader.tsx +13 -0
  98. package/src/components/account/components/MyAccountHeader/index.ts +1 -0
  99. package/src/components/account/components/MyAccountHeader/styles.scss +13 -0
  100. package/src/components/account/components/MyAccountStatusBadge/styles.scss +4 -4
  101. package/src/components/account/components/MyAccountTable/MyAccountTable.tsx +23 -0
  102. package/src/components/account/components/MyAccountTable/index.ts +1 -0
  103. package/src/components/account/components/MyAccountTable/styles.scss +67 -0
  104. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrders.tsx +131 -134
  105. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/MyAccountListOrdersTable.tsx +9 -24
  106. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/styles.scss +37 -42
  107. package/src/components/account/orders/MyAccountListOrders/styles.module.scss +4 -25
  108. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderActions/MyAccountOrderActions.tsx +1 -6
  109. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx +1 -1
  110. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/MyAccountStatusCard.tsx +9 -11
  111. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/styles.scss +27 -11
  112. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/useConnectorPositioning.ts +0 -8
  113. package/src/components/account/orders/MyAccountOrderDetails/section.module.scss +2 -3
  114. package/src/components/account/profile/profile.module.scss +1 -85
  115. package/src/components/account/profile/profile.tsx +24 -31
  116. package/src/components/account/security/SecurityDrawer.tsx +86 -88
  117. package/src/components/account/security/SecuritySection.tsx +23 -20
  118. package/src/components/account/security/styles.module.scss +26 -150
  119. package/src/utils/userOrderStatus.ts +5 -5
  120. package/.next/static/chunks/pages/pvt/account/403-e4315ace8609a7ff.js +0 -1
  121. package/.next/static/chunks/pages/pvt/account/404-1e450ae9476bbcaa.js +0 -1
  122. package/.next/static/chunks/pages/pvt/account/orders/[id]-a3e46af1be9816a4.js +0 -1
  123. package/.next/static/chunks/pages/pvt/account/orders-db7a364869130660.js +0 -1
  124. package/.next/static/chunks/pages/pvt/account/profile-e8a7ad7a7d7c60fb.js +0 -1
  125. package/.next/static/chunks/pages/pvt/account/security-cad4e4260be8b0cd.js +0 -1
  126. package/.next/static/chunks/pages/pvt/account/user-details-401f6f6e4ce4b9ce.js +0 -1
  127. package/.next/static/css/04fb2d4b8924b0c6.css +0 -1
  128. package/.next/static/css/083dc2a5b0de2439.css +0 -1
  129. package/.next/static/css/175fa823349dc534.css +0 -1
  130. package/.next/static/css/297be4be3be36ff0.css +0 -1
  131. package/.next/static/css/2a4b7072e47636f1.css +0 -1
  132. package/.next/static/css/45fac71f6411cceb.css +0 -1
  133. package/.next/static/css/6cd282d958f613bc.css +0 -1
  134. package/.next/static/css/b52f8f6500d3439e.css +0 -1
  135. package/.next/static/css/b7fc24e8f1eb011f.css +0 -1
  136. package/.next/static/css/d26cb0a54378b3d9.css +0 -1
  137. package/.next/static/css/ec7fdad03808422d.css +0 -1
  138. package/.next/static/css/f93cf36b16950027.css +0 -1
  139. package/.next/static/css/fd0a7a134ddc3d90.css +0 -1
  140. package/.next/static/css/fe0bcc13a2b68605.css +0 -1
  141. package/.next/static/pe6z3Z3bQ07PowbWL75Ts/_buildManifest.js +0 -1
  142. /package/.next/static/{pe6z3Z3bQ07PowbWL75Ts → zzqNGaHXIghWiPWB3TKER}/_ssgManifest.js +0 -0
@@ -14,6 +14,7 @@ import {
14
14
  } from '@faststore/ui'
15
15
  import { useEffect } from 'react'
16
16
  import MyAccountFilterSlider from 'src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider'
17
+ import AccountHeader from '../../components/MyAccountHeader'
17
18
  import { useDebounce } from 'src/sdk/account/useDebounce'
18
19
  import {
19
20
  useMyAccountFilter,
@@ -191,151 +192,147 @@ export default function MyAccountListOrders({
191
192
 
192
193
  return (
193
194
  <div className={styles.page}>
194
- <div data-fs-list-orders>
195
- <h1 data-fs-list-orders-title>Orders</h1>
196
- <div data-fs-list-orders-header>
197
- <div data-fs-list-orders-search-filters>
198
- <SearchInputField
199
- ref={searchInputRef}
200
- data-fs-search-input-field-list-orders
201
- placeholder="Search"
202
- onBlur={(_) => {
195
+ <AccountHeader pageTitle="Orders" />
196
+ <div data-fs-list-orders-controls>
197
+ <div data-fs-list-orders-search-filters>
198
+ <SearchInputField
199
+ ref={searchInputRef}
200
+ data-fs-search-input-field-list-orders
201
+ placeholder="Search"
202
+ onBlur={(_) => {
203
+ handleSearchChange(searchInputRef.current.inputRef.value)
204
+ }}
205
+ onKeyDown={(e) => {
206
+ if (e.key === 'Enter') {
203
207
  handleSearchChange(searchInputRef.current.inputRef.value)
204
- }}
205
- onKeyDown={(e) => {
206
- if (e.key === 'Enter') {
207
- handleSearchChange(searchInputRef.current.inputRef.value)
208
- }
209
- }}
210
- onSubmit={(_) => {
211
- handleSearchChange(searchInputRef.current.inputRef.value)
212
- }}
213
- />
214
- <Button
215
- data-fs-list-orders-search-filters-button
216
- variant="tertiary"
217
- icon={
218
- <UIIcon
219
- width={16}
220
- height={16}
221
- name="FadersHorizontal"
222
- aria-label="Open Filters"
223
- />
224
208
  }
225
- iconPosition="left"
226
- onClick={() => {
227
- filter.dispatch({
228
- type: 'selectFacets',
229
- payload: getSelectedFacets({ filters }),
230
- })
231
- openFilter()
232
- }}
233
- >
234
- Filters
235
- </Button>
236
- </div>
237
- {isDesktop && (
238
- <Pagination page={filters.page} total={total} perPage={perPage} />
239
- )}
209
+ }}
210
+ onSubmit={(_) => {
211
+ handleSearchChange(searchInputRef.current.inputRef.value)
212
+ }}
213
+ />
214
+ <Button
215
+ data-fs-list-orders-search-filters-button
216
+ size="small"
217
+ variant="tertiary"
218
+ icon={
219
+ <UIIcon
220
+ name="FadersHorizontal"
221
+ width={24}
222
+ height={24}
223
+ aria-label="Open Filters"
224
+ />
225
+ }
226
+ iconPosition="left"
227
+ onClick={() => {
228
+ filter.dispatch({
229
+ type: 'selectFacets',
230
+ payload: getSelectedFacets({ filters }),
231
+ })
232
+ openFilter()
233
+ }}
234
+ >
235
+ Filters
236
+ </Button>
240
237
  </div>
238
+ {isDesktop && (
239
+ <Pagination page={filters.page} total={total} perPage={perPage} />
240
+ )}
241
+ </div>
241
242
 
242
- <SelectedFiltersTags
243
- filters={{
244
- status: filters.status,
245
- dateInitial: filters.dateInitial,
246
- dateFinal: filters.dateFinal,
247
- purchaseAgentId: filters.purchaseAgentId,
248
- }}
249
- onClearAll={() => {
250
- window.location.href = '/pvt/account/orders'
251
- }}
252
- onRemoveFilter={(key, value) => {
253
- const { page, clientEmail, ...updatedFilters } = { ...filters }
254
-
255
- if (key === 'status' && Array.isArray(updatedFilters[key])) {
256
- updatedFilters[key] = updatedFilters[key].filter(
257
- (v) => v !== value
258
- )
259
- } else if (key === 'dateInitial' || key === 'dateFinal') {
260
- delete updatedFilters.dateInitial
261
- delete updatedFilters.dateFinal
262
- } else if (key === 'purchaseAgentId') {
263
- delete updatedFilters.purchaseAgentId
264
- } else {
265
- delete updatedFilters[key]
266
- }
243
+ <SelectedFiltersTags
244
+ filters={{
245
+ status: filters.status,
246
+ dateInitial: filters.dateInitial,
247
+ dateFinal: filters.dateFinal,
248
+ purchaseAgentId: filters.purchaseAgentId,
249
+ }}
250
+ onClearAll={() => {
251
+ window.location.href = '/pvt/account/orders'
252
+ }}
253
+ onRemoveFilter={(key, value) => {
254
+ const { page, clientEmail, ...updatedFilters } = { ...filters }
267
255
 
268
- if (key === 'status' && Array.isArray(updatedFilters[key])) {
269
- updatedFilters[key] = updatedFilters[key].filter(
270
- (v) => v.toLowerCase() !== value.toLowerCase()
271
- )
272
- } else if (key === 'dateInitial' || key === 'dateFinal') {
273
- delete updatedFilters.dateInitial
274
- delete updatedFilters.dateFinal
275
- } else if (key === 'purchaseAgentId') {
276
- delete updatedFilters.purchaseAgentId
277
- } else {
278
- delete updatedFilters[key]
279
- }
256
+ if (key === 'status' && Array.isArray(updatedFilters[key])) {
257
+ updatedFilters[key] = updatedFilters[key].filter((v) => v !== value)
258
+ } else if (key === 'dateInitial' || key === 'dateFinal') {
259
+ delete updatedFilters.dateInitial
260
+ delete updatedFilters.dateFinal
261
+ } else if (key === 'purchaseAgentId') {
262
+ delete updatedFilters.purchaseAgentId
263
+ } else {
264
+ delete updatedFilters[key]
265
+ }
280
266
 
281
- // Remove filters with no values
282
- const filteredQuery = Object.fromEntries(
283
- Object.entries(updatedFilters).filter(([, v]) =>
284
- Array.isArray(v) ? v.length > 0 : Boolean(v)
285
- )
267
+ if (key === 'status' && Array.isArray(updatedFilters[key])) {
268
+ updatedFilters[key] = updatedFilters[key].filter(
269
+ (v) => v.toLowerCase() !== value.toLowerCase()
286
270
  )
271
+ } else if (key === 'dateInitial' || key === 'dateFinal') {
272
+ delete updatedFilters.dateInitial
273
+ delete updatedFilters.dateFinal
274
+ } else if (key === 'purchaseAgentId') {
275
+ delete updatedFilters.purchaseAgentId
276
+ } else {
277
+ delete updatedFilters[key]
278
+ }
287
279
 
288
- const params = new URLSearchParams(
289
- filteredQuery as Record<string, string>
280
+ // Remove filters with no values
281
+ const filteredQuery = Object.fromEntries(
282
+ Object.entries(updatedFilters).filter(([, v]) =>
283
+ Array.isArray(v) ? v.length > 0 : Boolean(v)
290
284
  )
291
- window.location.href = `/pvt/account/orders?${params.toString()}`
292
- }}
293
- />
285
+ )
294
286
 
295
- {displayFilter && (
296
- <MyAccountFilterSlider
297
- {...filter}
298
- title="Filters"
299
- clearButtonLabel="Clear All"
300
- applyButtonLabel="View Results"
301
- searchInputRef={searchInputRef}
302
- />
303
- )}
287
+ const params = new URLSearchParams(
288
+ filteredQuery as Record<string, string>
289
+ )
290
+ window.location.href = `/pvt/account/orders?${params.toString()}`
291
+ }}
292
+ />
304
293
 
305
- {isEmpty ? (
306
- <EmptyState
307
- titleIcon={
308
- <UIIcon
309
- name={hasFilters ? 'MagnifyingGlass' : 'Bag2'}
310
- width={56}
311
- height={56}
312
- weight="thin"
313
- />
314
- }
315
- title={
316
- hasFilters ? 'No results found' : "You don't have any orders"
317
- }
318
- bkgColor="light"
319
- >
320
- {!hasFilters && (
321
- <LinkButton
322
- data-fs-list-orders-empty-state-link
323
- href="/"
324
- variant="secondary"
325
- >
326
- Start shopping
327
- </LinkButton>
328
- )}
329
- </EmptyState>
330
- ) : (
331
- <MyAccountListOrdersTable
332
- listOrders={listOrders}
333
- total={total}
334
- perPage={perPage}
335
- filters={filters}
336
- />
337
- )}
338
- </div>
294
+ {displayFilter && (
295
+ <MyAccountFilterSlider
296
+ {...filter}
297
+ title="Filters"
298
+ clearButtonLabel="Clear All"
299
+ applyButtonLabel="View Results"
300
+ searchInputRef={searchInputRef}
301
+ testId="my-account-filter-slider"
302
+ />
303
+ )}
304
+
305
+ {isEmpty ? (
306
+ <EmptyState
307
+ titleIcon={
308
+ <UIIcon
309
+ name={hasFilters ? 'MagnifyingGlass' : 'Bag2'}
310
+ width={56}
311
+ height={56}
312
+ weight="thin"
313
+ />
314
+ }
315
+ title={hasFilters ? 'No results found' : "You don't have any orders"}
316
+ bkgColor="light"
317
+ >
318
+ {!hasFilters && (
319
+ <LinkButton
320
+ data-fs-list-orders-empty-state-link
321
+ href="/"
322
+ variant="secondary"
323
+ >
324
+ Start shopping
325
+ </LinkButton>
326
+ )}
327
+ </EmptyState>
328
+ ) : (
329
+ <MyAccountListOrdersTable
330
+ listOrders={listOrders}
331
+ total={total}
332
+ perPage={perPage}
333
+ filters={filters}
334
+ />
335
+ )}
339
336
  {!isDesktop && (
340
337
  <Pagination page={filters.page} total={total} perPage={perPage} />
341
338
  )}
@@ -1,4 +1,4 @@
1
- import { Button, Icon } from '@faststore/ui'
1
+ import { Button, Icon, IconButton } from '@faststore/ui'
2
2
  import type { ServerListOrdersQueryQuery } from '@generated/graphql'
3
3
  import { useState } from 'react'
4
4
 
@@ -62,36 +62,22 @@ export function Pagination({
62
62
  return (
63
63
  <div data-fs-list-orders-table-pagination>
64
64
  <p>{`${firstIndexLabel} — ${lastIndexLabel} of ${total}`}</p>
65
- <Button
65
+ <IconButton
66
66
  size="small"
67
67
  variant="tertiary"
68
68
  disabled={page === 1}
69
69
  onClick={() => handlePageChange(page - 1)}
70
- icon={
71
- <Icon
72
- width={16}
73
- height={16}
74
- name="CaretLeft"
75
- aria-label="Previous Page"
76
- />
77
- }
78
- iconPosition="left"
79
- ></Button>
80
- <Button
70
+ icon={<Icon name="CaretLeft" />}
71
+ aria-label="Previous Page"
72
+ />
73
+ <IconButton
81
74
  size="small"
82
75
  variant="tertiary"
83
76
  disabled={page === totalPages}
84
77
  onClick={() => handlePageChange(page + 1)}
85
- icon={
86
- <Icon
87
- width={16}
88
- height={16}
89
- name="CaretRight"
90
- aria-label="Next Page"
91
- />
92
- }
93
- iconPosition="left"
94
- ></Button>
78
+ icon={<Icon name="CaretRight" />}
79
+ aria-label="Next Page"
80
+ />
95
81
  </div>
96
82
  )
97
83
  }
@@ -191,7 +177,6 @@ export default function MyAccountListOrdersTable({
191
177
 
192
178
  return (
193
179
  <tr
194
- data-fs-list-orders-table-body-row
195
180
  data-fs-list-orders-table-row
196
181
  key={item.orderId}
197
182
  onClick={handleRowClick}
@@ -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>