@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
@@ -6,9 +6,9 @@ const require_ScreenHeaderContext = require("./ScreenHeaderContext-BXgWydjB.cjs"
6
6
  const require_dist$3 = require("./dist-CN_rfvBt.cjs");
7
7
  const require_es = require("./es-C37CagK2.cjs");
8
8
  const require_SearchSort = require("./SearchSort-CUDMZIkf.cjs");
9
- const require_dist$4 = require("./dist-Ib6pM5r3.cjs");
9
+ const require_dist$4 = require("./dist-bL3uiYn3.cjs");
10
10
  const require_dist$5 = require("./dist-Ck1Xpuzh.cjs");
11
- const require_PortalProductsApiProvider = require("./PortalProductsApiProvider-CTLKKRqy.cjs");
11
+ const require_PortalProductsApiProvider = require("./PortalProductsApiProvider-CRN-i8Rh.cjs");
12
12
  let react = require("react");
13
13
  react = require_chunk.__toESM(react);
14
14
  let _tanstack_react_query = require("@tanstack/react-query");
@@ -980,6 +980,61 @@ function ShareLinkSection({ shareLink, loading, displayTitle, isVideo, relateabl
980
980
  });
981
981
  }
982
982
  //#endregion
983
+ //#region ../../shareables/ui/src/utils/download-file.ts
984
+ async function downloadFile(url, filename) {
985
+ const res = await fetch(url);
986
+ if (!res.ok) throw new Error(`Download failed: ${res.status} ${res.statusText}`);
987
+ const blob = await res.blob();
988
+ const objectUrl = URL.createObjectURL(blob);
989
+ const a = document.createElement("a");
990
+ a.href = objectUrl;
991
+ a.download = filename;
992
+ a.click();
993
+ URL.revokeObjectURL(objectUrl);
994
+ }
995
+ //#endregion
996
+ //#region ../../shareables/ui/src/components/SharePage/AssetActions.tsx
997
+ function AssetActions({ downloadUrl, displayTitle, shareLink, shareLinkLoading, isVideo, relateableId, relateableType }) {
998
+ const { onFileDownload } = useShareablesUI();
999
+ const [isDownloading, setIsDownloading] = (0, react.useState)(false);
1000
+ const handleDownload = (0, react.useCallback)(async () => {
1001
+ if (!downloadUrl || isDownloading) return;
1002
+ if (onFileDownload) {
1003
+ onFileDownload(downloadUrl, displayTitle || "asset");
1004
+ return;
1005
+ }
1006
+ setIsDownloading(true);
1007
+ try {
1008
+ await downloadFile(downloadUrl, displayTitle || "asset");
1009
+ } catch {
1010
+ window.open(downloadUrl, "_blank", "noopener,noreferrer");
1011
+ } finally {
1012
+ setIsDownloading(false);
1013
+ }
1014
+ }, [
1015
+ downloadUrl,
1016
+ displayTitle,
1017
+ onFileDownload,
1018
+ isDownloading
1019
+ ]);
1020
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [downloadUrl && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1021
+ onClick: handleDownload,
1022
+ disabled: isDownloading,
1023
+ className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1024
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1025
+ className: "text-sm font-medium",
1026
+ children: "Download Asset"
1027
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Download, { className: "h-4 w-4" })]
1028
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ShareLinkSection, {
1029
+ shareLink,
1030
+ loading: shareLinkLoading,
1031
+ displayTitle,
1032
+ isVideo,
1033
+ relateableId,
1034
+ relateableType
1035
+ })] });
1036
+ }
1037
+ //#endregion
983
1038
  //#region ../../shareables/ui/src/components/ShareablesModal/MarketingAssetsGrid.tsx
984
1039
  const PLACEHOLDER_IMAGE = "https://assets.fluid.app/fluid-admin/images/placeholder.png";
985
1040
  const FILTER_TABS = [
@@ -1166,7 +1221,7 @@ var MarketingAssetsGrid_default = react.default.memo(MarketingAssetsGrid);
1166
1221
  function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortalProduct, onNavigate, onBack }) {
1167
1222
  const api = useShareablesApi();
1168
1223
  const client = useShareablesClient();
1169
- const { navigate, showToast, onFileDownload } = useShareablesUI();
1224
+ const { navigate } = useShareablesUI();
1170
1225
  const [activeTab, setActiveTab] = (0, react.useState)("All");
1171
1226
  const [isDescriptionExpanded, setIsDescriptionExpanded] = (0, react.useState)(false);
1172
1227
  const { data: portalProductResponse, isLoading: isLoadingPortalProduct } = (0, _tanstack_react_query.useQuery)({
@@ -1255,22 +1310,6 @@ function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortal
1255
1310
  media_format: item.media_format
1256
1311
  }));
1257
1312
  const hasMedia = (productMediaResponse?.media?.length || 0) > 0;
1258
- const handleDownload = (0, react.useCallback)(() => {
1259
- if (!productImage) {
1260
- showToast({
1261
- title: "No downloadable asset available",
1262
- type: "error"
1263
- });
1264
- return;
1265
- }
1266
- if (onFileDownload) onFileDownload(productImage, displayTitle || "product");
1267
- else window.open(productImage, "_blank");
1268
- }, [
1269
- productImage,
1270
- displayTitle,
1271
- onFileDownload,
1272
- showToast
1273
- ]);
1274
1313
  const handleMediaItemClick = (0, react.useCallback)((mediaItem) => {
1275
1314
  onNavigate?.("media", String(mediaItem.id));
1276
1315
  }, [onNavigate]);
