@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
@@ -5,9 +5,9 @@ import { $ as DropdownMenuSeparator, $t as BreadcrumbPage, A as Select, At as Ch
5
5
  import { n as useScreenHeaderActions, r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-BD6Zo-ep.mjs";
6
6
  import { a as useEditor, o as Placeholder, r as EditorContent, t as StarterKit } from "./dist-tv6N_HgZ.mjs";
7
7
  import { t as SearchSort } from "./SearchSort-TmRTxK16.mjs";
8
- import { n as TextAlign, t as Underline } from "./dist-DhOQb8en.mjs";
8
+ import { n as TextAlign, t as Underline } from "./dist-wzcShuuv.mjs";
9
9
  import { a as verticalListSortingStrategy, c as PointerSensor, d as useSensors, f as CSS, i as useSortable, l as closestCenter, n as arrayMove, o as DndContext, r as sortableKeyboardCoordinates, s as KeyboardSensor, t as SortableContext, u as useSensor } from "./sortable.esm-DFTEWOHN.mjs";
10
- import { o as usePortalProductsApi } from "./PortalProductsApiProvider-CY6CUq6x.mjs";
10
+ import { o as usePortalProductsApi } from "./PortalProductsApiProvider-D0jul2Fh.mjs";
11
11
  import React, { PureComponent, createContext, createRef, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
12
12
  import { keepPreviousData, useInfiniteQuery, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
13
13
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -978,6 +978,61 @@ function ShareLinkSection({ shareLink, loading, displayTitle, isVideo, relateabl
978
978
  });
979
979
  }
980
980
  //#endregion
981
+ //#region ../../shareables/ui/src/utils/download-file.ts
982
+ async function downloadFile(url, filename) {
983
+ const res = await fetch(url);
984
+ if (!res.ok) throw new Error(`Download failed: ${res.status} ${res.statusText}`);
985
+ const blob = await res.blob();
986
+ const objectUrl = URL.createObjectURL(blob);
987
+ const a = document.createElement("a");
988
+ a.href = objectUrl;
989
+ a.download = filename;
990
+ a.click();
991
+ URL.revokeObjectURL(objectUrl);
992
+ }
993
+ //#endregion
994
+ //#region ../../shareables/ui/src/components/SharePage/AssetActions.tsx
995
+ function AssetActions({ downloadUrl, displayTitle, shareLink, shareLinkLoading, isVideo, relateableId, relateableType }) {
996
+ const { onFileDownload } = useShareablesUI();
997
+ const [isDownloading, setIsDownloading] = useState(false);
998
+ const handleDownload = useCallback(async () => {
999
+ if (!downloadUrl || isDownloading) return;
1000
+ if (onFileDownload) {
1001
+ onFileDownload(downloadUrl, displayTitle || "asset");
1002
+ return;
1003
+ }
1004
+ setIsDownloading(true);
1005
+ try {
1006
+ await downloadFile(downloadUrl, displayTitle || "asset");
1007
+ } catch {
1008
+ window.open(downloadUrl, "_blank", "noopener,noreferrer");
1009
+ } finally {
1010
+ setIsDownloading(false);
1011
+ }
1012
+ }, [
1013
+ downloadUrl,
1014
+ displayTitle,
1015
+ onFileDownload,
1016
+ isDownloading
1017
+ ]);
1018
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [downloadUrl && /* @__PURE__ */ jsxs(Button, {
1019
+ onClick: handleDownload,
1020
+ disabled: isDownloading,
1021
+ className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1022
+ children: [/* @__PURE__ */ jsx("span", {
1023
+ className: "text-sm font-medium",
1024
+ children: "Download Asset"
1025
+ }), /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" })]
1026
+ }), /* @__PURE__ */ jsx(ShareLinkSection, {
1027
+ shareLink,
1028
+ loading: shareLinkLoading,
1029
+ displayTitle,
1030
+ isVideo,
1031
+ relateableId,
1032
+ relateableType
1033
+ })] });
1034
+ }
1035
+ //#endregion
981
1036
  //#region ../../shareables/ui/src/components/ShareablesModal/MarketingAssetsGrid.tsx
982
1037
  const PLACEHOLDER_IMAGE = "https://assets.fluid.app/fluid-admin/images/placeholder.png";
983
1038
  const FILTER_TABS = [
@@ -1164,7 +1219,7 @@ var MarketingAssetsGrid_default = React.memo(MarketingAssetsGrid);
1164
1219
  function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortalProduct, onNavigate, onBack }) {
1165
1220
  const api = useShareablesApi();
1166
1221
  const client = useShareablesClient();
1167
- const { navigate, showToast, onFileDownload } = useShareablesUI();
1222
+ const { navigate } = useShareablesUI();
1168
1223
  const [activeTab, setActiveTab] = useState("All");
1169
1224
  const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);
1170
1225
  const { data: portalProductResponse, isLoading: isLoadingPortalProduct } = useQuery({
@@ -1253,22 +1308,6 @@ function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortal
1253
1308
  media_format: item.media_format
1254
1309
  }));
