@fluid-app/portal-sdk 0.1.237 → 0.1.239

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 (134) hide show
  1. package/dist/{CalendarWidget-BaGML5Xh.mjs → CalendarWidget-BXxNxHDV.mjs} +2 -2
  2. package/dist/{CalendarWidget-BaGML5Xh.mjs.map → CalendarWidget-BXxNxHDV.mjs.map} +1 -1
  3. package/dist/{CalendarWidget-oGK122s9.cjs → CalendarWidget-VjQXZW8B.cjs} +2 -2
  4. package/dist/{CalendarWidget-oGK122s9.cjs.map → CalendarWidget-VjQXZW8B.cjs.map} +1 -1
  5. package/dist/{CardWidget-CqYjGkq-.mjs → CardWidget-BNkMlxQ3.mjs} +2 -2
  6. package/dist/{CardWidget-CqYjGkq-.mjs.map → CardWidget-BNkMlxQ3.mjs.map} +1 -1
  7. package/dist/{CardWidget-CSLSlKM6.cjs → CardWidget-C3I9OwgS.cjs} +2 -2
  8. package/dist/{CardWidget-CSLSlKM6.cjs.map → CardWidget-C3I9OwgS.cjs.map} +1 -1
  9. package/dist/{CardWidget-DjhK0yr-.cjs → CardWidget-CraWMttj.cjs} +3 -3
  10. package/dist/{CarouselWidget-DlxYQB5j.cjs → CarouselWidget-CiKlooUF.cjs} +2 -2
  11. package/dist/{CarouselWidget-DlxYQB5j.cjs.map → CarouselWidget-CiKlooUF.cjs.map} +1 -1
  12. package/dist/{CarouselWidget-CdQhlRrW.mjs → CarouselWidget-p8Z6L-G5.mjs} +2 -2
  13. package/dist/{CarouselWidget-CdQhlRrW.mjs.map → CarouselWidget-p8Z6L-G5.mjs.map} +1 -1
  14. package/dist/{CatchUpWidget-BQjtjcGR.mjs → CatchUpWidget-B9DQlzd_.mjs} +2 -2
  15. package/dist/{CatchUpWidget-BQjtjcGR.mjs.map → CatchUpWidget-B9DQlzd_.mjs.map} +1 -1
  16. package/dist/{CatchUpWidget-B1Muaurg.cjs → CatchUpWidget-SY7hOHk6.cjs} +2 -2
  17. package/dist/{CatchUpWidget-B1Muaurg.cjs.map → CatchUpWidget-SY7hOHk6.cjs.map} +1 -1
  18. package/dist/{ContainerWidget-Cjwrq2MS.cjs → ContainerWidget-BXpdj06u.cjs} +2 -2
  19. package/dist/{ContainerWidget-Cjwrq2MS.cjs.map → ContainerWidget-BXpdj06u.cjs.map} +1 -1
  20. package/dist/{ContainerWidget-DYThUtiZ.mjs → ContainerWidget-CpwvcxFm.mjs} +2 -2
  21. package/dist/{ContainerWidget-DYThUtiZ.mjs.map → ContainerWidget-CpwvcxFm.mjs.map} +1 -1
  22. package/dist/ContainerWidget-CyfPYEAv.cjs +8 -0
  23. package/dist/{FluidProvider-BazvsIwu.mjs → FluidProvider-DL5rChtj.mjs} +67 -84
  24. package/dist/FluidProvider-DL5rChtj.mjs.map +1 -0
  25. package/dist/{FluidProvider-Dxn7Ehiz.cjs → FluidProvider-D_PHVlUU.cjs} +67 -84
  26. package/dist/FluidProvider-D_PHVlUU.cjs.map +1 -0
  27. package/dist/{ImageWidget-xcE0sFf-.cjs → ImageWidget-CbQVxMe3.cjs} +2 -2
  28. package/dist/{ImageWidget-xcE0sFf-.cjs.map → ImageWidget-CbQVxMe3.cjs.map} +1 -1
  29. package/dist/{ImageWidget-CFTpbu8X.mjs → ImageWidget-vNWT_O1E.mjs} +2 -2
  30. package/dist/{ImageWidget-CFTpbu8X.mjs.map → ImageWidget-vNWT_O1E.mjs.map} +1 -1
  31. package/dist/{LayoutWidget-CK-SvFQL.cjs → LayoutWidget-BIfNHlVE.cjs} +2 -2
  32. package/dist/{LayoutWidget-CK-SvFQL.cjs.map → LayoutWidget-BIfNHlVE.cjs.map} +1 -1
  33. package/dist/{LayoutWidget-Cx5ZyXSU.mjs → LayoutWidget-CC3oK78H.mjs} +2 -2
  34. package/dist/{LayoutWidget-Cx5ZyXSU.mjs.map → LayoutWidget-CC3oK78H.mjs.map} +1 -1
  35. package/dist/{LayoutWidget-DuueFNAS.cjs → LayoutWidget-LdF_cKrB.cjs} +3 -3
  36. package/dist/{LinkWidget-B14FTQP7.cjs → LinkWidget-BoR7nVbH.cjs} +2 -2
  37. package/dist/{LinkWidget-B14FTQP7.cjs.map → LinkWidget-BoR7nVbH.cjs.map} +1 -1
  38. package/dist/{LinkWidget-CQHmKO-O.mjs → LinkWidget-CO-Cxf7Z.mjs} +2 -2
  39. package/dist/{LinkWidget-CQHmKO-O.mjs.map → LinkWidget-CO-Cxf7Z.mjs.map} +1 -1
  40. package/dist/{LinkWidget-CPmE8gpd.cjs → LinkWidget-M9YzMJT8.cjs} +2 -2
  41. package/dist/{ListWidget-YvCp7XDq.cjs → ListWidget-CuSjvwEw.cjs} +3 -3
  42. package/dist/{ListWidget-wBDnXWxa.cjs → ListWidget-CzljZ1LA.cjs} +3 -3
  43. package/dist/{ListWidget-wBDnXWxa.cjs.map → ListWidget-CzljZ1LA.cjs.map} +1 -1
  44. package/dist/{ListWidget-BnyD2Hpc.mjs → ListWidget-f88QhcGI.mjs} +3 -3
  45. package/dist/{ListWidget-BnyD2Hpc.mjs.map → ListWidget-f88QhcGI.mjs.map} +1 -1
  46. package/dist/{MediaRenderer-CfgWd0cC.cjs → MediaRenderer-CvN8Ku0i.cjs} +4 -4
  47. package/dist/MediaRenderer-CvN8Ku0i.cjs.map +1 -0
  48. package/dist/{MediaRenderer-CqUpv3St.mjs → MediaRenderer-DMdb_5xw.mjs} +4 -4
  49. package/dist/MediaRenderer-DMdb_5xw.mjs.map +1 -0
  50. package/dist/{MessagingScreen-40YCQbX9.cjs → MessagingScreen-Dkh3Dsp7.cjs} +2 -2
  51. package/dist/{MessagingScreen-40YCQbX9.cjs.map → MessagingScreen-Dkh3Dsp7.cjs.map} +1 -1
  52. package/dist/{MessagingScreen-CrdiB4M3.cjs → MessagingScreen-Dxy2VQbO.cjs} +22 -22
  53. package/dist/{MessagingScreen-RItZgONw.mjs → MessagingScreen-mt1u3Bs1.mjs} +2 -2
  54. package/dist/{MessagingScreen-RItZgONw.mjs.map → MessagingScreen-mt1u3Bs1.mjs.map} +1 -1
  55. package/dist/{MySiteWidget-B0dc_7Dc.mjs → MySiteWidget-BnjPrQxE.mjs} +23 -30
  56. package/dist/MySiteWidget-BnjPrQxE.mjs.map +1 -0
  57. package/dist/{MySiteWidget-BkqAS0aY.cjs → MySiteWidget-C8eFWHOT.cjs} +23 -30
  58. package/dist/MySiteWidget-C8eFWHOT.cjs.map +1 -0
  59. package/dist/{NestedWidget-C_2XwnW0.cjs → NestedWidget-CEoAO2sp.cjs} +3 -3
  60. package/dist/{NestedWidget-C_2XwnW0.cjs.map → NestedWidget-CEoAO2sp.cjs.map} +1 -1
  61. package/dist/{NestedWidget-CXIvsJdD.cjs → NestedWidget-CMCZjV6t.cjs} +3 -3
  62. package/dist/{NestedWidget-WJoWOFda.mjs → NestedWidget-RuyrOrFn.mjs} +3 -3
  63. package/dist/{NestedWidget-WJoWOFda.mjs.map → NestedWidget-RuyrOrFn.mjs.map} +1 -1
  64. package/dist/{PointsWidget-DoUljaNY.mjs → PointsWidget-C2KB4k48.mjs} +2 -2
  65. package/dist/{PointsWidget-DoUljaNY.mjs.map → PointsWidget-C2KB4k48.mjs.map} +1 -1
  66. package/dist/{PointsWidget-CLUWrFjZ.cjs → PointsWidget-DLp-PYus.cjs} +2 -2
  67. package/dist/{PointsWidget-CLUWrFjZ.cjs.map → PointsWidget-DLp-PYus.cjs.map} +1 -1
  68. package/dist/{ProfileScreen-CEKbhSRz.cjs → ProfileScreen-BMe-dQi7.cjs} +2 -2
  69. package/dist/{ProfileScreen-CEKbhSRz.cjs.map → ProfileScreen-BMe-dQi7.cjs.map} +1 -1
  70. package/dist/{ProfileScreen-Dex8VHSB.cjs → ProfileScreen-ChCZZ91o.cjs} +22 -22
  71. package/dist/{ProfileScreen-CeD1jq89.mjs → ProfileScreen-_1GlBr7z.mjs} +2 -2
  72. package/dist/{ProfileScreen-CeD1jq89.mjs.map → ProfileScreen-_1GlBr7z.mjs.map} +1 -1
  73. package/dist/{RecentActivityWidget-C6RwlUUw.cjs → RecentActivityWidget-BNW9aFT4.cjs} +2 -2
  74. package/dist/{RecentActivityWidget-C6RwlUUw.cjs.map → RecentActivityWidget-BNW9aFT4.cjs.map} +1 -1
  75. package/dist/{RecentActivityWidget-zQxtUECm.mjs → RecentActivityWidget-DelPdiwR.mjs} +2 -2
  76. package/dist/{RecentActivityWidget-zQxtUECm.mjs.map → RecentActivityWidget-DelPdiwR.mjs.map} +1 -1
  77. package/dist/{ScreenRenderer-Bk23YOtN.mjs → ScreenRenderer-ClYgfQf_.mjs} +2 -2
  78. package/dist/{ScreenRenderer-Bk23YOtN.mjs.map → ScreenRenderer-ClYgfQf_.mjs.map} +1 -1
  79. package/dist/{ScreenRenderer-aYfgv6mR.cjs → ScreenRenderer-Ct1w4PNu.cjs} +2 -2
  80. package/dist/{ScreenRenderer-aYfgv6mR.cjs.map → ScreenRenderer-Ct1w4PNu.cjs.map} +1 -1
  81. package/dist/{ShareablesScreen-Bt0E1aya.cjs → ShareablesScreen-A69L0Nok.cjs} +136 -108
  82. package/dist/ShareablesScreen-A69L0Nok.cjs.map +1 -0
  83. package/dist/{ShareablesScreen-LSyiDa6q.cjs → ShareablesScreen-BUYG-mjj.cjs} +1 -1
  84. package/dist/{ShareablesScreen-D3Hfqg9-.mjs → ShareablesScreen-sieWBlAl.mjs} +136 -108
  85. package/dist/ShareablesScreen-sieWBlAl.mjs.map +1 -0
  86. package/dist/{ShopScreen-dAe71cdL.mjs → ShopScreen-BBfOte5o.mjs} +2 -2
  87. package/dist/{ShopScreen-dAe71cdL.mjs.map → ShopScreen-BBfOte5o.mjs.map} +1 -1
  88. package/dist/{ShopScreen-Cgro0M1d.cjs → ShopScreen-CZ_290EP.cjs} +22 -22
  89. package/dist/{ShopScreen-BiqZPyiB.cjs → ShopScreen-DWLGH2gt.cjs} +2 -2
  90. package/dist/{ShopScreen-BiqZPyiB.cjs.map → ShopScreen-DWLGH2gt.cjs.map} +1 -1
  91. package/dist/{TableWidget-D4jQN-to.cjs → TableWidget-BIn1oRiJ.cjs} +4 -4
  92. package/dist/TableWidget-BIn1oRiJ.cjs.map +1 -0
  93. package/dist/{TableWidget-DWAYgQcl.cjs → TableWidget-C--8TSX7.cjs} +3 -3
  94. package/dist/{TableWidget-B0CRdzNf.mjs → TableWidget-dfUvhH0S.mjs} +4 -4
  95. package/dist/TableWidget-dfUvhH0S.mjs.map +1 -0
  96. package/dist/{ToDoWidget-BbeXt99H.cjs → ToDoWidget-Bjoan2Rm.cjs} +2 -2
  97. package/dist/{ToDoWidget-BbeXt99H.cjs.map → ToDoWidget-Bjoan2Rm.cjs.map} +1 -1
  98. package/dist/{ToDoWidget-VSaNmtWH.mjs → ToDoWidget-CYDsZA0Z.mjs} +2 -2
  99. package/dist/{ToDoWidget-VSaNmtWH.mjs.map → ToDoWidget-CYDsZA0Z.mjs.map} +1 -1
  100. package/dist/{ToDoWidget-YHmoDbVU.cjs → ToDoWidget-C_CvWdLi.cjs} +2 -2
  101. package/dist/{VideoWidget-Bc6ZAAaA.cjs → VideoWidget-CDcV0J5W.cjs} +2 -2
  102. package/dist/{VideoWidget-Bc6ZAAaA.cjs.map → VideoWidget-CDcV0J5W.cjs.map} +1 -1
  103. package/dist/{VideoWidget-DcWm239R.mjs → VideoWidget-Dj9wue7j.mjs} +2 -2
  104. package/dist/{VideoWidget-DcWm239R.mjs.map → VideoWidget-Dj9wue7j.mjs.map} +1 -1
  105. package/dist/WidgetInteractionContext-B1mELhQ_.mjs +28 -0
  106. package/dist/{WidgetInteractionContext-D0TJv70C.mjs.map → WidgetInteractionContext-B1mELhQ_.mjs.map} +1 -1
  107. package/dist/WidgetInteractionContext-DvPmzGqB.cjs +41 -0
  108. package/dist/{WidgetInteractionContext-Bs3LkFFH.cjs.map → WidgetInteractionContext-DvPmzGqB.cjs.map} +1 -1
  109. package/dist/index.cjs +84 -55
  110. package/dist/index.cjs.map +1 -1
  111. package/dist/index.d.cts.map +1 -1
  112. package/dist/index.d.mts.map +1 -1
  113. package/dist/index.mjs +84 -55
  114. package/dist/index.mjs.map +1 -1
  115. package/dist/{registry-context-BDH0vNHR.mjs → registry-context-BahYMRqn.mjs} +12 -20
  116. package/dist/registry-context-BahYMRqn.mjs.map +1 -0
  117. package/dist/{registry-context-C7-RLxVt.cjs → registry-context-bf52ZIJX.cjs} +12 -20
  118. package/dist/registry-context-bf52ZIJX.cjs.map +1 -0
  119. package/package.json +12 -12
  120. package/dist/ContainerWidget-NFBqSeRV.cjs +0 -8
  121. package/dist/FluidProvider-BazvsIwu.mjs.map +0 -1
  122. package/dist/FluidProvider-Dxn7Ehiz.cjs.map +0 -1
  123. package/dist/MediaRenderer-CfgWd0cC.cjs.map +0 -1
  124. package/dist/MediaRenderer-CqUpv3St.mjs.map +0 -1
  125. package/dist/MySiteWidget-B0dc_7Dc.mjs.map +0 -1
  126. package/dist/MySiteWidget-BkqAS0aY.cjs.map +0 -1
  127. package/dist/ShareablesScreen-Bt0E1aya.cjs.map +0 -1
  128. package/dist/ShareablesScreen-D3Hfqg9-.mjs.map +0 -1
  129. package/dist/TableWidget-B0CRdzNf.mjs.map +0 -1
  130. package/dist/TableWidget-D4jQN-to.cjs.map +0 -1
  131. package/dist/WidgetInteractionContext-Bs3LkFFH.cjs +0 -18
  132. package/dist/WidgetInteractionContext-D0TJv70C.mjs +0 -11
  133. package/dist/registry-context-BDH0vNHR.mjs.map +0 -1
  134. package/dist/registry-context-C7-RLxVt.cjs.map +0 -1
