@fluid-app/portal-sdk 0.1.190 → 0.1.192

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 (90) hide show
  1. package/dist/{ContactsScreen-Dw9G8Q3n.mjs → ContactsScreen-BtBNMZzG.mjs} +68 -71
  2. package/dist/ContactsScreen-BtBNMZzG.mjs.map +1 -0
  3. package/dist/{ContactsScreen-Euvu6Y8H.cjs → ContactsScreen-Cheiwaxn.cjs} +3 -4
  4. package/dist/{ContactsScreen-D2rOJ9Ra.cjs → ContactsScreen-DvohvoOE.cjs} +67 -70
  5. package/dist/ContactsScreen-DvohvoOE.cjs.map +1 -0
  6. package/dist/{FluidProvider-bZ4dm-UF.cjs → FluidProvider-BWBEdHQQ.cjs} +30 -2
  7. package/dist/{FluidProvider-bZ4dm-UF.cjs.map → FluidProvider-BWBEdHQQ.cjs.map} +1 -1
  8. package/dist/{FluidProvider-ClxrzJDf.mjs → FluidProvider-dp9q6oRM.mjs} +30 -2
  9. package/dist/FluidProvider-dp9q6oRM.mjs.map +1 -0
  10. package/dist/InfiniteScrollSentinel-CU801UfD.cjs +36 -0
  11. package/dist/InfiniteScrollSentinel-CU801UfD.cjs.map +1 -0
  12. package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs +30 -0
  13. package/dist/InfiniteScrollSentinel-MgF-ldXy.mjs.map +1 -0
  14. package/dist/{MessagingScreen-Bu8KvZrz.mjs → MessagingScreen-BNsaLpzu.mjs} +2 -2
  15. package/dist/{MessagingScreen-Bu8KvZrz.mjs.map → MessagingScreen-BNsaLpzu.mjs.map} +1 -1
  16. package/dist/{MessagingScreen-CZIMNXUy.cjs → MessagingScreen-CJ3p3ZHq.cjs} +2 -2
  17. package/dist/{MessagingScreen-B4OtJ908.cjs → MessagingScreen-DX8A0ahD.cjs} +2 -2
  18. package/dist/{MessagingScreen-B4OtJ908.cjs.map → MessagingScreen-DX8A0ahD.cjs.map} +1 -1
  19. package/dist/{OrdersScreen-DtO4r_th.mjs → OrdersScreen-BgyMsZpn.mjs} +245 -84
  20. package/dist/OrdersScreen-BgyMsZpn.mjs.map +1 -0
  21. package/dist/{OrdersScreen-DlCLRqEK.cjs → OrdersScreen-CCVPgVWa.cjs} +244 -83
  22. package/dist/OrdersScreen-CCVPgVWa.cjs.map +1 -0
  23. package/dist/{OrdersScreen-CV6umNnp.cjs → OrdersScreen-DWNylH_i.cjs} +3 -2
  24. package/dist/{PortalContentApiProvider-DGkP0Vk6.mjs → PortalContentApiProvider-Bwi7FOTs.mjs} +72 -75
  25. package/dist/PortalContentApiProvider-Bwi7FOTs.mjs.map +1 -0
  26. package/dist/{PortalContentApiProvider-CH87-pE5.cjs → PortalContentApiProvider-Cb-DGxBo.cjs} +72 -75
  27. package/dist/PortalContentApiProvider-Cb-DGxBo.cjs.map +1 -0
  28. package/dist/{PortalProductsApiProvider-CTLKKRqy.cjs → PortalProductsApiProvider-CRN-i8Rh.cjs} +2 -2
  29. package/dist/{PortalProductsApiProvider-CTLKKRqy.cjs.map → PortalProductsApiProvider-CRN-i8Rh.cjs.map} +1 -1
  30. package/dist/{PortalProductsApiProvider-CY6CUq6x.mjs → PortalProductsApiProvider-D0jul2Fh.mjs} +2 -2
  31. package/dist/{PortalProductsApiProvider-CY6CUq6x.mjs.map → PortalProductsApiProvider-D0jul2Fh.mjs.map} +1 -1
  32. package/dist/{ProductsScreen-a1Bcvc3U.cjs → ProductsScreen-BQqP8-N9.cjs} +3 -3
  33. package/dist/{ProductsScreen-a1Bcvc3U.cjs.map → ProductsScreen-BQqP8-N9.cjs.map} +1 -1
  34. package/dist/{ProductsScreen-DWpcieDU.mjs → ProductsScreen-Cd8hpH-3.mjs} +3 -3
  35. package/dist/{ProductsScreen-DWpcieDU.mjs.map → ProductsScreen-Cd8hpH-3.mjs.map} +1 -1
  36. package/dist/{ProductsScreen-DLrDpYau.mjs → ProductsScreen-CdbwRM5O.mjs} +4 -4
  37. package/dist/{ProductsScreen-DmhLYjZD.cjs → ProductsScreen-DgPjO-HY.cjs} +4 -4
  38. package/dist/{ProfileScreen-Dx8KAKbU.cjs → ProfileScreen-BsjuHCor.cjs} +2 -2
  39. package/dist/{ProfileScreen-Dx8KAKbU.cjs.map → ProfileScreen-BsjuHCor.cjs.map} +1 -1
  40. package/dist/{ProfileScreen-BCDSo1pW.cjs → ProfileScreen-DL-C2R6R.cjs} +2 -2
  41. package/dist/{ProfileScreen-DoCcIaDI.mjs → ProfileScreen-eJvfI2YW.mjs} +2 -2
  42. package/dist/{ProfileScreen-DoCcIaDI.mjs.map → ProfileScreen-eJvfI2YW.mjs.map} +1 -1
  43. package/dist/{ShareablesScreen-B-OPO65F.cjs → ShareablesScreen-BEm7wQaI.cjs} +4 -4
  44. package/dist/{ShareablesScreen-CXchqCpx.mjs → ShareablesScreen-BUuuUpDS.mjs} +3 -3
  45. package/dist/{ShareablesScreen-CXchqCpx.mjs.map → ShareablesScreen-BUuuUpDS.mjs.map} +1 -1
  46. package/dist/{ShareablesScreen-D8tsuynn.cjs → ShareablesScreen-C1PQmDVa.cjs} +3 -3
  47. package/dist/{ShareablesScreen-D8tsuynn.cjs.map → ShareablesScreen-C1PQmDVa.cjs.map} +1 -1
  48. package/dist/{ShareablesScreen-Bvx2nkO5.mjs → ShareablesScreen-DoJ8EIDG.mjs} +4 -4
  49. package/dist/{ShopScreen-D__IvAj7.mjs → ShopScreen-5AXTCtLQ.mjs} +3 -3
  50. package/dist/{ShopScreen-D__IvAj7.mjs.map → ShopScreen-5AXTCtLQ.mjs.map} +1 -1
  51. package/dist/{ShopScreen-D6YHqL2Z.cjs → ShopScreen-DEFhDrcd.cjs} +3 -3
  52. package/dist/{ShopScreen-CcmvJ3mF.cjs → ShopScreen-X802gHEX.cjs} +3 -3
  53. package/dist/{ShopScreen-CcmvJ3mF.cjs.map → ShopScreen-X802gHEX.cjs.map} +1 -1
  54. package/dist/{SubscriptionsScreen-CshfzE9Z.mjs → SubscriptionsScreen-BwRoXYF8.mjs} +44 -34
  55. package/dist/SubscriptionsScreen-BwRoXYF8.mjs.map +1 -0
  56. package/dist/{SubscriptionsScreen-CEiVF1iQ.cjs → SubscriptionsScreen-DbcnEDD0.cjs} +43 -33
  57. package/dist/SubscriptionsScreen-DbcnEDD0.cjs.map +1 -0
  58. package/dist/{SubscriptionsScreen-C32rbhAZ.cjs → SubscriptionsScreen-mhTl7OIp.cjs} +3 -3
  59. package/dist/{dist-Ib6pM5r3.cjs → dist-bL3uiYn3.cjs} +1 -1
  60. package/dist/{dist-Ib6pM5r3.cjs.map → dist-bL3uiYn3.cjs.map} +1 -1
  61. package/dist/{dist-DhOQb8en.mjs → dist-wzcShuuv.mjs} +1 -1
  62. package/dist/{dist-DhOQb8en.mjs.map → dist-wzcShuuv.mjs.map} +1 -1
  63. package/dist/index.cjs +30 -30
  64. package/dist/index.d.cts.map +1 -1
  65. package/dist/index.d.mts.map +1 -1
  66. package/dist/index.mjs +30 -30
  67. package/dist/{order-status-badge-DvZns1LY.cjs → order-status-badge-Crk9UGpl.cjs} +23 -151
  68. package/dist/order-status-badge-Crk9UGpl.cjs.map +1 -0
  69. package/dist/{order-status-badge-DK9GG8H-.mjs → order-status-badge-DiQDwwSp.mjs} +28 -150
  70. package/dist/order-status-badge-DiQDwwSp.mjs.map +1 -0
  71. package/dist/{portal_tenant-BrihTN41.mjs → portal_tenant-CWKHVgID.mjs} +14 -4
  72. package/dist/portal_tenant-CWKHVgID.mjs.map +1 -0
  73. package/dist/{portal_tenant-DjN8hwJb.cjs → portal_tenant-pozf8Ht6.cjs} +19 -3
  74. package/dist/portal_tenant-pozf8Ht6.cjs.map +1 -0
  75. package/package.json +18 -18
  76. package/dist/ContactsScreen-D2rOJ9Ra.cjs.map +0 -1
  77. package/dist/ContactsScreen-Dw9G8Q3n.mjs.map +0 -1
  78. package/dist/FluidProvider-ClxrzJDf.mjs.map +0 -1
  79. package/dist/OrdersScreen-DlCLRqEK.cjs.map +0 -1
  80. package/dist/OrdersScreen-DtO4r_th.mjs.map +0 -1
  81. package/dist/PortalContentApiProvider-CH87-pE5.cjs.map +0 -1
  82. package/dist/PortalContentApiProvider-DGkP0Vk6.mjs.map +0 -1
  83. package/dist/SubscriptionsScreen-CEiVF1iQ.cjs.map +0 -1
  84. package/dist/SubscriptionsScreen-CshfzE9Z.mjs.map +0 -1
  85. package/dist/order-status-badge-DK9GG8H-.mjs.map +0 -1
  86. package/dist/order-status-badge-DvZns1LY.cjs.map +0 -1
  87. package/dist/portal_tenant-BrihTN41.mjs.map +0 -1
  88. package/dist/portal_tenant-DjN8hwJb.cjs.map +0 -1
  89. package/dist/src-DOYe5GAF.cjs +0 -3
  90. package/dist/src-HUkXWdaF.mjs +0 -3
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./es-BeIE2Uzn.mjs";
2
- import { A as mergeDarkOverrides, C as DEFAULT_THEME_ID, D as deriveDarkVariant, E as generateThemeCSS, F as RADIUS_KEYS, H as createPersister, I as SEMANTIC_COLOR_NAMES, L as SHADE_STEPS, M as resolveTheme, N as FONT_FAMILY_KEYS, O as generateShades, P as FONT_SIZE_KEYS, S as DEFAULT_SPACING, T as getDefaultThemeDefinition, U as deleteDatabase, V as useAppDefinitionApi, _ as serialiseTheme, a as createScreen, b as DEFAULT_FONT_SIZES, c as FluidThemeProvider, d as removeAllThemes, f as removeTheme, g as deserialiseTheme, h as transformThemes, i as widgetPropertySchemas, j as parseColor, k as getForegroundColor, l as useThemeContext, m as getActiveThemeId, n as useFluidContext, o as createWidgetFromShareable, p as buildThemeDefinition, r as DEFAULT_SDK_WIDGET_REGISTRY, s as createWidgetRegistry, t as FluidProvider, u as applyTheme, v as DEFAULT_COLORS, w as DEFAULT_THEME_NAME, x as DEFAULT_RADII, y as DEFAULT_FONT_FAMILIES } from "./FluidProvider-ClxrzJDf.mjs";
2
+ import { A as mergeDarkOverrides, C as DEFAULT_THEME_ID, D as deriveDarkVariant, E as generateThemeCSS, F as RADIUS_KEYS, H as createPersister, I as SEMANTIC_COLOR_NAMES, L as SHADE_STEPS, M as resolveTheme, N as FONT_FAMILY_KEYS, O as generateShades, P as FONT_SIZE_KEYS, S as DEFAULT_SPACING, T as getDefaultThemeDefinition, U as deleteDatabase, V as useAppDefinitionApi, _ as serialiseTheme, a as createScreen, b as DEFAULT_FONT_SIZES, c as FluidThemeProvider, d as removeAllThemes, f as removeTheme, g as deserialiseTheme, h as transformThemes, i as widgetPropertySchemas, j as parseColor, k as getForegroundColor, l as useThemeContext, m as getActiveThemeId, n as useFluidContext, o as createWidgetFromShareable, p as buildThemeDefinition, r as DEFAULT_SDK_WIDGET_REGISTRY, s as createWidgetRegistry, t as FluidProvider, u as applyTheme, v as DEFAULT_COLORS, w as DEFAULT_THEME_NAME, x as DEFAULT_RADII, y as DEFAULT_FONT_FAMILIES } from "./FluidProvider-dp9q6oRM.mjs";
3
3
  import { a as assertNever, i as assertDefined, n as DataAwareWidget, o as isWidgetType, r as WIDGET_TYPE_NAMES, s as isWidgetTypeName, u as useRegistry } from "./ScreenRenderer-CgSF9HEd.mjs";