@@ -1353,18 +1392,11 @@ function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortal
1353
1392
  })
1354
1393
  ]
1355
1394
  }),
1356
- productImage && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1357
- onClick: handleDownload,
1358
- className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1359
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1360
- className: "text-sm font-medium",
1361
- children: "Download Asset"
1362
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Download, { className: "h-4 w-4" })]
1363
- }),
1364
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ShareLinkSection, {
1365
- shareLink: shareLinkError ? null : shareLink || null,
1366
- loading: shareLinkLoading,
1395
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AssetActions, {
1396
+ downloadUrl: productImage || null,
1367
1397
  displayTitle,
1398
+ shareLink: shareLinkError ? null : shareLink || null,
1399
+ shareLinkLoading,
1368
1400
  isVideo: false,
1369
1401
  relateableId: Number(productId),
1370
1402
  relateableType: "Product"
@@ -1746,19 +1778,6 @@ function MediaListingScreen({ onNavigate }) {
1746
1778
  });
1747
1779
  }
1748
1780
  //#endregion
1749
- //#region ../../shareables/ui/src/utils/download-file.ts
1750
- async function downloadFile(url, filename) {
1751
- const res = await fetch(url);
1752
- if (!res.ok) throw new Error(`Download failed: ${res.status} ${res.statusText}`);
1753
- const blob = await res.blob();
1754
- const objectUrl = URL.createObjectURL(blob);
1755
- const a = document.createElement("a");
1756
- a.href = objectUrl;
1757
- a.download = filename;
1758
- a.click();
1759
- URL.revokeObjectURL(objectUrl);
1760
- }
1761
- //#endregion
1762
1781
  //#region ../../shareables/ui/src/components/screens/MediaDetailScreen.tsx
1763
1782
  function getBadgeLabel(kind) {
1764
1783
  switch (kind) {
@@ -1771,7 +1790,7 @@ function getBadgeLabel(kind) {
1771
1790
  function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1772
1791
  const api = useShareablesApi();
1773
1792
  const repContext = useRepContext();
1774
- const { navigate, showToast, onFileDownload, readOnly } = useShareablesUI();
1793
+ const { navigate, readOnly } = useShareablesUI();
1775
1794
  const [isDescriptionExpanded, setIsDescriptionExpanded] = (0, react.useState)(false);
1776
1795
  const { data: mediaResponse, isLoading } = (0, _tanstack_react_query.useQuery)({
1777
1796
  queryKey: shareablesKeys.media.detail(Number(mediaId), repContext),
@@ -1824,22 +1843,6 @@ function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1824
1843
  const strippedDescription = stripTags(mediaItem?.description?.body || mediaItem?.stripped || "");
1825
1844
  const shouldShowReadMore = strippedDescription.length > 150;
1826
1845
  const downloadUrl = isVideo ? displayVideo : mediaItem?.pdf_url || displayImage;
1827
- const handleDownload = (0, react.useCallback)(async () => {
1828
- if (!downloadUrl) return;
1829
- if (onFileDownload) {
1830
- onFileDownload(downloadUrl, displayTitle || "media");
1831
- return;
1832
- }
1833
- try {
1834
- await downloadFile(downloadUrl, displayTitle || "media");
1835
- } catch {
1836
- window.open(downloadUrl, "_blank", "noopener,noreferrer");
1837
- }
1838
- }, [
1839
- downloadUrl,
1840
- displayTitle,
1841
- onFileDownload
1842
- ]);
1843
1846
  if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1844
1847
  className: "flex items-center justify-center py-16",
1845
1848
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Spinner, { className: "size-8" })
@@ -1894,18 +1897,11 @@ function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1894
1897
  children: isDescriptionExpanded ? "Read less" : "Read more"
1895
1898
  })]
1896
1899
  }),
1897
- downloadUrl && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1898
- onClick: handleDownload,
1899
- className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1900
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1901
- className: "text-sm font-medium",
1902
- children: "Download Asset"
1903
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Download, { className: "h-4 w-4" })]
1904
- }),
1905
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ShareLinkSection, {
1906
- shareLink: shareLinkError ? null : shareLink || null,
1907
- loading: shareLinkLoading,
1900
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AssetActions, {
1901
+ downloadUrl: downloadUrl || null,
1908
1902
  displayTitle,
1903
+ shareLink: shareLinkError ? null : shareLink || null,
1904
+ shareLinkLoading,
1909
1905
  isVideo,
1910
1906
  relateableId: Number(mediaId),
1911
1907
  relateableType: "Medium"
@@ -9416,10 +9412,11 @@ function PlaylistDetailScreen({ playlistId, onNavigate }) {
9416
9412
  children: isDescriptionExpanded ? "Read less" : "Read more"
9417
9413
  })]
9418
9414
  }),
9419
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ShareLinkSection, {
9420
- shareLink: shareLinkError ? null : shareLink || null,
9421
- loading: shareLinkLoading,
9415
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AssetActions, {
9416
+ downloadUrl: null,
9422
9417
  displayTitle,
9418
+ shareLink: shareLinkError ? null : shareLink || null,
9419
+ shareLinkLoading,
9423
9420
  isVideo,
9424
9421
  relateableId: Number(playlistId),
9425
9422
  relateableType: "Library"
@@ -11714,4 +11711,4 @@ Object.defineProperty(exports, "usePortalContentContext", {
11714
11711
  }
11715
11712
  });
11716
11713
 
11717
- //# sourceMappingURL=PortalContentApiProvider-CH87-pE5.cjs.map
11714
+ //# sourceMappingURL=PortalContentApiProvider-Cb-DGxBo.cjs.map