@@ -9,7 +9,7 @@ require("./es-UfEBhcZD.cjs");
9
9
  require("./SearchSort-CeJqRK2c.cjs");
10
10
  require("./dist-myuZC8sf.cjs");
11
11
  require("./dist-BQZkLGL6.cjs");
12
- const require_ShareablesScreen = require("./ShareablesScreen-Bt0E1aya.cjs");
12
+ const require_ShareablesScreen = require("./ShareablesScreen-A69L0Nok.cjs");
13
13
  require("./PortalProductsApiProvider-DL8nl7To.cjs");
14
14
  exports.ShareablesScreen = require_ShareablesScreen.ShareablesScreen;
15
15
  exports.shareablesScreenPropertySchema = require_ShareablesScreen.shareablesScreenPropertySchema;
@@ -103,6 +103,14 @@ const shareablesKeys = {
103
103
  id
104
104
  ]
105
105
  },
106
+ mediaProducts: {
107
+ all: ["mediaProducts"],
108
+ list: (mediaId) => [
109
+ "mediaProducts",
110
+ "list",
111
+ mediaId
112
+ ]
113
+ },
106
114
  shareLinks: {
107
115
  all: ["shareLinks"],
108
116
  link: (type, id, contactId, locale) => [
@@ -1950,6 +1958,108 @@ function MediaListingScreen(_props) {
1950
1958
  })] });