4
4
  import "./account-api-context-BIZ_aibJ.mjs";
5
5
  import "./store-api-context-C1lXT_3d.mjs";
@@ -20,7 +20,7 @@ import { r as calendarWidgetPropertySchema, t as CalendarWidget } from "./Calend
20
20
  import { r as cardWidgetPropertySchema, t as CardWidget } from "./CardWidget-BDIscQev.mjs";
21
21
  import "./purify.es-Bl6SBkmi.mjs";
22
22
  import { C as Skeleton$1, _t as CollapsibleContent, gt as Collapsible, ht as PopoverTrigger, mt as PopoverContent, pn as Button, pt as Popover, vt as CollapsibleTrigger, x as Toaster, xn as cn$1 } from "./src-BTbz18gY.mjs";
23
- import { a as useMessagingConfig, i as createFluidFileUploader, o as useMessagingAuth, r as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-Bu8KvZrz.mjs";
23
+ import { a as useMessagingConfig, i as createFluidFileUploader, o as useMessagingAuth, r as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-BNsaLpzu.mjs";
24
24
  import "./scroll-arrows-CMBCAcKb.mjs";
25
25
  import "./MediaRenderer-xEZSMhh7.mjs";
26
26
  import { r as carouselWidgetPropertySchema, t as CarouselWidget } from "./CarouselWidget-CCmfNNEU.mjs";
@@ -45,23 +45,23 @@ import { t as useAccount } from "./use-account-Djaaw5GX.mjs";
45
45
  import { t as useStore } from "./use-store-D1Qv56T2.mjs";
46
46
  import { i as CoreScreenPlaceholder, r as customersScreenPropertySchema, t as CustomersScreen } from "./CustomersScreen-BUpR_uUF.mjs";
47
47
  import { n as useAppNavigation, t as AppNavigationProvider } from "./AppNavigationContext-7JSRmNdX.mjs";
48
- import { r as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-DoCcIaDI.mjs";
48
+ import { r as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-eJvfI2YW.mjs";
49
49
  import "./dist-tv6N_HgZ.mjs";
50
- import { r as contactsScreenPropertySchema, t as ContactsScreen } from "./ContactsScreen-Dw9G8Q3n.mjs";
50
+ import { r as contactsScreenPropertySchema, t as ContactsScreen } from "./ContactsScreen-BtBNMZzG.mjs";
51
51
  import "./SearchSort-TmRTxK16.mjs";
52
- import "./order-status-badge-DK9GG8H-.mjs";
53
- import "./src-HUkXWdaF.mjs";
54
- import "./dist-DhOQb8en.mjs";
55
- import { r as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-DtO4r_th.mjs";
56
- import { r as subscriptionsScreenPropertySchema, t as SubscriptionsScreen } from "./SubscriptionsScreen-CshfzE9Z.mjs";
57
- import "./PortalContentApiProvider-DGkP0Vk6.mjs";
52
+ import "./InfiniteScrollSentinel-MgF-ldXy.mjs";
53
+ import "./dist-wzcShuuv.mjs";
54
+ import "./order-status-badge-DiQDwwSp.mjs";
55
+ import { r as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-BgyMsZpn.mjs";
56
+ import { r as subscriptionsScreenPropertySchema, t as SubscriptionsScreen } from "./SubscriptionsScreen-BwRoXYF8.mjs";
57
+ import "./PortalContentApiProvider-Bwi7FOTs.mjs";
58
58
  import "./sortable.esm-DFTEWOHN.mjs";
59
- import "./PortalProductsApiProvider-CY6CUq6x.mjs";
60
- import { n as productsScreenPropertySchema, t as ProductsScreen } from "./ProductsScreen-DWpcieDU.mjs";
59
+ import "./PortalProductsApiProvider-D0jul2Fh.mjs";
60
+ import { n as productsScreenPropertySchema, t as ProductsScreen } from "./ProductsScreen-Cd8hpH-3.mjs";
61
61
  import "./use-mysite-portal-axe_PFzR.mjs";
62
62
  import { r as mySiteScreenPropertySchema, t as MySiteScreen } from "./MySiteScreen-DCXhJpH3.mjs";
63
- import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-CXchqCpx.mjs";
64
- import { r as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-D__IvAj7.mjs";
63
+ import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-BUuuUpDS.mjs";
64
+ import { r as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-5AXTCtLQ.mjs";
65
65
  import "./UpgradeScreen-CqgkH3zL.mjs";
66
66
  import "./AppDownloadScreen-3pysCnaE.mjs";
67
67
  import * as React$1 from "react";
@@ -2132,15 +2132,15 @@ function AccountManageLayout({ children }) {
2132
2132
  }
2133
2133
  //#endregion
2134
2134
  //#region src/shell/system-screen-map.ts
2135
- const ProfileScreen$1 = lazy(() => import("./ProfileScreen-DoCcIaDI.mjs").then((n) => n.n).then((m) => ({ default: m.ProfileScreen })));
2136
- const OrdersScreen$1 = lazy(() => import("./OrdersScreen-DtO4r_th.mjs").then((n) => n.n).then((m) => ({ default: m.OrdersScreen })));
2137
- const SubscriptionsScreen$1 = lazy(() => import("./SubscriptionsScreen-CshfzE9Z.mjs").then((n) => n.n).then((m) => ({ default: m.SubscriptionsScreen })));
2138
- const MessagingScreen$1 = lazy(() => import("./MessagingScreen-Bu8KvZrz.mjs").then((n) => n.n).then((m) => ({ default: m.MessagingScreen })));
2139
- const ContactsScreen$1 = lazy(() => import("./ContactsScreen-Dw9G8Q3n.mjs").then((n) => n.n).then((m) => ({ default: m.ContactsScreen })));
2140
- const ShopScreen$1 = lazy(() => import("./ShopScreen-D__IvAj7.mjs").then((n) => n.n).then((m) => ({ default: m.ShopScreen })));
2135
+ const ProfileScreen$1 = lazy(() => import("./ProfileScreen-eJvfI2YW.mjs").then((n) => n.n).then((m) => ({ default: m.ProfileScreen })));
2136
+ const OrdersScreen$1 = lazy(() => import("./OrdersScreen-BgyMsZpn.mjs").then((n) => n.n).then((m) => ({ default: m.OrdersScreen })));
2137
+ const SubscriptionsScreen$1 = lazy(() => import("./SubscriptionsScreen-BwRoXYF8.mjs").then((n) => n.n).then((m) => ({ default: m.SubscriptionsScreen })));
2138
+ const MessagingScreen$1 = lazy(() => import("./MessagingScreen-BNsaLpzu.mjs").then((n) => n.n).then((m) => ({ default: m.MessagingScreen })));
2139
+ const ContactsScreen$1 = lazy(() => import("./ContactsScreen-BtBNMZzG.mjs").then((n) => n.n).then((m) => ({ default: m.ContactsScreen })));
2140
+ const ShopScreen$1 = lazy(() => import("./ShopScreen-5AXTCtLQ.mjs").then((n) => n.n).then((m) => ({ default: m.ShopScreen })));
2141
2141
  const CustomersScreen$1 = lazy(() => import("./CustomersScreen-BUpR_uUF.mjs").then((n) => n.n).then((m) => ({ default: m.CustomersScreen })));
2142
- const ProductsScreen$1 = lazy(() => import("./ProductsScreen-DLrDpYau.mjs").then((m) => ({ default: m.ProductsScreen })));
2143
- const ShareablesScreen$1 = lazy(() => import("./ShareablesScreen-Bvx2nkO5.mjs").then((m) => ({ default: m.ShareablesScreen })));
2142
+ const ProductsScreen$1 = lazy(() => import("./ProductsScreen-CdbwRM5O.mjs").then((m) => ({ default: m.ProductsScreen })));
2143
+ const ShareablesScreen$1 = lazy(() => import("./ShareablesScreen-DoJ8EIDG.mjs").then((m) => ({ default: m.ShareablesScreen })));
2144
2144
  const MySiteScreen$1 = lazy(() => import("./MySiteScreen-DCXhJpH3.mjs").then((n) => n.n).then((m) => ({ default: m.MySiteScreen })));
2145
2145
  const UpgradeScreen = lazy(() => import("./UpgradeScreen-CqgkH3zL.mjs").then((n) => n.t).then((m) => ({ default: m.UpgradeScreen })));
2146
2146
  const AppDownloadScreen = lazy(() => import("./AppDownloadScreen-3pysCnaE.mjs").then((n) => n.t).then((m) => ({ default: m.AppDownloadScreen })));
@@ -3627,16 +3627,16 @@ z.object({
3627
3627
  //#endregion
3628
3628
  //#region src/screens/index.ts
3629
3629
  const screenPropertySchemas = {
3630
- ProfileScreen: () => import("./ProfileScreen-DoCcIaDI.mjs").then((n) => n.n).then((m) => m.profileScreenPropertySchema),
3631
- MessagingScreen: () => import("./MessagingScreen-Bu8KvZrz.mjs").then((n) => n.n).then((m) => m.messagingScreenPropertySchema),
3632
- ContactsScreen: () => import("./ContactsScreen-Dw9G8Q3n.mjs").then((n) => n.n).then((m) => m.contactsScreenPropertySchema),
3633
- OrdersScreen: () => import("./OrdersScreen-DtO4r_th.mjs").then((n) => n.n).then((m) => m.ordersScreenPropertySchema),
3634
- SubscriptionsScreen: () => import("./SubscriptionsScreen-CshfzE9Z.mjs").then((n) => n.n).then((m) => m.subscriptionsScreenPropertySchema),
3630
+ ProfileScreen: () => import("./ProfileScreen-eJvfI2YW.mjs").then((n) => n.n).then((m) => m.profileScreenPropertySchema),
3631
+ MessagingScreen: () => import("./MessagingScreen-BNsaLpzu.mjs").then((n) => n.n).then((m) => m.messagingScreenPropertySchema),
3632
+ ContactsScreen: () => import("./ContactsScreen-BtBNMZzG.mjs").then((n) => n.n).then((m) => m.contactsScreenPropertySchema),
3633
+ OrdersScreen: () => import("./OrdersScreen-BgyMsZpn.mjs").then((n) => n.n).then((m) => m.ordersScreenPropertySchema),
3634
+ SubscriptionsScreen: () => import("./SubscriptionsScreen-BwRoXYF8.mjs").then((n) => n.n).then((m) => m.subscriptionsScreenPropertySchema),
3635
3635
  CustomersScreen: () => import("./CustomersScreen-BUpR_uUF.mjs").then((n) => n.n).then((m) => m.customersScreenPropertySchema),
3636
- ProductsScreen: () => import("./ProductsScreen-DLrDpYau.mjs").then((m) => m.productsScreenPropertySchema),
3636
+ ProductsScreen: () => import("./ProductsScreen-CdbwRM5O.mjs").then((m) => m.productsScreenPropertySchema),
3637
3637
  MySiteScreen: () => import("./MySiteScreen-DCXhJpH3.mjs").then((n) => n.n).then((m) => m.mySiteScreenPropertySchema),
3638
- ShareablesScreen: () => import("./ShareablesScreen-Bvx2nkO5.mjs").then((m) => m.shareablesScreenPropertySchema),
3639
- ShopScreen: () => import("./ShopScreen-D__IvAj7.mjs").then((n) => n.n).then((m) => m.shopScreenPropertySchema),
3638
+ ShareablesScreen: () => import("./ShareablesScreen-DoJ8EIDG.mjs").then((m) => m.shareablesScreenPropertySchema),
3639
+ ShopScreen: () => import("./ShopScreen-5AXTCtLQ.mjs").then((n) => n.n).then((m) => m.shopScreenPropertySchema),
3640
3640
  UpgradeScreen: () => import("./UpgradeScreen-CqgkH3zL.mjs").then((n) => n.t).then((m) => m.upgradeScreenPropertySchema),
3641
3641
  AppDownloadScreen: () => import("./AppDownloadScreen-3pysCnaE.mjs").then((n) => n.t).then((m) => m.appDownloadScreenPropertySchema)
3642
3642
  };
@@ -1,10 +1,10 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
2
  const require_src = require("./src-D57IFKXU.cjs");
3
3
  const require_SearchSort = require("./SearchSort-CUDMZIkf.cjs");
4
+ const require_InfiniteScrollSentinel = require("./InfiniteScrollSentinel-CU801UfD.cjs");
4
5
  let react = require("react");
5
6
  let _tanstack_react_query = require("@tanstack/react-query");
6
7
  let react_jsx_runtime = require("react/jsx-runtime");
7
- let lucide_react = require("lucide-react");
8
8
  //#region ../../orders/core/src/orders-api-context.ts
9
9
  const OrdersApiContext = (0, react.createContext)(null);
10
10
  const OrdersApiProvider = OrdersApiContext.Provider;
@@ -50,15 +50,24 @@ const portalTenantOrdersKeys = {
50
50
  ]
51
51
  };
52
52
  //#endregion
53
- //#region ../../orders/core/src/hooks/use-customer-orders.ts
54
- function useCustomerOrders(params, options) {
53
+ //#region ../../orders/core/src/hooks/use-infinite-customer-orders.ts
54
+ function useInfiniteCustomerOrders(params, options) {
55
55
  const api = useOrdersApi();
56
- return (0, _tanstack_react_query.useQuery)({
57
- queryKey: ordersKeys.list(params),
58
- queryFn: () => {
56
+ return (0, _tanstack_react_query.useInfiniteQuery)({
57
+ queryKey: [
58
+ ...ordersKeys.all,
59
+ "infinite-list",
60
+ params
61
+ ],
62
+ queryFn: ({ pageParam }) => {
59
63
  if (!api.fetchCustomerOrders) throw new Error("fetchCustomerOrders not implemented on this OrdersApi");
60
- return api.fetchCustomerOrders(params);
64
+ return api.fetchCustomerOrders({
65
+ ...params,
66
+ cursor: pageParam
67
+ });
61
68
  },
69
+ getNextPageParam: (lastPage) => lastPage.meta?.pagination?.next_cursor ?? void 0,
70
+ initialPageParam: void 0,
62
71
  enabled: options?.enabled ?? true
63
72
  });
64
73
  }
@@ -82,104 +91,6 @@ function formatOrderTotal(order) {
82
91
  return order.total_display_amount || `${order.currency_symbol || "$"}${Number(order.amount).toFixed(2)}`;
83
92
  }
84
93
  //#endregion
85
- //#region ../../orders/ui/src/components/pagination-footer.tsx
86
- function PaginationFooter({ currentPage, totalPages, pageSize, totalItems, onPageChange, cursorPaginationMode, hasNextPage, hasPrevPage, onCursorNext, onCursorPrev }) {
87
- const isCursor = !!cursorPaginationMode;
88
- const isPrevDisabled = isCursor ? !hasPrevPage : currentPage === 1;
89
- const isNextDisabled = isCursor ? !hasNextPage : totalPages === 0 || currentPage === totalPages;
90
- const handlePrevClick = () => {
91
- if (isCursor) onCursorPrev?.();
92
- else onPageChange?.(currentPage - 1);
93
- };
94
- const handleNextClick = () => {
95
- if (isCursor) onCursorNext?.();
96
- else onPageChange?.(currentPage + 1);
97
- };
98
- const displayText = (() => {
99
- const start = totalItems === 0 ? 0 : (currentPage - 1) * pageSize + 1;
100
- const end = Math.min(currentPage * pageSize, totalItems);
101
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
102
- "Showing ",
103
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
104
- className: "font-medium",
105
- children: start
106
- }),
107
- " to",
108
- " ",
109
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
110
- className: "font-medium",
111
- children: end
112
- }),
113
- " of",
114
- " ",
115
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
116
- className: "font-medium",
117
- children: totalItems
118
- }),
119
- " results"
120
- ] });
121
- })();
122
- const buttonBase = "relative inline-flex items-center px-3 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50";
123
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
124
- className: "border-border flex items-center justify-between border-t px-4 py-3 sm:px-6",
125
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
126
- className: "flex flex-1 justify-between sm:hidden",
127
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
128
- type: "button",
129
- onClick: handlePrevClick,
130
- disabled: isPrevDisabled,
131
- className: require_src.cn(buttonBase, "border-border bg-background text-foreground hover:bg-accent rounded-md border"),
132
- children: "Previous"
133
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
134
- type: "button",
135
- onClick: handleNextClick,
136
- disabled: isNextDisabled,
137
- className: require_src.cn(buttonBase, "border-border bg-background text-foreground hover:bg-accent ml-3 rounded-md border"),
138
- children: "Next"
139
- })]
140
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
141
- className: "hidden sm:flex sm:flex-1 sm:items-center sm:justify-between",
142
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
143
- className: "text-muted-foreground text-xs",
144
- children: displayText
145
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("nav", {
146
- "aria-label": "Pagination",
147
- className: "isolate inline-flex -space-x-px rounded-md shadow-sm",
148
- children: [
149
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
150
- type: "button",
151
- onClick: handlePrevClick,
152
- disabled: isPrevDisabled,
153
- className: require_src.cn(buttonBase, "border-border text-muted-foreground hover:bg-accent rounded-l-md border"),
154
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
155
- className: "sr-only",
156
- children: "Previous"
157
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronLeft, { className: "h-4 w-4" })]
158
- }),
159
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
160
- className: "border-border bg-background text-foreground relative inline-flex items-center border px-4 py-2 text-sm font-medium",
161
- children: [
162
- currentPage,
163
- " / ",
164
- totalPages
165
- ]
166
- }),
167
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
168
- type: "button",
169
- onClick: handleNextClick,
170
- disabled: isNextDisabled,
171
- className: require_src.cn(buttonBase, "border-border text-muted-foreground hover:bg-accent rounded-r-md border"),
172
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
173
- className: "sr-only",
174
- children: "Next"
175
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRight, { className: "h-4 w-4" })]
176
- })
177
- ]
178
- })]
179
- })]
180
- });
181
- }
182
- //#endregion
183
94
  //#region ../../orders/ui/src/components/status-badge.tsx