1255
1310
  const hasMedia = (productMediaResponse?.media?.length || 0) > 0;
1256
- const handleDownload = useCallback(() => {
1257
- if (!productImage) {
1258
- showToast({
1259
- title: "No downloadable asset available",
1260
- type: "error"
1261
- });
1262
- return;
1263
- }
1264
- if (onFileDownload) onFileDownload(productImage, displayTitle || "product");
1265
- else window.open(productImage, "_blank");
1266
- }, [
1267
- productImage,
1268
- displayTitle,
1269
- onFileDownload,
1270
- showToast
1271
- ]);
1272
1311
  const handleMediaItemClick = useCallback((mediaItem) => {
1273
1312
  onNavigate?.("media", String(mediaItem.id));
1274
1313
  }, [onNavigate]);
@@ -1351,18 +1390,11 @@ function ProductDetailScreen({ productId, countryCode, fetchProduct: fetchPortal
1351
1390
  })
1352
1391
  ]
1353
1392
  }),
1354
- productImage && /* @__PURE__ */ jsxs(Button, {
1355
- onClick: handleDownload,
1356
- className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1357
- children: [/* @__PURE__ */ jsx("span", {
1358
- className: "text-sm font-medium",
1359
- children: "Download Asset"
1360
- }), /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" })]
1361
- }),
1362
- /* @__PURE__ */ jsx(ShareLinkSection, {
1363
- shareLink: shareLinkError ? null : shareLink || null,
1364
- loading: shareLinkLoading,
1393
+ /* @__PURE__ */ jsx(AssetActions, {
1394
+ downloadUrl: productImage || null,
1365
1395
  displayTitle,
1396
+ shareLink: shareLinkError ? null : shareLink || null,
1397
+ shareLinkLoading,
1366
1398
  isVideo: false,
1367
1399
  relateableId: Number(productId),
1368
1400
  relateableType: "Product"
@@ -1744,19 +1776,6 @@ function MediaListingScreen({ onNavigate }) {
1744
1776
  });
1745
1777
  }
1746
1778
  //#endregion
1747
- //#region ../../shareables/ui/src/utils/download-file.ts
1748
- async function downloadFile(url, filename) {
1749
- const res = await fetch(url);
1750
- if (!res.ok) throw new Error(`Download failed: ${res.status} ${res.statusText}`);
1751
- const blob = await res.blob();
1752
- const objectUrl = URL.createObjectURL(blob);
1753
- const a = document.createElement("a");
1754
- a.href = objectUrl;
1755
- a.download = filename;
1756
- a.click();
1757
- URL.revokeObjectURL(objectUrl);
1758
- }
1759
- //#endregion
1760
1779
  //#region ../../shareables/ui/src/components/screens/MediaDetailScreen.tsx
1761
1780
  function getBadgeLabel(kind) {
1762
1781
  switch (kind) {
@@ -1769,7 +1788,7 @@ function getBadgeLabel(kind) {
1769
1788
  function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1770
1789
  const api = useShareablesApi();
1771
1790
  const repContext = useRepContext();
1772
- const { navigate, showToast, onFileDownload, readOnly } = useShareablesUI();
1791
+ const { navigate, readOnly } = useShareablesUI();
1773
1792
  const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);
1774
1793
  const { data: mediaResponse, isLoading } = useQuery({
1775
1794
  queryKey: shareablesKeys.media.detail(Number(mediaId), repContext),
@@ -1822,22 +1841,6 @@ function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1822
1841
  const strippedDescription = stripTags(mediaItem?.description?.body || mediaItem?.stripped || "");
1823
1842
  const shouldShowReadMore = strippedDescription.length > 150;
1824
1843
  const downloadUrl = isVideo ? displayVideo : mediaItem?.pdf_url || displayImage;
1825
- const handleDownload = useCallback(async () => {
1826
- if (!downloadUrl) return;
1827
- if (onFileDownload) {
1828
- onFileDownload(downloadUrl, displayTitle || "media");
1829
- return;
1830
- }
1831
- try {
1832
- await downloadFile(downloadUrl, displayTitle || "media");
1833
- } catch {
1834
- window.open(downloadUrl, "_blank", "noopener,noreferrer");
1835
- }
1836
- }, [
1837
- downloadUrl,
1838
- displayTitle,
1839
- onFileDownload
1840
- ]);
1841
1844
  if (isLoading) return /* @__PURE__ */ jsx("div", {
1842
1845
  className: "flex items-center justify-center py-16",
1843
1846
  children: /* @__PURE__ */ jsx(Spinner, { className: "size-8" })
@@ -1892,18 +1895,11 @@ function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
1892
1895
  children: isDescriptionExpanded ? "Read less" : "Read more"
1893
1896
  })]
1894
1897
  }),
1895
- downloadUrl && /* @__PURE__ */ jsxs(Button, {
1896
- onClick: handleDownload,
1897
- className: "bg-foreground text-background hover:bg-foreground/70 flex h-10 w-full items-center justify-between rounded-lg px-4 transition-all",
1898
- children: [/* @__PURE__ */ jsx("span", {
1899
- className: "text-sm font-medium",
1900
- children: "Download Asset"
1901
- }), /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" })]
1902
- }),
1903
- /* @__PURE__ */ jsx(ShareLinkSection, {
1904
- shareLink: shareLinkError ? null : shareLink || null,
1905
- loading: shareLinkLoading,
1898
+ /* @__PURE__ */ jsx(AssetActions, {
1899
+ downloadUrl: downloadUrl || null,
1906
1900
  displayTitle,
1901
+ shareLink: shareLinkError ? null : shareLink || null,
1902
+ shareLinkLoading,
1907
1903
  isVideo,
1908
1904
  relateableId: Number(mediaId),
1909
1905
  relateableType: "Medium"
@@ -9414,10 +9410,11 @@ function PlaylistDetailScreen({ playlistId, onNavigate }) {
9414
9410
  children: isDescriptionExpanded ? "Read less" : "Read more"
9415
9411
  })]
9416
9412
  }),
9417
- /* @__PURE__ */ jsx(ShareLinkSection, {
9418
- shareLink: shareLinkError ? null : shareLink || null,
9419
- loading: shareLinkLoading,
9413
+ /* @__PURE__ */ jsx(AssetActions, {
9414
+ downloadUrl: null,
9420
9415
  displayTitle,
9416
+ shareLink: shareLinkError ? null : shareLink || null,
9417
+ shareLinkLoading,
9421
9418
  isVideo,
9422
9419
  relateableId: Number(playlistId),
9423
9420
  relateableType: "Library"
@@ -11662,4 +11659,4 @@ function PortalContentApiProvider({ children }) {
11662
11659
  //#endregion
11663
11660
  export { ShareablesApp as a, ShareablesCoreProvider as c, ProductsApp as i, usePortalContentContext as n, useFilePickerApi as o, toggleFavorite as r, ShareablesUIProvider as s, PortalContentApiProvider as t };
11664
11661
 
11665
- //# sourceMappingURL=PortalContentApiProvider-DGkP0Vk6.mjs.map
11662
+ //# sourceMappingURL=PortalContentApiProvider-Bwi7FOTs.mjs.map