1951
1959
  }
1952
1960
  //#endregion
1961
+ //#region ../../shareables/ui/src/components/SharePage/TaggedProductsList.tsx
1962
+ const DEFAULT_IMAGE$5 = "https://assets.fluid.app/fluid-admin/images/we-commerce/we-commerce.png";
1963
+ function resolvePrice(product) {
1964
+ let price = product.display_price || product.price;
1965
+ if (product.variants && product.variants.length > 0) {
1966
+ const firstVariant = product.variants[0];
1967
+ if (firstVariant?.display_price) price = firstVariant.display_price;
1968
+ else if (firstVariant?.price) price = firstVariant.price;
1969
+ }
1970
+ if (!price) return null;
1971
+ const numPrice = parseFloat(price.replace(/[^0-9.-]/g, ""));
1972
+ if (Number.isNaN(numPrice) || numPrice <= 0) return null;
1973
+ if (price.includes("$")) return price;
1974
+ return `$${numPrice.toFixed(2)}`;
1975
+ }
1976
+ function TaggedProductsList({ products, onProductClick }) {
1977
+ const renderImage = useRenderImage();
1978
+ const handleProductClick = (productId, e) => {
1979
+ e.stopPropagation();
1980
+ if (productId == null) return;
1981
+ onProductClick?.(productId);
1982
+ };
1983
+ if (!products || products.length === 0) return /* @__PURE__ */ jsxs("div", {
1984
+ className: "mb-6",
1985
+ children: [/* @__PURE__ */ jsx("div", {
1986
+ className: "mb-4 px-4",
1987
+ children: /* @__PURE__ */ jsx("h2", {
1988
+ className: "text-foreground text-[15px] leading-[1.4] font-semibold",
1989
+ children: "Tagged Products (0)"
1990
+ })
1991
+ }), /* @__PURE__ */ jsx("div", {
1992
+ className: "flex flex-1 items-center justify-center px-6 py-12",
1993
+ children: /* @__PURE__ */ jsxs("div", {
1994
+ className: "text-center",
1995
+ children: [
1996
+ /* @__PURE__ */ jsx("div", {
1997
+ className: "text-muted-foreground mb-2",
1998
+ children: /* @__PURE__ */ jsx(ShoppingBag, { className: "mx-auto h-12 w-12" })
1999
+ }),
2000
+ /* @__PURE__ */ jsx("div", {
2001
+ className: "text-foreground mb-1 text-sm",
2002
+ children: "No Tagged Products"
2003
+ }),
2004
+ /* @__PURE__ */ jsx("div", {
2005
+ className: "text-muted-foreground text-xs",
2006
+ children: "No products are tagged in this playlist"
2007
+ })
2008
+ ]
2009
+ })
2010
+ })]
2011
+ });
2012
+ return /* @__PURE__ */ jsxs("div", {
2013
+ className: "mb-6",
2014
+ children: [/* @__PURE__ */ jsx("div", {
2015
+ className: "mb-4 px-4",
2016
+ children: /* @__PURE__ */ jsxs("h2", {
2017
+ className: "text-foreground text-[15px] leading-[1.4] font-semibold",
2018
+ children: [
2019
+ "Tagged Products (",
2020
+ products.length,
2021
+ ")"
2022
+ ]
2023
+ })
2024
+ }), /* @__PURE__ */ jsx("div", {
2025
+ className: "px-4",
2026
+ children: /* @__PURE__ */ jsx("div", {
2027
+ className: "scrollbar-none flex gap-4 overflow-x-auto pb-2",
2028
+ children: products.map((product, index) => {
2029
+ const imageUrl = product.images?.[0]?.image_url || product.image_url || product.compressed_image_url || DEFAULT_IMAGE$5;
2030
+ const title = product.title || "Untitled";
2031
+ const displayPrice = resolvePrice(product);
2032
+ return /* @__PURE__ */ jsxs("button", {
2033
+ onClick: (e) => handleProductClick(product.id, e),
2034
+ className: "group bg-muted hover:bg-muted/60 flex w-[168px] shrink-0 flex-col gap-2 rounded-lg p-3 text-left transition-all",
2035
+ children: [/* @__PURE__ */ jsx("div", {
2036
+ className: "bg-background relative h-[168px] w-full overflow-hidden rounded-lg",
2037
+ children: renderImage({
2038
+ src: imageUrl,
2039
+ alt: title,
2040
+ fill: true,
2041
+ className: "object-cover"
2042
+ })
2043
+ }), /* @__PURE__ */ jsxs("div", {
2044
+ className: "flex min-w-0 flex-col gap-1",
2045
+ children: [/* @__PURE__ */ jsxs("h3", {
2046
+ className: "text-foreground flex items-start gap-1.5 text-[15px] leading-[1.4] font-semibold",
2047
+ children: [/* @__PURE__ */ jsx("span", {
2048
+ className: "line-clamp-2",
2049
+ children: title
2050
+ }), /* @__PURE__ */ jsx(ArrowUpRight, { className: "text-foreground mt-0.5 h-3 w-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100" })]
2051
+ }), displayPrice && /* @__PURE__ */ jsx("div", {
2052
+ className: "text-foreground text-[15px] leading-[1.4] font-normal",
2053
+ children: displayPrice
2054
+ })]
2055
+ })]
2056
+ }, product.id ?? index);
2057
+ })
2058
+ })
2059
+ })]
2060
+ });
2061
+ }
2062
+ //#endregion
1953
2063
  //#region ../../shareables/ui/src/components/screens/MediaDetailScreen.tsx