184
95
  const colorStyles = {
185
96
  green: "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",
@@ -241,44 +152,17 @@ function TableColumn({ label, sortable = true, className, onSortClick, sortBy, s
241
152
  //#endregion
242
153
  //#region ../../orders/ui/src/components/orders-list.tsx
243
154
  function OrdersList({ customerId, onOrderClick, onSubscriptionClick, t, pageSize = 10 }) {
244
- const [cursor, setCursor] = (0, react.useState)(null);
245
- const [currentPage, setCurrentPage] = (0, react.useState)(1);
246
155
  const [searchTerm, setSearchTerm] = (0, react.useState)("");
247
- const { data, isLoading } = useCustomerOrders({
156
+ const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage } = useInfiniteCustomerOrders({
248
157
  customerId,
249
158
  limit: pageSize,
250
159
  search: searchTerm || void 0,
251
- cursor: cursor || void 0,
252
160
  sort: "-created_at"
253
161
  }, { enabled: !!customerId });
254
162
  const handleSearchChange = (0, react.useCallback)((term) => {
255
163
  setSearchTerm(term);
256
- setCursor(null);
257
- setCurrentPage(1);
258
164
  }, []);
259
- const handleNextPage = (0, react.useCallback)(() => {
260
- const nextCursor = data?.meta?.pagination?.next_cursor;
261
- if (nextCursor) {
262
- setCursor(nextCursor);
263
- setCurrentPage((p) => p + 1);
264
- }
265
- }, [data?.meta?.pagination?.next_cursor]);
266
- const handlePrevPage = (0, react.useCallback)(() => {
267
- const prevCursor = data?.meta?.pagination?.prev_cursor;
268
- if (prevCursor) {
269
- setCursor(prevCursor);
270
- setCurrentPage((p) => Math.max(1, p - 1));
271
- } else {
272
- setCursor(null);
273
- setCurrentPage(1);
274
- }
275
- }, [data?.meta?.pagination?.prev_cursor]);
276
- const ordersList = data?.orders || [];
277
- const pagination = data?.meta?.pagination;
278
- const totalItems = pagination?.total_count ?? ordersList.length;
279
- const totalPages = pagination?.total_pages ?? Math.max(1, Math.ceil(totalItems / pageSize));
280
- const hasNextPage = !!pagination?.next_cursor;
281
- const hasPrevPage = !!pagination?.prev_cursor;
165
+ const ordersList = data?.pages.flatMap((p) => p.orders) ?? [];
282
166
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
283
167
  className: "border-border overflow-hidden rounded-lg border shadow-sm",
284
168
  children: [
@@ -506,16 +390,10 @@ function OrdersList({ customerId, onOrderClick, onSubscriptionClick, t, pageSize
506
390
  ]
507
391
  })
508
392
  }),
509
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationFooter, {
510
- currentPage,
511
- totalPages,
512
- pageSize,
513
- totalItems,
514
- cursorPaginationMode: true,
515
- hasNextPage,
516
- hasPrevPage,
517
- onCursorNext: handleNextPage,
518
- onCursorPrev: handlePrevPage
393
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_InfiniteScrollSentinel.InfiniteScrollSentinel, {
394
+ onLoadMore: fetchNextPage,
395
+ hasMore: !!hasNextPage,
396
+ isLoading: isFetchingNextPage
519
397
  })
520
398
  ]
521
399
  });