1954
2064
  function getBadgeLabel(kind) {
1955
2065
  switch (kind) {
@@ -1959,15 +2069,28 @@ function getBadgeLabel(kind) {
1959
2069
  default: return "Media";
1960
2070
  }
1961
2071
  }
1962
- function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
2072
+ function MediaDetailScreen({ mediaId, onNavigate, onBack }) {
1963
2073
  const api = useShareablesApi();
1964
2074
  const repContext = useRepContext();
1965
- const { navigate, readOnly } = useShareablesUI();
2075
+ const { navigate, readOnly, mediaProductsApi } = useShareablesUI();
1966
2076
  const { data: mediaResponse, isLoading } = useQuery({
1967
2077
  queryKey: shareablesKeys.media.detail(Number(mediaId), repContext),
1968
2078
  queryFn: () => api.media.getMediaById(Number(mediaId))
1969
2079
  });
1970
2080
  const { shareLink, loading: shareLinkLoading, error: shareLinkError } = useShareLink({ id: Number(mediaId) }, "Medium");
2081
+ const { data: mediaProductsData } = useQuery({
2082
+ queryKey: shareablesKeys.mediaProducts.list(Number(mediaId)),
2083
+ queryFn: () => mediaProductsApi.listMediaProducts(Number(mediaId)),
2084
+ enabled: !!mediaProductsApi
2085
+ });
2086
+ const taggedProducts = useMemo(() => mediaProductsData?.media_products?.map((p) => ({
2087
+ id: p.id,
2088
+ title: p.name ?? null,
2089
+ image_url: p.image_url ?? null,
2090
+ price: p.price ?? null,
2091
+ slug: p.slug ?? null,
2092
+ sku: p.sku ?? null
2093
+ })) ?? [], [mediaProductsData]);
1971
2094
  const mediaItem = mediaResponse?.media;
1972
2095
  const displayTitle = mediaItem?.title || "";
1973
2096
  const displayImage = mediaItem?.image_url || "";
@@ -2043,7 +2166,14 @@ function MediaDetailScreen({ mediaId, onNavigate: _onNavigate, onBack }) {
2043
2166
  isVideo,
2044
2167
  relateableId: Number(mediaId),
2045
2168
  relateableType: "Medium"
2046
- })
2169
+ }),
2170
+ children: taggedProducts.length > 0 && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Separator, { className: "bg-foreground my-4" }), /* @__PURE__ */ jsx("div", {
2171
+ className: "bg-background rounded-lg",
2172
+ children: /* @__PURE__ */ jsx(TaggedProductsList, {
2173
+ products: taggedProducts,
2174
+ onProductClick: (productId) => onNavigate?.("product", String(productId))
2175
+ })
2176
+ })] })
2047
2177
  });
2048
2178
  }
2049
2179
  //#endregion
@@ -9487,7 +9617,7 @@ function MediaCreateScreen({ onNavigate, onBack }) {
9487
9617
  }
9488
9618
  //#endregion
9489
9619
  //#region ../../shareables/ui/src/components/playlists/PlaylistCard.tsx
9490
- const DEFAULT_IMAGE$5 = "https://assets.fluid.app/fluid-admin/images/we-commerce/we-commerce.png";
9620
+ const DEFAULT_IMAGE$4 = "https://assets.fluid.app/fluid-admin/images/we-commerce/we-commerce.png";
9491
9621
  function PlaylistCard({ title, imageUrl, href, itemCount, isFavorited = false, isSelectable = false, isSelected = false, canEdit = false, onSelectionChange, onToggleFavorite, onEdit, onDelete }) {
9492
9622
  const { navigate } = useShareablesUI();
9493
9623
  const renderImage = useRenderImage();
@@ -9512,7 +9642,7 @@ function PlaylistCard({ title, imageUrl, href, itemCount, isFavorited = false, i
9512
9642
  className: "bg-muted relative aspect-square overflow-hidden rounded-lg",
9513
9643
  children: [
9514
9644
  renderImage({
9515
- src: imgError ? DEFAULT_IMAGE$5 : imageUrl || DEFAULT_IMAGE$5,
9645
+ src: imgError ? DEFAULT_IMAGE$4 : imageUrl || DEFAULT_IMAGE$4,
9516
9646
  alt: title,
9517
9647
  fill: true,
9518
9648
  className: "object-cover transition-transform group-hover:scale-105",
@@ -9967,108 +10097,6 @@ const NAVIGABLE_RELATEABLE_TYPES = new Set([
9967
10097
  "Medium"
9968
10098
  ]);
9969
10099
  //#endregion
9970
- //#region ../../shareables/ui/src/components/SharePage/TaggedProductsList.tsx
9971
- const DEFAULT_IMAGE$4 = "https://assets.fluid.app/fluid-admin/images/we-commerce/we-commerce.png";
9972
- function resolvePrice(product) {
9973
- let price = product.display_price || product.price;
9974
- if (product.variants && product.variants.length > 0) {
9975
- const firstVariant = product.variants[0];
9976
- if (firstVariant?.display_price) price = firstVariant.display_price;
9977
- else if (firstVariant?.price) price = firstVariant.price;
9978
- }
9979
- if (!price) return null;
9980
- const numPrice = parseFloat(price.replace(/[^0-9.-]/g, ""));
9981
- if (Number.isNaN(numPrice) || numPrice <= 0) return null;
9982
- if (price.includes("$")) return price;
9983
- return `$${numPrice.toFixed(2)}`;
9984
- }
9985
- function TaggedProductsList({ products, onProductClick }) {
9986
- const renderImage = useRenderImage();
9987
- const handleProductClick = (productId, e) => {
9988
- e.stopPropagation();
9989
- if (productId == null) return;
9990
- onProductClick?.(productId);
9991
- };
9992
- if (!products || products.length === 0) return /* @__PURE__ */ jsxs("div", {
9993
- className: "mb-6",
9994
- children: [/* @__PURE__ */ jsx("div", {
9995
- className: "mb-4 px-4",
9996
- children: /* @__PURE__ */ jsx("h2", {
9997
- className: "text-foreground text-[15px] leading-[1.4] font-semibold",
9998
- children: "Tagged Products (0)"
9999
- })
10000
- }), /* @__PURE__ */ jsx("div", {
10001
- className: "flex flex-1 items-center justify-center px-6 py-12",
10002
- children: /* @__PURE__ */ jsxs("div", {
10003
- className: "text-center",
10004
- children: [
10005
- /* @__PURE__ */ jsx("div", {
10006
- className: "text-muted-foreground mb-2",
10007
- children: /* @__PURE__ */ jsx(ShoppingBag, { className: "mx-auto h-12 w-12" })
10008
- }),
10009
- /* @__PURE__ */ jsx("div", {
10010
- className: "text-foreground mb-1 text-sm",
10011
- children: "No Tagged Products"
10012
- }),
10013
- /* @__PURE__ */ jsx("div", {
10014
- className: "text-muted-foreground text-xs",
10015
- children: "No products are tagged in this playlist"
10016
- })
10017
- ]
10018
- })
10019
- })]
10020
- });
10021
- return /* @__PURE__ */ jsxs("div", {
10022
- className: "mb-6",
10023
- children: [/* @__PURE__ */ jsx("div", {
10024
- className: "mb-4 px-4",
10025
- children: /* @__PURE__ */ jsxs("h2", {
10026
- className: "text-foreground text-[15px] leading-[1.4] font-semibold",
10027
- children: [
10028
- "Tagged Products (",
10029
- products.length,
10030
- ")"
10031
- ]
10032
- })
10033
- }), /* @__PURE__ */ jsx("div", {
10034
- className: "px-4",
10035
- children: /* @__PURE__ */ jsx("div", {
10036
- className: "scrollbar-none flex gap-4 overflow-x-auto pb-2",
10037
- children: products.map((product, index) => {
10038
- const imageUrl = product.images?.[0]?.image_url || product.image_url || product.compressed_image_url || DEFAULT_IMAGE$4;
10039
- const title = product.title || "Untitled";
10040
- const displayPrice = resolvePrice(product);
10041
- return /* @__PURE__ */ jsxs("button", {
10042
- onClick: (e) => handleProductClick(product.id, e),
10043
- className: "group bg-muted hover:bg-muted/60 flex w-[168px] shrink-0 flex-col gap-2 rounded-lg p-3 text-left transition-all",
10044
- children: [/* @__PURE__ */ jsx("div", {
10045
- className: "bg-background relative h-[168px] w-full overflow-hidden rounded-lg",
10046
- children: renderImage({
10047
- src: imageUrl,
10048
- alt: title,
10049
- fill: true,
10050
- className: "object-cover"
10051
- })
10052
- }), /* @__PURE__ */ jsxs("div", {
10053
- className: "flex min-w-0 flex-col gap-1",
10054
- children: [/* @__PURE__ */ jsxs("h3", {
10055
- className: "text-foreground flex items-start gap-1.5 text-[15px] leading-[1.4] font-semibold",
10056
- children: [/* @__PURE__ */ jsx("span", {
10057
- className: "line-clamp-2",
10058
- children: title
10059
- }), /* @__PURE__ */ jsx(ArrowUpRight, { className: "text-foreground mt-0.5 h-3 w-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100" })]
10060
- }), displayPrice && /* @__PURE__ */ jsx("div", {
10061
- className: "text-foreground text-[15px] leading-[1.4] font-normal",
10062
- children: displayPrice
10063
- })]
10064
- })]
10065
- }, product.id ?? index);
10066
- })
10067
- })
10068
- })]
10069
- });
10070
- }
10071
- //#endregion
10072
10100
  //#region ../../shareables/ui/src/components/SharePage/PlaylistItemsList.tsx
10073
10101
  const DEFAULT_IMAGE$3 = "https://assets.fluid.app/fluid-admin/images/we-commerce/we-commerce.png";
10074
10102
  function getItemType(type, kind) {
@@ -13457,4 +13485,4 @@ const shareablesScreenPropertySchema = {
13457
13485
  //#endregion
13458
13486
  export { ShareablesScreen_exports as n, shareablesScreenPropertySchema as r, ShareablesScreen as t };
13459
13487
 
13460
- //# sourceMappingURL=ShareablesScreen-D3Hfqg9-.mjs.map
13488
+ //# sourceMappingURL=ShareablesScreen-sieWBlAl.mjs.map