@@ -570,12 +448,6 @@ Object.defineProperty(exports, "OrdersList", {
570
448
  return OrdersList;
571
449
  }
572
450
  });
573
- Object.defineProperty(exports, "PaginationFooter", {
574
- enumerable: true,
575
- get: function() {
576
- return PaginationFooter;
577
- }
578
- });
579
451
  Object.defineProperty(exports, "TableColumn", {
580
452
  enumerable: true,
581
453
  get: function() {
@@ -589,4 +461,4 @@ Object.defineProperty(exports, "usePortalTenantOrder", {
589
461
  }
590
462
  });
591
463
 
592
- //# sourceMappingURL=order-status-badge-DvZns1LY.cjs.map
464
+ //# sourceMappingURL=order-status-badge-Crk9UGpl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status-badge-Crk9UGpl.cjs","names":["cn","TableHead","cn","SearchSort","Skeleton","Table","TableHeader","TableRow","TableBody","TableCell","InfiniteScrollSentinel"],"sources":["../../../orders/core/src/orders-api-context.ts","../../../orders/core/src/provider.tsx","../../../orders/core/src/query-keys.ts","../../../orders/core/src/hooks/use-infinite-customer-orders.ts","../../../orders/core/src/hooks/use-portal-tenant-order.ts","../../../orders/core/src/utils/format-order-total.ts","../../../orders/ui/src/components/status-badge.tsx","../../../orders/ui/src/components/table-column.tsx","../../../orders/ui/src/components/orders-list.tsx","../../../orders/ui/src/lib/format.ts","../../../orders/ui/src/components/order-status-badge.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { OrdersApi } from \"./orders-api\";\n\nconst OrdersApiContext = createContext<OrdersApi | null>(null);\n\nexport const OrdersApiProvider = OrdersApiContext.Provider;\n\nexport function useOrdersApi(): OrdersApi {\n const api = useContext(OrdersApiContext);\n if (!api) {\n throw new Error(\"useOrdersApi must be used within an OrdersCoreProvider\");\n }\n return api;\n}\n","import type { JSX, ReactNode } from \"react\";\nimport type { OrdersApi } from \"./orders-api\";\nimport { OrdersApiProvider } from \"./orders-api-context\";\n\nexport interface OrdersCoreProviderProps {\n api: OrdersApi;\n children: ReactNode;\n}\n\nexport function OrdersCoreProvider({\n api,\n children,\n}: OrdersCoreProviderProps): JSX.Element {\n return <OrdersApiProvider value={api}>{children}</OrdersApiProvider>;\n}\n","import type { orders } from \"./types\";\n\nexport const ordersKeys = {\n all: [\"orders\"] as const,\n list: (params?: orders.FetchOrdersParams) =>\n [...ordersKeys.all, \"list\", params] as const,\n detail: (orderToken: string) =>\n [...ordersKeys.all, \"detail\", orderToken] as const,\n} as const;\n\nexport const portalTenantOrdersKeys = {\n all: [\"portalTenantOrders\"] as const,\n list: (params?: orders.PortalTenantFetchOrdersParams) =>\n [...portalTenantOrdersKeys.all, \"list\", params] as const,\n detail: (id: string | number) =>\n [...portalTenantOrdersKeys.all, \"detail\", id] as const,\n} as const;\n","import { useInfiniteQuery } from \"@tanstack/react-query\";\nimport type { orders } from \"../types\";\nimport { ordersKeys } from \"../query-keys\";\nimport { useOrdersApi } from \"../orders-api-context\";\n\nexport function useInfiniteCustomerOrders(\n params: Omit<orders.FetchOrdersParams, \"cursor\">,\n options?: { enabled?: boolean },\n) {\n const api = useOrdersApi();\n return useInfiniteQuery({\n queryKey: [...ordersKeys.all, \"infinite-list\", params],\n queryFn: ({ pageParam }) => {\n if (!api.fetchCustomerOrders) {\n throw new Error(\n \"fetchCustomerOrders not implemented on this OrdersApi\",\n );\n }\n return api.fetchCustomerOrders({ ...params, cursor: pageParam });\n },\n getNextPageParam: (lastPage) =>\n lastPage.meta?.pagination?.next_cursor ?? undefined,\n initialPageParam: undefined as string | undefined,\n enabled: options?.enabled ?? true,\n });\n}\n","import { useQuery } from \"@tanstack/react-query\";\nimport { portalTenantOrdersKeys } from \"../query-keys\";\nimport { useOrdersApi } from \"../orders-api-context\";\n\nexport function usePortalTenantOrder(\n id: string | number,\n options?: { enabled?: boolean },\n) {\n const api = useOrdersApi();\n return useQuery({\n queryKey: portalTenantOrdersKeys.detail(id),\n queryFn: () => {\n if (!api.fetchOrderById) {\n throw new Error(\"fetchOrderById not implemented on this OrdersApi\");\n }\n return api.fetchOrderById(id);\n },\n enabled: (options?.enabled ?? true) && !!id,\n });\n}\n","import type { orders } from \"../types\";\n\nexport function formatOrderTotal(order: orders.ListOrder): string {\n if (order.order_total_after_points_redemption != null) {\n return `${order.currency_symbol || \"$\"}${Number(\n order.order_total_after_points_redemption,\n ).toFixed(2)}`;\n }\n return (\n order.total_display_amount ||\n `${order.currency_symbol || \"$\"}${Number(order.amount).toFixed(2)}`\n );\n}\n","import { cn } from \"@fluid-app/ui-primitives\";\n\nexport type BadgeColor = \"green\" | \"yellow\" | \"red\" | \"blue\" | \"gray\";\n\ntype BadgeSize = \"xs\" | \"sm\" | \"md\";\n\ninterface StatusBadgeProps {\n color: BadgeColor;\n dot?: boolean;\n size?: BadgeSize;\n className?: string;\n children: React.ReactNode;\n}\n\nconst colorStyles: Record<BadgeColor, string> = {\n green: \"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400\",\n yellow:\n \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400\",\n red: \"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400\",\n blue: \"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400\",\n gray: \"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300\",\n};\n\nconst dotColorStyles: Record<BadgeColor, string> = {\n green: \"bg-green-500\",\n yellow: \"bg-yellow-500\",\n red: \"bg-red-500\",\n blue: \"bg-blue-500\",\n gray: \"bg-gray-500\",\n};\n\nconst sizeStyles: Record<BadgeSize, string> = {\n xs: \"px-1.5 py-0.5 text-[10px]\",\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-1 text-sm\",\n};\n\nexport function StatusBadge({\n color,\n dot,\n size = \"md\",\n className,\n children,\n}: StatusBadgeProps) {\n return (\n <span\n className={cn(\n \"inline-flex items-center gap-1 rounded-full font-medium whitespace-nowrap capitalize\",\n colorStyles[color],\n sizeStyles[size],\n className,\n )}\n >\n {dot && (\n <span\n className={cn(\"h-1.5 w-1.5 rounded-full\", dotColorStyles[color])}\n />\n )}\n {children}\n </span>\n );\n}\n","import { cn, TableHead } from \"@fluid-app/ui-primitives\";\n\ninterface TableColumnProps {\n label: string;\n sortable?: boolean;\n className?: string;\n onSortClick?: (sortBy: string) => void;\n sortBy?: string;\n sortData?: {\n column: string;\n direction: \"asc\" | \"desc\";\n };\n chevronUpIcon?: string;\n chevronDownIcon?: string;\n}\n\nexport function TableColumn({\n label,\n sortable = true,\n className,\n onSortClick,\n sortBy,\n sortData,\n chevronUpIcon,\n chevronDownIcon,\n}: TableColumnProps) {\n const hideUpIcon =\n sortData?.column !== sortBy ||\n (sortData?.column === sortBy && sortData?.direction === \"asc\");\n\n const hideDownIcon =\n sortData?.column !== sortBy ||\n (sortData?.column === sortBy && sortData?.direction === \"desc\");\n\n return (\n <TableHead\n className={cn(\n \"group text-muted-foreground cursor-pointer px-3 text-xs transition-colors duration-200\",\n \"hover:text-primary\",\n className,\n )}\n onClick={() => sortable && onSortClick?.(sortBy ?? \"\")}\n >\n <div className=\"relative flex items-center\">\n {label}\n {sortable && chevronUpIcon && chevronDownIcon && (\n <button\n className={`ml-2 inline-flex flex-col items-center justify-center group-hover:opacity-100 ${\n sortData?.column === sortBy ? \"opacity-100\" : \"opacity-0\"\n } transition-opacity duration-200`}\n >\n <div className=\"flex flex-col\">\n <img\n src={chevronUpIcon}\n alt=\"\"\n width={12}\n height={12}\n className={cn(\n \"text-muted-foreground group-hover:text-primary h-2.5 w-2.5 transition-colors duration-200\",\n hideUpIcon && \"opacity-0\",\n sortData?.column !== sortBy && \"group-hover:opacity-100\",\n )}\n />\n <img\n src={chevronDownIcon}\n alt=\"\"\n width={12}\n height={12}\n className={cn(\n \"text-muted-foreground group-hover:text-primary h-2.5 w-2.5 transition-colors duration-200\",\n hideDownIcon && \"opacity-0\",\n sortData?.column !== sortBy && \"group-hover:opacity-100\",\n )}\n />\n </div>\n </button>\n )}\n </div>\n </TableHead>\n );\n}\n","import { useState, useCallback } from \"react\";\nimport type { orders } from \"@fluid-app/orders-core\";\nimport {\n useInfiniteCustomerOrders,\n formatOrderTotal,\n} from \"@fluid-app/orders-core\";\nimport {\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableHeader,\n TableRow,\n} from \"@fluid-app/ui-primitives\";\nimport { SearchSort } from \"@fluid-app/ui-components/components/SearchSort\";\nimport { InfiniteScrollSentinel } from \"@fluid-app/ui-components/components/InfiniteScrollSentinel\";\nimport { StatusBadge } from \"./status-badge\";\nimport { TableColumn } from \"./table-column\";\n\nexport interface OrdersListProps {\n customerId: number | undefined;\n onOrderClick: (order: orders.ListOrder) => void;\n onSubscriptionClick?: (subscriptionToken: string) => void;\n t: (key: string) => string;\n pageSize?: number;\n}\n\nexport function OrdersList({\n customerId,\n onOrderClick,\n onSubscriptionClick,\n t,\n pageSize = 10,\n}: OrdersListProps) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const params = {\n customerId,\n limit: pageSize,\n search: searchTerm || undefined,\n sort: \"-created_at\",\n };\n\n const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage } =\n useInfiniteCustomerOrders(params, { enabled: !!customerId });\n\n const handleSearchChange = useCallback((term: string) => {\n setSearchTerm(term);\n }, []);\n\n const ordersList = data?.pages.flatMap((p) => p.orders) ?? [];\n\n return (\n <div className=\"border-border overflow-hidden rounded-lg border shadow-sm\">\n <div className=\"flex justify-end p-3\">\n <div className=\"w-full max-w-sm\">\n <SearchSort\n searchValue={searchTerm}\n onSearchChange={handleSearchChange}\n placeholder={t(\"search_orders\")}\n />\n </div>\n </div>\n\n {/* mobile view */}\n <div className=\"block md:hidden\">\n {isLoading ? (\n Array(5)\n .fill(0)\n .map((_, index) => (\n <div\n key={`skeleton-${index}`}\n className=\"border-border border-b p-4\"\n >\n <div className=\"flex space-x-3\">\n <Skeleton className=\"h-12 w-12 rounded-md\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n </div>\n ))\n ) : ordersList.length === 0 ? (\n <div className=\"text-muted-foreground px-3 py-8 text-center text-sm\">\n {searchTerm ? t(\"no_matching_orders\") : t(\"no_orders_found\")}\n </div>\n ) : (\n ordersList.map((order) => (\n <div\n key={order.id}\n className=\"border-border hover:bg-accent cursor-pointer border-b p-4 transition-colors duration-200 ease-in-out last:border-b-0\"\n onClick={() => onOrderClick(order)}\n >\n <div className=\"flex items-start space-x-3\">\n {order.first_item?.image_url ? (\n <img\n src={order.first_item.image_url}\n alt={t(\"no_image_available\")}\n width={48}\n height={48}\n className=\"h-12 w-12 flex-shrink-0 rounded-md object-cover\"\n />\n ) : (\n <div className=\"bg-border h-12 w-12 flex-shrink-0 rounded-md\" />\n )}\n <div className=\"w-0 min-w-0 flex-1\">\n {order.first_item?.title ? (\n <p className=\"text-foreground truncate text-sm font-medium\">\n {order.first_item.title}\n </p>\n ) : (\n <div className=\"bg-muted rounded-lg p-2\">\n <div className=\"text-muted-foreground text-xs\">\n {t(\"this_product_no_longer_exists\")}\n </div>\n </div>\n )}\n {order.subscription && (\n <StatusBadge color=\"blue\" size=\"xs\" className=\"mt-1\">\n {t(\"subscription\")}\n </StatusBadge>\n )}\n {order.subscription?.subscription_token &&\n onSubscriptionClick && (\n <button\n type=\"button\"\n className=\"text-foreground hover:text-foreground/80 mt-1 inline-block text-xs transition-colors duration-200 hover:underline\"\n onClick={(e) => {\n e.stopPropagation();\n onSubscriptionClick(\n order.subscription!.subscription_token,\n );\n }}\n >\n {t(\"view_subscription\")}\n </button>\n )}\n <div className=\"mt-2 grid grid-cols-3 gap-x-4 gap-y-1 text-sm\">\n <div>\n <span className=\"text-muted-foreground block text-xs\">\n {t(\"date\")}\n </span>\n <span className=\"text-muted-foreground\">\n {new Date(order.created_at).toLocaleDateString()}\n </span>\n </div>\n <div>\n <span className=\"text-muted-foreground block text-xs\">\n {t(\"status\")}\n </span>\n <StatusBadge\n color={\n order.order_status === \"completed\" ||\n order.order_status === \"delivered\" ||\n order.order_status === \"shipped\"\n ? \"green\"\n : order.order_status === \"cancelled\" ||\n order.order_status === \"returned\"\n ? \"red\"\n : \"yellow\"\n }\n size=\"xs\"\n >\n {order.order_status}\n </StatusBadge>\n </div>\n <div>\n <span className=\"text-muted-foreground block text-xs\">\n {t(\"total\")}\n </span>\n <span className=\"text-foreground font-medium\">\n {formatOrderTotal(order)}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n ))\n )}\n </div>\n\n {/* desktop view */}\n <div className=\"hidden md:block\">\n <Table className=\"min-w-full table-fixed\">\n <colgroup>\n <col className=\"w-2/5 min-w-[240px]\" />\n <col className=\"w-[20%] min-w-[100px]\" />\n <col className=\"w-[20%] min-w-[100px]\" />\n <col className=\"w-[20%] min-w-[100px]\" />\n </colgroup>\n <TableHeader className=\"bg-muted\">\n <TableRow className=\"hover:bg-muted h-10\">\n <TableColumn label={t(\"product\")} sortable={false} />\n <TableColumn label={t(\"date\")} sortable={false} />\n <TableColumn label={t(\"status\")} sortable={false} />\n <TableColumn label={t(\"total\")} sortable={false} />\n </TableRow>\n </TableHeader>\n <TableBody className=\"bg-background\">\n {isLoading ? (\n Array(5)\n .fill(0)\n .map((_, index) => (\n <TableRow key={`skeleton-${index}`}>\n <TableCell className=\"px-3 py-4\">\n <div className=\"flex items-center space-x-2\">\n <Skeleton className=\"h-9 w-9 rounded-md\" />\n <Skeleton className=\"h-4 w-32\" />\n </div>\n </TableCell>\n <TableCell className=\"px-3 py-4\">\n <Skeleton className=\"h-4 w-24\" />\n </TableCell>\n <TableCell className=\"px-3 py-4\">\n <Skeleton className=\"h-4 w-20\" />\n </TableCell>\n <TableCell className=\"px-3 py-4\">\n <Skeleton className=\"h-4 w-24\" />\n </TableCell>\n </TableRow>\n ))\n ) : ordersList.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={4}\n className=\"text-muted-foreground px-3 py-8 text-center text-sm\"\n >\n {searchTerm ? t(\"no_matching_orders\") : t(\"no_orders_found\")}\n </TableCell>\n </TableRow>\n ) : (\n ordersList.map((order) => (\n <TableRow\n key={order.id}\n className=\"cursor-pointer\"\n onClick={() => onOrderClick(order)}\n >\n <TableCell className=\"text-muted-foreground px-3 py-4 text-sm\">\n <div className=\"flex max-w-[280px] flex-row items-center space-x-3\">\n {order.first_item?.image_url ? (\n <img\n src={order.first_item.image_url}\n alt={t(\"no_image_available\")}\n width={42}\n height={42}\n className=\"h-[42px] w-[42px] flex-shrink-0 rounded-md object-cover\"\n />\n ) : (\n <div className=\"bg-border ml-1 h-9 w-9 flex-shrink-0 rounded-md\" />\n )}\n <div className=\"flex min-w-0 flex-col space-y-1\">\n <div className=\"flex items-center space-x-2\">\n {order.first_item?.title ? (\n <span className=\"text-foreground truncate text-sm font-medium\">\n {order.first_item.title}\n </span>\n ) : (\n <div className=\"bg-muted w-full rounded-lg p-2\">\n <div className=\"text-muted-foreground text-xs\">\n {t(\"this_product_no_longer_exists\")}\n </div>\n </div>\n )}\n {order.subscription && (\n <StatusBadge\n color=\"blue\"\n size=\"xs\"\n className=\"flex-shrink-0\"\n >\n {t(\"subscription\")}\n </StatusBadge>\n )}\n </div>\n {order.subscription?.subscription_token &&\n onSubscriptionClick && (\n <button\n type=\"button\"\n className=\"text-foreground hover:text-foreground/80 text-left text-xs transition-colors duration-200 hover:underline\"\n onClick={(e) => {\n e.stopPropagation();\n onSubscriptionClick(\n order.subscription!.subscription_token,\n );\n }}\n >\n {t(\"view_subscription\")}\n </button>\n )}\n </div>\n </div>\n </TableCell>\n <TableCell className=\"text-muted-foreground px-3 py-4 text-sm whitespace-nowrap\">\n {new Date(order.created_at).toLocaleDateString()}\n </TableCell>\n <TableCell className=\"px-3 py-4 text-sm\">\n <StatusBadge\n color={\n order.order_status === \"completed\" ||\n order.order_status === \"delivered\" ||\n order.order_status === \"shipped\"\n ? \"green\"\n : order.order_status === \"cancelled\" ||\n order.order_status === \"returned\"\n ? \"red\"\n : \"yellow\"\n }\n size=\"xs\"\n >\n {order.order_status}\n </StatusBadge>\n </TableCell>\n <TableCell className=\"text-foreground px-3 py-4 text-sm whitespace-nowrap\">\n {formatOrderTotal(order)}\n </TableCell>\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n </div>\n\n <InfiniteScrollSentinel\n onLoadMore={fetchNextPage}\n hasMore={!!hasNextPage}\n isLoading={isFetchingNextPage}\n />\n </div>\n );\n}\n","export function startCase(str: string | undefined | null): string {\n if (!str) return \"\";\n return str.replace(/_/g, \" \").replace(/\\b\\w/g, (char) => char.toUpperCase());\n}\n\nexport function formatCurrency(symbol: string, value: string | number): string {\n return `${symbol}${Number(value).toFixed(2)}`;\n}\n","import { StatusBadge, type BadgeColor } from \"./status-badge\";\nimport { startCase } from \"../lib/format\";\n\nconst statusColorMap: Record<string, BadgeColor> = {\n paid: \"green\",\n fulfilled: \"green\",\n delivered: \"green\",\n complete: \"green\",\n pending: \"yellow\",\n unfulfilled: \"yellow\",\n partially_fulfilled: \"yellow\",\n processing: \"yellow\",\n refunded: \"red\",\n cancelled: \"red\",\n failed: \"red\",\n voided: \"red\",\n};\n\nexport interface OrderStatusBadgeProps {\n status: string;\n className?: string;\n}\n\nexport function OrderStatusBadge({ status, className }: OrderStatusBadgeProps) {\n const color = statusColorMap[status] ?? \"gray\";\n return (\n <StatusBadge color={color} dot size=\"sm\" className={className}>\n {startCase(status)}\n </StatusBadge>\n );\n}\n"],"mappings":"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"}