@fluid-app/portal-sdk 0.1.367 → 0.1.368

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 (56) hide show
  1. package/dist/{FluidProvider-CKmCaFub.cjs → FluidProvider-CXqHtKMw.cjs} +3 -3
  2. package/dist/{FluidProvider-CKmCaFub.cjs.map → FluidProvider-CXqHtKMw.cjs.map} +1 -1
  3. package/dist/{FluidProvider-CztaeoZL.mjs → FluidProvider-YssKGmXj.mjs} +3 -3
  4. package/dist/{FluidProvider-CztaeoZL.mjs.map → FluidProvider-YssKGmXj.mjs.map} +1 -1
  5. package/dist/{MessagingScreen-Cz47JOvi.cjs → MessagingScreen-BYDYBjwV.cjs} +3 -3
  6. package/dist/{MessagingScreen-0cNGHReM.cjs → MessagingScreen-CJBAdOPp.cjs} +2 -2
  7. package/dist/{MessagingScreen-0cNGHReM.cjs.map → MessagingScreen-CJBAdOPp.cjs.map} +1 -1
  8. package/dist/{MessagingScreen-BkruuTwv.mjs → MessagingScreen-DImdW2jI.mjs} +2 -2
  9. package/dist/{MessagingScreen-BkruuTwv.mjs.map → MessagingScreen-DImdW2jI.mjs.map} +1 -1
  10. package/dist/{MessagingScreen-C8XHBT4q.mjs → MessagingScreen-DdFiAFdf.mjs} +3 -3
  11. package/dist/{NestedWidget-DrRazqvX.cjs → NestedWidget-0YTK04F7.cjs} +26 -17
  12. package/dist/NestedWidget-0YTK04F7.cjs.map +1 -0
  13. package/dist/{NestedWidget-Cgsv6RTh.mjs → NestedWidget-BXnLrul1.mjs} +26 -17
  14. package/dist/NestedWidget-BXnLrul1.mjs.map +1 -0
  15. package/dist/{NestedWidget-DpCvLNRl.cjs → NestedWidget-C9ypn_4q.cjs} +1 -1
  16. package/dist/{OrdersScreen-DMzbr6H7.mjs → OrdersScreen-B0jx8cnV.mjs} +3 -3
  17. package/dist/{OrdersScreen-fY13DxDW.cjs → OrdersScreen-DSLwMt-8.cjs} +3 -3
  18. package/dist/{OrdersScreen-gMh1RSU1.cjs → OrdersScreen-DunUiDwt.cjs} +2 -2
  19. package/dist/{OrdersScreen-gMh1RSU1.cjs.map → OrdersScreen-DunUiDwt.cjs.map} +1 -1
  20. package/dist/{OrdersScreen-DsQqt4qM.mjs → OrdersScreen-DyQOtPM9.mjs} +2 -2
  21. package/dist/{OrdersScreen-DsQqt4qM.mjs.map → OrdersScreen-DyQOtPM9.mjs.map} +1 -1
  22. package/dist/{ProfileScreen-krWbnTCL.mjs → ProfileScreen-6zq3b24t.mjs} +3 -3
  23. package/dist/{ProfileScreen-krWbnTCL.mjs.map → ProfileScreen-6zq3b24t.mjs.map} +1 -1
  24. package/dist/{ProfileScreen-B2fDaEd2.cjs → ProfileScreen-BG7J9E1o.cjs} +3 -3
  25. package/dist/{ProfileScreen-B2fDaEd2.cjs.map → ProfileScreen-BG7J9E1o.cjs.map} +1 -1
  26. package/dist/{ProfileScreen-CYolxWbw.mjs → ProfileScreen-CQRzoZA5.mjs} +4 -4
  27. package/dist/{ProfileScreen-CrQ1t4xC.cjs → ProfileScreen-CpHWYc0b.cjs} +4 -4
  28. package/dist/{ShopScreen-BosF9GYb.mjs → ShopScreen-BdE_Wx1n.mjs} +3 -3
  29. package/dist/{ShopScreen-CyDAFe-O.cjs → ShopScreen-CrITAsuX.cjs} +3 -3
  30. package/dist/{ShopScreen-TjkdGDqA.cjs → ShopScreen-DAsoH_nU.cjs} +2 -2
  31. package/dist/{ShopScreen-TjkdGDqA.cjs.map → ShopScreen-DAsoH_nU.cjs.map} +1 -1
  32. package/dist/{ShopScreen-DlUOUOnJ.mjs → ShopScreen-Dh4amrNp.mjs} +2 -2
  33. package/dist/{ShopScreen-DlUOUOnJ.mjs.map → ShopScreen-Dh4amrNp.mjs.map} +1 -1
  34. package/dist/{SubscriptionsScreen-C_sIL3Qp.mjs → SubscriptionsScreen-B0Aup6Pw.mjs} +3 -3
  35. package/dist/{SubscriptionsScreen-C_sIL3Qp.mjs.map → SubscriptionsScreen-B0Aup6Pw.mjs.map} +1 -1
  36. package/dist/{SubscriptionsScreen-B5-XgmRs.cjs → SubscriptionsScreen-CxYdU6Sr.cjs} +3 -3
  37. package/dist/{SubscriptionsScreen-B5-XgmRs.cjs.map → SubscriptionsScreen-CxYdU6Sr.cjs.map} +1 -1
  38. package/dist/{SubscriptionsScreen-33ZWzTC_.mjs → SubscriptionsScreen-D0QQAQAn.mjs} +4 -4
  39. package/dist/{SubscriptionsScreen-D4oef3ub.cjs → SubscriptionsScreen-fHeWecM6.cjs} +4 -4
  40. package/dist/index.cjs +19 -19
  41. package/dist/index.d.cts.map +1 -1
  42. package/dist/index.d.mts.map +1 -1
  43. package/dist/index.mjs +19 -19
  44. package/dist/preview/preview-entry.cjs +3 -3
  45. package/dist/preview/preview-entry.mjs +3 -3
  46. package/dist/{use-portal-card-add-3ds-flow-BXIP3nVI.mjs → use-portal-card-add-3ds-flow-B-HZhV7O.mjs} +2 -2
  47. package/dist/{use-portal-card-add-3ds-flow-BXIP3nVI.mjs.map → use-portal-card-add-3ds-flow-B-HZhV7O.mjs.map} +1 -1
  48. package/dist/{use-portal-card-add-3ds-flow-Dd_sgVYj.cjs → use-portal-card-add-3ds-flow-Bu-6T-WF.cjs} +2 -2
  49. package/dist/{use-portal-card-add-3ds-flow-Dd_sgVYj.cjs.map → use-portal-card-add-3ds-flow-Bu-6T-WF.cjs.map} +1 -1
  50. package/dist/{widget-package-utils-CTC5WJJq.cjs → widget-package-utils-04GgcH5M.cjs} +2 -2
  51. package/dist/{widget-package-utils-CTC5WJJq.cjs.map → widget-package-utils-04GgcH5M.cjs.map} +1 -1
  52. package/dist/{widget-package-utils-Cr6iaMPm.mjs → widget-package-utils-08fEY11c.mjs} +2 -2
  53. package/dist/{widget-package-utils-Cr6iaMPm.mjs.map → widget-package-utils-08fEY11c.mjs.map} +1 -1
  54. package/package.json +13 -13
  55. package/dist/NestedWidget-Cgsv6RTh.mjs.map +0 -1
  56. package/dist/NestedWidget-DrRazqvX.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import "./use-account-D70N5avv.mjs";
2
- import "./FluidProvider-CztaeoZL.mjs";
2
+ import "./FluidProvider-YssKGmXj.mjs";
3
3
  import "./ScreenRenderer-CKu-Jc1I.mjs";
4
4
  import "./use-optional-store-BPICvfcP.mjs";
5
5
  import "./mysite-api-context-CoLr9vIf.mjs";
@@ -32,7 +32,7 @@ import "./MediaRenderer-Dl1imLwm.mjs";
32
32
  import "./CarouselWidget-BTbRZPWn.mjs";
33
33
  import "./CatchUpWidget-qNrDLfXJ.mjs";
34
34
  import "./src-BPYu8cbo.mjs";
35
- import { n as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-BkruuTwv.mjs";
35
+ import { n as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-DImdW2jI.mjs";
36
36
  import "./ChartWidget-B4vLdttP.mjs";
37
37
  import "./ContainerWidget-BKaiiPlW.mjs";
38
38
  import "./EmbedWidget-BJY7l4pI.mjs";
@@ -40,7 +40,7 @@ import "./ImageWidget-WtC8Rg1y.mjs";
40
40
  import "./LinkWidget-mKyp0LGz.mjs";
41
41
  import "./ListWidget-CRzXIlzF.mjs";
42
42
  import "./MySiteWidget-CY8eXMWv.mjs";
43
- import "./NestedWidget-Cgsv6RTh.mjs";
43
+ import "./NestedWidget-BXnLrul1.mjs";
44
44
  import "./QuickShareWidget-DmZjvUVT.mjs";
45
45
  import "./RecentActivityWidget-C4UFPIIB.mjs";
46
46
  import "./SeparatorWidget-DxTG9J7u.mjs";
@@ -51,17 +51,17 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
51
51
  right: "text-right"
52
52
  };
53
53
  const backgroundColor = background.color || "background";
54
- const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
54
+ const containerStyle = {
55
+ height: primaryMediaHeight,
56
+ backgroundImage: (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none",
57
+ "--nested-primary-media-size": primaryMediaHeight
58
+ };
55
59
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
56
- className: `@container flex w-full overflow-hidden p-${padding} rounded-${borderRadius} ${require_registries.borderWidthClasses[borderWidth]} ${borderWidth !== "none" ? require_registries.borderColorClasses[borderColor] : ""} bg-${backgroundColor} ${className}`,
60
+ className: `@container flex w-full flex-col overflow-hidden p-${padding} @xl:flex-row rounded-${borderRadius} ${require_registries.borderWidthClasses[borderWidth]} ${borderWidth !== "none" ? require_registries.borderColorClasses[borderColor] : ""} bg-${backgroundColor} ${className}`,
57
61
  ...props,
58
- style: {
59
- height: primaryMediaHeight,
60
- backgroundImage
61
- },
62
+ style: containerStyle,
62
63
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
63
- className: `relative @md:flex-none`,
64
- style: { width: primaryMediaHeight },
64
+ className: `relative h-full w-full @xl:w-(--nested-primary-media-size) @xl:flex-none`,
65
65
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
66
66
  className: `overflow-hidden rounded-${primaryMediaRadius} absolute inset-0`,
67
67
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MediaRenderer.MediaRenderer, {
@@ -79,11 +79,11 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
79
79
  className: `font-header leading-tight font-bold text-${titleColor} text-${titleFontSize === "md" ? "base" : titleFontSize}`,
80
80
  children: titleText
81
81
  }), hasNestedMedia && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
82
- className: `pt-${padding} @md:hidden`,
82
+ className: `pt-${padding} @xl:hidden`,
83
83
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
84
84
  className: `flex overflow-x-auto gap-${require_registries.gapValues[gap]} bg-transparent`,
85
- children: shareables.map((shareable) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
86
- className: `flex shrink-0 flex-col items-center ${onItemClick ? "cursor-pointer" : ""}`,
85
+ children: shareables.map((shareable) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
86
+ className: `flex w-28 shrink-0 flex-col gap-1 @sm:w-32 ${onItemClick ? "cursor-pointer" : ""}`,
87
87
  ...onItemClick ? {
88
88
  role: "button",
89
89
  tabIndex: 0,
@@ -95,16 +95,25 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
95
95
  }
96
96
  }
97
97
  } : {},
98
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
99
- className: `aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`,
98
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
99
+ className: `aspect-3/4 h-32 overflow-hidden rounded-${borderRadius} @sm:h-36`,
100
100
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MediaRenderer.MediaRenderer, { ...require_MediaRenderer.getMediaPropsFromShareable(shareable) })
101
- })
101
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
102
+ className: `min-w-0 text-xs leading-tight text-${titleColor}`,
103
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
104
+ className: "truncate",
105
+ children: shareable.title || ""
106
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
107
+ className: "truncate opacity-80",
108
+ children: (shareable.display_price ?? shareable.price) || ""
109
+ })]
110
+ })]
102
111
  }, shareable.id))
103
112
  })
104
113
  })]
105
114
  })]
106
115
  }), hasNestedMedia && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
107
- className: `relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`,
116
+ className: `relative hidden min-w-0 self-stretch px-${padding} @xl:flex @xl:flex-1`,
108
117
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
109
118
  ref: scrollContainerRef,
110
119
  className: `flex h-full flex-row overflow-x-auto gap-${require_registries.gapValues[gap]}`,
@@ -129,7 +138,7 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
129
138
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
130
139
  className: `aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`,
131
140
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MediaRenderer.MediaRenderer, { ...require_MediaRenderer.getMediaPropsFromShareable(shareable) })
132
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
141
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
133
142
  className: `flex-none text-sm text-${nestedTextColor}`,
134
143
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
135
144
  className: "truncate",
@@ -376,4 +385,4 @@ Object.defineProperty(exports, "nestedWidgetPropertySchema", {
376
385
  }
377
386
  });
378
387
 
379
- //# sourceMappingURL=NestedWidget-DrRazqvX.cjs.map
388
+ //# sourceMappingURL=NestedWidget-0YTK04F7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedWidget-0YTK04F7.cjs","names":["ChevronLeft","ChevronRight","useWidgetInteraction","borderWidthClasses","borderColorClasses","MediaRenderer","getMediaPropsFromShareable","gapValues","getFontSizeField","getColorField","getHeightField","getPaddingField","getBorderRadiusField","getBorderWidthField","getBorderColorField","getGapField"],"sources":["../../widgets/src/ui/scroll-arrows.tsx","../../widgets/src/widgets/NestedWidget.tsx"],"sourcesContent":["import type React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\ntype ScrollArrowsProps = {\n onPrevious: () => void;\n onNext: () => void;\n};\n\nexport function ScrollArrows({\n onPrevious,\n onNext,\n}: ScrollArrowsProps): React.JSX.Element {\n return (\n <>\n <button\n type=\"button\"\n className=\"bg-foreground text-background flex size-6 items-center justify-center rounded-2xl opacity-70 transition-colors hover:opacity-50 disabled:opacity-30\"\n onClick={onPrevious}\n aria-label=\"Previous slide\"\n >\n <ChevronLeft className=\"size-4\" />\n </button>\n <button\n type=\"button\"\n className=\"bg-foreground text-background flex size-6 items-center justify-center rounded-2xl opacity-70 transition-colors hover:opacity-50 disabled:opacity-30\"\n onClick={onNext}\n aria-label=\"Next slide\"\n >\n <ChevronRight className=\"size-4\" />\n </button>\n </>\n );\n}\n","import { useRef, type ComponentProps, type CSSProperties } from \"react\";\nimport type React from \"react\";\nimport {\n MediaRenderer,\n getMediaPropsFromShareable,\n} from \"../components/MediaRenderer\";\nimport type {\n BorderRadiusOptions,\n BorderWidthOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n AlignOptions,\n GapOptions,\n BackgroundValue,\n} from \"@fluid-app/portal-core/types\";\nimport {\n getHeightField,\n type WidgetPropertySchema,\n} from \"@fluid-app/portal-core/registries\";\nimport {\n getBorderRadiusField,\n getBorderWidthField,\n getBorderColorField,\n borderWidthClasses,\n borderColorClasses,\n getColorField,\n getFontSizeField,\n getGapField,\n getPaddingField,\n gapValues,\n} from \"../core/fields\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport { type ShareableItem } from \"@fluid-app/portal-core/types\";\nimport { useWidgetInteraction } from \"../contexts/WidgetInteractionContext\";\n\nconst DEFAULT_SHAREABLES: ShareableItem[] = [];\n\ntype NestedWidgetProps = ComponentProps<\"div\"> & {\n // Content\n resource?: ShareableItem;\n titleEnabled?: boolean;\n titleText?: string;\n shareables?: ShareableItem[];\n\n // Layout\n gap?: GapOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n borderWidth?: BorderWidthOptions;\n borderColor?: ColorOptions;\n primaryMediaHeight?: string;\n\n // Title styling\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n titleAlignment?: AlignOptions;\n\n // Nested media styling\n nestedTextColor?: ColorOptions;\n background?: BackgroundValue;\n\n // Overlay\n overlayEnabled?: boolean;\n overlayType?: \"solid\" | \"gradient\";\n overlayIntensity?: number;\n};\n\nexport function NestedWidget({\n resource,\n titleEnabled = true,\n titleText = \"Featured Collection\",\n shareables = DEFAULT_SHAREABLES,\n gap = \"md\",\n padding = 4,\n borderRadius = \"md\",\n borderWidth = \"none\",\n borderColor = \"muted\",\n primaryMediaHeight = \"400px\",\n titleFontSize = \"xl\",\n titleColor = \"background\",\n titleAlignment = { horizontal: \"left\", vertical: \"bottom\" },\n nestedTextColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n overlayEnabled = true,\n overlayType = \"gradient\",\n overlayIntensity = 50,\n className,\n ...props\n}: NestedWidgetProps): React.JSX.Element {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const scrollByAmount = (direction: \"prev\" | \"next\") => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const computedGap = parseFloat(getComputedStyle(container).gap) || 0;\n const firstItem = container.firstElementChild as HTMLElement | null;\n const itemWidth = firstItem?.offsetWidth ?? 0;\n const scrollAmount = itemWidth + computedGap;\n\n container.scrollTo({\n left:\n container.scrollLeft +\n (direction === \"next\" ? scrollAmount : -scrollAmount),\n behavior: \"smooth\",\n });\n };\n\n // Cap border radius for the primary media container: \"full\" creates a circle that clips\n // the absolutely-positioned title overlay to the narrow bottom of the circle.\n const primaryMediaRadius = borderRadius === \"full\" ? \"2xl\" : borderRadius;\n\n const { onItemClick } = useWidgetInteraction();\n\n const hasNestedMedia = shareables.length > 0;\n\n const titleAlignmentClasses = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n };\n\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n const containerStyle = {\n height: primaryMediaHeight,\n backgroundImage: backgroundImage,\n \"--nested-primary-media-size\": primaryMediaHeight,\n } as CSSProperties;\n\n return (\n <div\n className={`@container flex w-full flex-col overflow-hidden p-${padding} @xl:flex-row rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== \"none\" ? borderColorClasses[borderColor] : \"\"} bg-${backgroundColor} ${className}`}\n {...props}\n style={containerStyle}\n >\n {/* Primary media stays full-width until the widget has room for a side-by-side carousel. */}\n <div\n className={`relative h-full w-full @xl:w-(--nested-primary-media-size) @xl:flex-none`}\n >\n {/* Media + overlay clipped to rounded shape — title is a sibling so it isn't clipped */}\n <div\n className={`overflow-hidden rounded-${primaryMediaRadius} absolute inset-0`}\n >\n <MediaRenderer\n {...(resource ? getMediaPropsFromShareable(resource) : {})}\n autoplay\n loop\n muted\n />\n\n {/* Overlay */}\n {overlayEnabled && (\n <div\n className={`pointer-events-none absolute inset-0 z-10 ${\n overlayType === \"gradient\"\n ? \"bg-gradient-to-t from-black to-transparent\"\n : \"bg-black\"\n }`}\n style={{\n opacity:\n (Number(String(overlayIntensity).replace(\"%\", \"\")) || 50) /\n 100,\n }}\n />\n )}\n </div>\n\n {/* Title and Mobile Nested Media — outside the overflow-hidden clip */}\n {((titleEnabled && titleText) || hasNestedMedia) && (\n <div\n className={`absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? \"left\"]} p-${padding} ${\n titleAlignment.vertical === \"top\"\n ? `top-0 pt-${padding}`\n : titleAlignment.vertical === \"center\"\n ? \"top-1/2 -translate-y-1/2\"\n : `bottom-0 pb-${padding}`\n }`}\n >\n {titleEnabled && titleText && (\n <h2\n className={`font-header leading-tight font-bold text-${titleColor} text-${titleFontSize === \"md\" ? \"base\" : titleFontSize}`}\n >\n {titleText}\n </h2>\n )}\n\n {/* Mobile: Products overlay inside primary media */}\n {hasNestedMedia && (\n <div className={`pt-${padding} @xl:hidden`}>\n <div\n className={`flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className={`flex w-28 shrink-0 flex-col gap-1 @sm:w-32 ${onItemClick ? \"cursor-pointer\" : \"\"}`}\n {...(onItemClick\n ? {\n role: \"button\",\n tabIndex: 0,\n onClick: () => onItemClick(shareable),\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onItemClick(shareable);\n }\n },\n }\n : {})}\n >\n <div\n className={`aspect-3/4 h-32 overflow-hidden rounded-${borderRadius} @sm:h-36`}\n >\n <MediaRenderer\n {...getMediaPropsFromShareable(shareable)}\n />\n </div>\n <div\n className={`min-w-0 text-xs leading-tight text-${titleColor}`}\n >\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate opacity-80\">\n {((shareable.display_price as string) ??\n shareable.price) ||\n \"\"}\n </p>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Wide containers: products sit in a single row beside the primary media. */}\n {hasNestedMedia && (\n <div\n className={`relative hidden min-w-0 self-stretch px-${padding} @xl:flex @xl:flex-1`}\n >\n <div\n ref={scrollContainerRef}\n className={`flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`}\n style={{ scrollSnapType: \"x mandatory\" }}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className={`flex shrink-0 flex-col gap-1 ${onItemClick ? \"cursor-pointer\" : \"\"}`}\n style={{\n width: `calc(${primaryMediaHeight} * 0.75)`,\n scrollSnapAlign: \"start\",\n }}\n {...(onItemClick\n ? {\n role: \"button\",\n tabIndex: 0,\n onClick: () => onItemClick(shareable),\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onItemClick(shareable);\n }\n },\n }\n : {})}\n >\n <div\n className={`aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`}\n >\n <MediaRenderer {...getMediaPropsFromShareable(shareable)} />\n </div>\n <div className={`flex-none text-sm text-${nestedTextColor}`}>\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate\">\n {((shareable.display_price as string) ?? shareable.price) ||\n \"\"}\n </p>\n </div>\n </div>\n ))}\n </div>\n\n {/* Navigation arrows */}\n <div\n className={`absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`}\n >\n <ScrollArrows\n onPrevious={() => scrollByAmount(\"prev\")}\n onNext={() => scrollByAmount(\"next\")}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const nestedWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"NestedWidget\",\n displayName: \"Nested Widget\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"shareables\"],\n fields: [\n // Content tab - Resource group\n {\n key: \"resource\",\n label: \"Primary Media\",\n type: \"image\",\n accept: \"any\",\n description: \"Select the primary media displayed in the large panel\",\n tab: \"styling\",\n group: \"Content\",\n },\n // Content tab - Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed over the primary media\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Main title displayed over the primary media\",\n defaultValue: \"Featured Collection\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n label: \"Title Font Size\",\n defaultValue: \"xl\",\n key: \"titleFontSize\",\n description: \"Font size for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Styling tab - Design group\n getHeightField({\n key: \"primaryMediaHeight\",\n label: \"Primary Media Height\",\n description: \"Height of the primary media container\",\n defaultValue: \"400px\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"titleAlignment\",\n label: \"Content Alignment\",\n type: \"alignment\",\n description: \"Alignment of the content inside the primary media\",\n defaultValue: { horizontal: \"left\", vertical: \"bottom\" },\n options: {\n horizontalEnabled: true,\n verticalEnabled: true,\n },\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n defaultValue: 4,\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding used throughout the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n defaultValue: \"md\",\n label: \"Border Radius\",\n key: \"borderRadius\",\n description: \"Rounded corners for the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderWidthField({\n key: \"borderWidth\",\n label: \"Border Width\",\n description: \"Border width for the widget\",\n defaultValue: \"none\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderColorField({\n key: \"borderColor\",\n label: \"Border Color\",\n description: \"Border color for the widget\",\n defaultValue: \"muted\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"overlayEnabled\",\n label: \"Enable Overlay\",\n type: \"boolean\",\n description:\n \"Add a dark overlay to the primary media for better text readability\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"overlayType\",\n label: \"Overlay Type\",\n type: \"buttonGroup\",\n description: \"Type of overlay effect\",\n defaultValue: \"gradient\",\n options: [\n { label: \"Solid\", value: \"solid\" },\n { label: \"Gradient\", value: \"gradient\" },\n ],\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n {\n key: \"overlayIntensity\",\n label: \"Overlay Intensity\",\n type: \"slider\",\n description: \"Opacity of the overlay (0-100)\",\n min: 0,\n max: 100,\n step: 5,\n defaultValue: 50,\n unit: \"%\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n // Styling tab - Nested Media Styling group\n getGapField({\n label: \"Gap\",\n defaultValue: \"md\",\n key: \"gap\",\n description: \"Gap between nested media items\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n getColorField({\n defaultValue: \"foreground\",\n key: \"nestedTextColor\",\n label: \"Nested Text Color\",\n description: \"Color for nested media labels\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n {\n type: \"background\",\n defaultValue: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background color for nested media container\",\n tab: \"styling\",\n group: \"Nested Design\",\n },\n // Data tab\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"Configure dynamic data fetching from an API\",\n tab: \"data\",\n group: \"Data Configuration\",\n },\n ],\n // Per-item configuration schema for custom data sources\n itemConfigSchema: {\n description: \"Configure settings for this item\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title for this widget\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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S;IACP,mBAAmB;IACnB,iBAAiB;IAClB;GACD,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACDC,mBAAAA,gBAAgB;GACd,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,qBAAqB;GACnB,cAAc;GACd,OAAO;GACP,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,SAAS,CACP;IAAE,OAAO;IAAS,OAAO;IAAS,EAClC;IAAE,OAAO;IAAY,OAAO;IAAY,CACzC;GACD,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,KAAK;GACL,MAAM;GACN,cAAc;GACd,MAAM;GACN,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EAEDC,mBAAAA,YAAY;GACV,OAAO;GACP,cAAc;GACd,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACFN,mBAAAA,cAAc;GACZ,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR;EAED;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,OAAO;GACR;EACF;CAED,kBAAkB;EAChB,aAAa;EACb,QAAQ,CACN;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd,CACF;EACF;CACF"}
@@ -55,17 +55,17 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
55
55
  right: "text-right"
56
56
  };
57
57
  const backgroundColor = background.color || "background";
58
- const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
58
+ const containerStyle = {
59
+ height: primaryMediaHeight,
60
+ backgroundImage: (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none",
61
+ "--nested-primary-media-size": primaryMediaHeight
62
+ };
59
63
  return /* @__PURE__ */ jsxs("div", {
60
- className: `@container flex w-full overflow-hidden p-${padding} rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== "none" ? borderColorClasses[borderColor] : ""} bg-${backgroundColor} ${className}`,
64
+ className: `@container flex w-full flex-col overflow-hidden p-${padding} @xl:flex-row rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== "none" ? borderColorClasses[borderColor] : ""} bg-${backgroundColor} ${className}`,
61
65
  ...props,
62
- style: {
63
- height: primaryMediaHeight,
64
- backgroundImage
65
- },
66
+ style: containerStyle,
66
67
  children: [/* @__PURE__ */ jsxs("div", {
67
- className: `relative @md:flex-none`,
68
- style: { width: primaryMediaHeight },
68
+ className: `relative h-full w-full @xl:w-(--nested-primary-media-size) @xl:flex-none`,
69
69
  children: [/* @__PURE__ */ jsxs("div", {
70
70
  className: `overflow-hidden rounded-${primaryMediaRadius} absolute inset-0`,
71
71
  children: [/* @__PURE__ */ jsx(MediaRenderer, {
@@ -83,11 +83,11 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
83
83
  className: `font-header leading-tight font-bold text-${titleColor} text-${titleFontSize === "md" ? "base" : titleFontSize}`,
84
84
  children: titleText
85
85
  }), hasNestedMedia && /* @__PURE__ */ jsx("div", {
86
- className: `pt-${padding} @md:hidden`,
86
+ className: `pt-${padding} @xl:hidden`,
87
87
  children: /* @__PURE__ */ jsx("div", {
88
88
  className: `flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`,
89
- children: shareables.map((shareable) => /* @__PURE__ */ jsx("div", {
90
- className: `flex shrink-0 flex-col items-center ${onItemClick ? "cursor-pointer" : ""}`,
89
+ children: shareables.map((shareable) => /* @__PURE__ */ jsxs("div", {
90
+ className: `flex w-28 shrink-0 flex-col gap-1 @sm:w-32 ${onItemClick ? "cursor-pointer" : ""}`,
91
91
  ...onItemClick ? {
92
92
  role: "button",
93
93
  tabIndex: 0,
@@ -99,16 +99,25 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
99
99
  }
100
100
  }
101
101
  } : {},
102
- children: /* @__PURE__ */ jsx("div", {
103
- className: `aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`,
102
+ children: [/* @__PURE__ */ jsx("div", {
103
+ className: `aspect-3/4 h-32 overflow-hidden rounded-${borderRadius} @sm:h-36`,
104
104
  children: /* @__PURE__ */ jsx(MediaRenderer, { ...getMediaPropsFromShareable(shareable) })
105
- })
105
+ }), /* @__PURE__ */ jsxs("div", {
106
+ className: `min-w-0 text-xs leading-tight text-${titleColor}`,
107
+ children: [/* @__PURE__ */ jsx("p", {
108
+ className: "truncate",
109
+ children: shareable.title || ""
110
+ }), /* @__PURE__ */ jsx("p", {
111
+ className: "truncate opacity-80",
112
+ children: (shareable.display_price ?? shareable.price) || ""
113
+ })]
114
+ })]
106
115
  }, shareable.id))
107
116
  })
108
117
  })]
109
118
  })]
110
119
  }), hasNestedMedia && /* @__PURE__ */ jsxs("div", {
111
- className: `relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`,
120
+ className: `relative hidden min-w-0 self-stretch px-${padding} @xl:flex @xl:flex-1`,
112
121
  children: [/* @__PURE__ */ jsx("div", {
113
122
  ref: scrollContainerRef,
114
123
  className: `flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`,
@@ -133,7 +142,7 @@ function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Col
133
142
  children: [/* @__PURE__ */ jsx("div", {
134
143
  className: `aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`,
135
144
  children: /* @__PURE__ */ jsx(MediaRenderer, { ...getMediaPropsFromShareable(shareable) })
136
- }), /* @__PURE__ */ jsxs("span", {
145
+ }), /* @__PURE__ */ jsxs("div", {
137
146
  className: `flex-none text-sm text-${nestedTextColor}`,
138
147
  children: [/* @__PURE__ */ jsx("p", {
139
148
  className: "truncate",
@@ -369,4 +378,4 @@ const nestedWidgetPropertySchema = {
369
378
  //#endregion
370
379
  export { NestedWidget_exports as n, nestedWidgetPropertySchema as r, NestedWidget as t };
371
380
 
372
- //# sourceMappingURL=NestedWidget-Cgsv6RTh.mjs.map
381
+ //# sourceMappingURL=NestedWidget-BXnLrul1.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedWidget-BXnLrul1.mjs","names":[],"sources":["../../widgets/src/ui/scroll-arrows.tsx","../../widgets/src/widgets/NestedWidget.tsx"],"sourcesContent":["import type React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\ntype ScrollArrowsProps = {\n onPrevious: () => void;\n onNext: () => void;\n};\n\nexport function ScrollArrows({\n onPrevious,\n onNext,\n}: ScrollArrowsProps): React.JSX.Element {\n return (\n <>\n <button\n type=\"button\"\n className=\"bg-foreground text-background flex size-6 items-center justify-center rounded-2xl opacity-70 transition-colors hover:opacity-50 disabled:opacity-30\"\n onClick={onPrevious}\n aria-label=\"Previous slide\"\n >\n <ChevronLeft className=\"size-4\" />\n </button>\n <button\n type=\"button\"\n className=\"bg-foreground text-background flex size-6 items-center justify-center rounded-2xl opacity-70 transition-colors hover:opacity-50 disabled:opacity-30\"\n onClick={onNext}\n aria-label=\"Next slide\"\n >\n <ChevronRight className=\"size-4\" />\n </button>\n </>\n );\n}\n","import { useRef, type ComponentProps, type CSSProperties } from \"react\";\nimport type React from \"react\";\nimport {\n MediaRenderer,\n getMediaPropsFromShareable,\n} from \"../components/MediaRenderer\";\nimport type {\n BorderRadiusOptions,\n BorderWidthOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n AlignOptions,\n GapOptions,\n BackgroundValue,\n} from \"@fluid-app/portal-core/types\";\nimport {\n getHeightField,\n type WidgetPropertySchema,\n} from \"@fluid-app/portal-core/registries\";\nimport {\n getBorderRadiusField,\n getBorderWidthField,\n getBorderColorField,\n borderWidthClasses,\n borderColorClasses,\n getColorField,\n getFontSizeField,\n getGapField,\n getPaddingField,\n gapValues,\n} from \"../core/fields\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport { type ShareableItem } from \"@fluid-app/portal-core/types\";\nimport { useWidgetInteraction } from \"../contexts/WidgetInteractionContext\";\n\nconst DEFAULT_SHAREABLES: ShareableItem[] = [];\n\ntype NestedWidgetProps = ComponentProps<\"div\"> & {\n // Content\n resource?: ShareableItem;\n titleEnabled?: boolean;\n titleText?: string;\n shareables?: ShareableItem[];\n\n // Layout\n gap?: GapOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n borderWidth?: BorderWidthOptions;\n borderColor?: ColorOptions;\n primaryMediaHeight?: string;\n\n // Title styling\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n titleAlignment?: AlignOptions;\n\n // Nested media styling\n nestedTextColor?: ColorOptions;\n background?: BackgroundValue;\n\n // Overlay\n overlayEnabled?: boolean;\n overlayType?: \"solid\" | \"gradient\";\n overlayIntensity?: number;\n};\n\nexport function NestedWidget({\n resource,\n titleEnabled = true,\n titleText = \"Featured Collection\",\n shareables = DEFAULT_SHAREABLES,\n gap = \"md\",\n padding = 4,\n borderRadius = \"md\",\n borderWidth = \"none\",\n borderColor = \"muted\",\n primaryMediaHeight = \"400px\",\n titleFontSize = \"xl\",\n titleColor = \"background\",\n titleAlignment = { horizontal: \"left\", vertical: \"bottom\" },\n nestedTextColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n overlayEnabled = true,\n overlayType = \"gradient\",\n overlayIntensity = 50,\n className,\n ...props\n}: NestedWidgetProps): React.JSX.Element {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const scrollByAmount = (direction: \"prev\" | \"next\") => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const computedGap = parseFloat(getComputedStyle(container).gap) || 0;\n const firstItem = container.firstElementChild as HTMLElement | null;\n const itemWidth = firstItem?.offsetWidth ?? 0;\n const scrollAmount = itemWidth + computedGap;\n\n container.scrollTo({\n left:\n container.scrollLeft +\n (direction === \"next\" ? scrollAmount : -scrollAmount),\n behavior: \"smooth\",\n });\n };\n\n // Cap border radius for the primary media container: \"full\" creates a circle that clips\n // the absolutely-positioned title overlay to the narrow bottom of the circle.\n const primaryMediaRadius = borderRadius === \"full\" ? \"2xl\" : borderRadius;\n\n const { onItemClick } = useWidgetInteraction();\n\n const hasNestedMedia = shareables.length > 0;\n\n const titleAlignmentClasses = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n };\n\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n const containerStyle = {\n height: primaryMediaHeight,\n backgroundImage: backgroundImage,\n \"--nested-primary-media-size\": primaryMediaHeight,\n } as CSSProperties;\n\n return (\n <div\n className={`@container flex w-full flex-col overflow-hidden p-${padding} @xl:flex-row rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== \"none\" ? borderColorClasses[borderColor] : \"\"} bg-${backgroundColor} ${className}`}\n {...props}\n style={containerStyle}\n >\n {/* Primary media stays full-width until the widget has room for a side-by-side carousel. */}\n <div\n className={`relative h-full w-full @xl:w-(--nested-primary-media-size) @xl:flex-none`}\n >\n {/* Media + overlay clipped to rounded shape — title is a sibling so it isn't clipped */}\n <div\n className={`overflow-hidden rounded-${primaryMediaRadius} absolute inset-0`}\n >\n <MediaRenderer\n {...(resource ? getMediaPropsFromShareable(resource) : {})}\n autoplay\n loop\n muted\n />\n\n {/* Overlay */}\n {overlayEnabled && (\n <div\n className={`pointer-events-none absolute inset-0 z-10 ${\n overlayType === \"gradient\"\n ? \"bg-gradient-to-t from-black to-transparent\"\n : \"bg-black\"\n }`}\n style={{\n opacity:\n (Number(String(overlayIntensity).replace(\"%\", \"\")) || 50) /\n 100,\n }}\n />\n )}\n </div>\n\n {/* Title and Mobile Nested Media — outside the overflow-hidden clip */}\n {((titleEnabled && titleText) || hasNestedMedia) && (\n <div\n className={`absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? \"left\"]} p-${padding} ${\n titleAlignment.vertical === \"top\"\n ? `top-0 pt-${padding}`\n : titleAlignment.vertical === \"center\"\n ? \"top-1/2 -translate-y-1/2\"\n : `bottom-0 pb-${padding}`\n }`}\n >\n {titleEnabled && titleText && (\n <h2\n className={`font-header leading-tight font-bold text-${titleColor} text-${titleFontSize === \"md\" ? \"base\" : titleFontSize}`}\n >\n {titleText}\n </h2>\n )}\n\n {/* Mobile: Products overlay inside primary media */}\n {hasNestedMedia && (\n <div className={`pt-${padding} @xl:hidden`}>\n <div\n className={`flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className={`flex w-28 shrink-0 flex-col gap-1 @sm:w-32 ${onItemClick ? \"cursor-pointer\" : \"\"}`}\n {...(onItemClick\n ? {\n role: \"button\",\n tabIndex: 0,\n onClick: () => onItemClick(shareable),\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onItemClick(shareable);\n }\n },\n }\n : {})}\n >\n <div\n className={`aspect-3/4 h-32 overflow-hidden rounded-${borderRadius} @sm:h-36`}\n >\n <MediaRenderer\n {...getMediaPropsFromShareable(shareable)}\n />\n </div>\n <div\n className={`min-w-0 text-xs leading-tight text-${titleColor}`}\n >\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate opacity-80\">\n {((shareable.display_price as string) ??\n shareable.price) ||\n \"\"}\n </p>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Wide containers: products sit in a single row beside the primary media. */}\n {hasNestedMedia && (\n <div\n className={`relative hidden min-w-0 self-stretch px-${padding} @xl:flex @xl:flex-1`}\n >\n <div\n ref={scrollContainerRef}\n className={`flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`}\n style={{ scrollSnapType: \"x mandatory\" }}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className={`flex shrink-0 flex-col gap-1 ${onItemClick ? \"cursor-pointer\" : \"\"}`}\n style={{\n width: `calc(${primaryMediaHeight} * 0.75)`,\n scrollSnapAlign: \"start\",\n }}\n {...(onItemClick\n ? {\n role: \"button\",\n tabIndex: 0,\n onClick: () => onItemClick(shareable),\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onItemClick(shareable);\n }\n },\n }\n : {})}\n >\n <div\n className={`aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`}\n >\n <MediaRenderer {...getMediaPropsFromShareable(shareable)} />\n </div>\n <div className={`flex-none text-sm text-${nestedTextColor}`}>\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate\">\n {((shareable.display_price as string) ?? shareable.price) ||\n \"\"}\n </p>\n </div>\n </div>\n ))}\n </div>\n\n {/* Navigation arrows */}\n <div\n className={`absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`}\n >\n <ScrollArrows\n onPrevious={() => scrollByAmount(\"prev\")}\n onNext={() => scrollByAmount(\"next\")}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const nestedWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"NestedWidget\",\n displayName: \"Nested Widget\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"shareables\"],\n fields: [\n // Content tab - Resource group\n {\n key: \"resource\",\n label: \"Primary Media\",\n type: \"image\",\n accept: \"any\",\n description: \"Select the primary media displayed in the large panel\",\n tab: \"styling\",\n group: \"Content\",\n },\n // Content tab - Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed over the primary media\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Main title displayed over the primary media\",\n defaultValue: \"Featured Collection\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n label: \"Title Font Size\",\n defaultValue: \"xl\",\n key: \"titleFontSize\",\n description: \"Font size for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Styling tab - Design group\n getHeightField({\n key: \"primaryMediaHeight\",\n label: \"Primary Media Height\",\n description: \"Height of the primary media container\",\n defaultValue: \"400px\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"titleAlignment\",\n label: \"Content Alignment\",\n type: \"alignment\",\n description: \"Alignment of the content inside the primary media\",\n defaultValue: { horizontal: \"left\", vertical: \"bottom\" },\n options: {\n horizontalEnabled: true,\n verticalEnabled: true,\n },\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n defaultValue: 4,\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding used throughout the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n defaultValue: \"md\",\n label: \"Border Radius\",\n key: \"borderRadius\",\n description: \"Rounded corners for the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderWidthField({\n key: \"borderWidth\",\n label: \"Border Width\",\n description: \"Border width for the widget\",\n defaultValue: \"none\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderColorField({\n key: \"borderColor\",\n label: \"Border Color\",\n description: \"Border color for the widget\",\n defaultValue: \"muted\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"overlayEnabled\",\n label: \"Enable Overlay\",\n type: \"boolean\",\n description:\n \"Add a dark overlay to the primary media for better text readability\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"overlayType\",\n label: \"Overlay Type\",\n type: \"buttonGroup\",\n description: \"Type of overlay effect\",\n defaultValue: \"gradient\",\n options: [\n { label: \"Solid\", value: \"solid\" },\n { label: \"Gradient\", value: \"gradient\" },\n ],\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n {\n key: \"overlayIntensity\",\n label: \"Overlay Intensity\",\n type: \"slider\",\n description: \"Opacity of the overlay (0-100)\",\n min: 0,\n max: 100,\n step: 5,\n defaultValue: 50,\n unit: \"%\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n // Styling tab - Nested Media Styling group\n getGapField({\n label: \"Gap\",\n defaultValue: \"md\",\n key: \"gap\",\n description: \"Gap between nested media items\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n getColorField({\n defaultValue: \"foreground\",\n key: \"nestedTextColor\",\n label: \"Nested Text Color\",\n description: \"Color for nested media labels\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n {\n type: \"background\",\n defaultValue: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background color for nested media container\",\n tab: \"styling\",\n group: \"Nested Design\",\n },\n // Data tab\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"Configure dynamic data fetching from an API\",\n tab: \"data\",\n group: \"Data Configuration\",\n },\n ],\n // Per-item configuration schema for custom data sources\n itemConfigSchema: {\n description: \"Configure settings for this item\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title for this widget\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"],"mappings":";;;;;;;;AAQA,SAAgB,aAAa,EAC3B,YACA,UACuC;AACvC,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,UAAD;EACE,MAAK;EACL,WAAU;EACV,SAAS;EACT,cAAW;YAEX,oBAAC,aAAD,EAAa,WAAU,UAAW,CAAA;EAC3B,CAAA,EACT,oBAAC,UAAD;EACE,MAAK;EACL,WAAU;EACV,SAAS;EACT,cAAW;YAEX,oBAAC,cAAD,EAAc,WAAU,UAAW,CAAA;EAC5B,CAAA,CACR,EAAA,CAAA;;;;;;;;ACMP,MAAM,qBAAsC,EAAE;AAgC9C,SAAgB,aAAa,EAC3B,UACA,eAAe,MACf,YAAY,uBACZ,aAAa,oBACb,MAAM,MACN,UAAU,GACV,eAAe,MACf,cAAc,QACd,cAAc,SACd,qBAAqB,SACrB,gBAAgB,MAChB,aAAa,cACb,iBAAiB;CAAE,YAAY;CAAQ,UAAU;CAAU,EAC3D,kBAAkB,cAClB,aAAa;CACX,MAAM;CACN,OAAO;CACR,EACD,iBAAiB,MACjB,cAAc,YACd,mBAAmB,IACnB,WACA,GAAG,SACoC;CACvC,MAAM,qBAAqB,OAAuB,KAAK;CAEvD,MAAM,kBAAkB,cAA+B;EACrD,MAAM,YAAY,mBAAmB;AACrC,MAAI,CAAC,UAAW;EAEhB,MAAM,cAAc,WAAW,iBAAiB,UAAU,CAAC,IAAI,IAAI;EAGnE,MAAM,gBAFY,UAAU,mBACC,eAAe,KACX;AAEjC,YAAU,SAAS;GACjB,MACE,UAAU,cACT,cAAc,SAAS,eAAe,CAAC;GAC1C,UAAU;GACX,CAAC;;CAKJ,MAAM,qBAAqB,iBAAiB,SAAS,QAAQ;CAE7D,MAAM,EAAE,gBAAgB,sBAAsB;CAE9C,MAAM,iBAAiB,WAAW,SAAS;CAE3C,MAAM,wBAAwB;EAC5B,MAAM;EACN,QAAQ;EACR,OAAO;EACR;CAED,MAAM,kBAAkB,WAAW,SAAS;CAM5C,MAAM,iBAAiB;EACrB,QAAQ;EACR,kBANC,WAAW,UAAU,aAAa,WAAW,UAAU,aACxD,WAAW,SAAS,UAChB,OAAO,WAAW,SAAS,aAAa,WAAW,SAAS,SAAS,KACrE;EAIJ,+BAA+B;EAChC;AAED,QACE,qBAAC,OAAD;EACE,WAAW,qDAAqD,QAAQ,wBAAwB,aAAa,GAAG,mBAAmB,aAAa,GAAG,gBAAgB,SAAS,mBAAmB,eAAe,GAAG,MAAM,gBAAgB,GAAG;EAC1O,GAAI;EACJ,OAAO;YAHT,CAME,qBAAC,OAAD;GACE,WAAW;aADb,CAIE,qBAAC,OAAD;IACE,WAAW,2BAA2B,mBAAmB;cAD3D,CAGE,oBAAC,eAAD;KACE,GAAK,WAAW,2BAA2B,SAAS,GAAG,EAAE;KACzD,UAAA;KACA,MAAA;KACA,OAAA;KACA,CAAA,EAGD,kBACC,oBAAC,OAAD;KACE,WAAW,6CACT,gBAAgB,aACZ,+CACA;KAEN,OAAO,EACL,UACG,OAAO,OAAO,iBAAiB,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,MACtD,KACH;KACD,CAAA,CAEA;QAGH,gBAAgB,aAAc,mBAC/B,qBAAC,OAAD;IACE,WAAW,wBAAwB,sBAAsB,gBAAgB,cAAc,QAAQ,KAAK,QAAQ,GAC1G,eAAe,aAAa,QACxB,YAAY,YACZ,eAAe,aAAa,WAC1B,6BACA,eAAe;cANzB,CASG,gBAAgB,aACf,oBAAC,MAAD;KACE,WAAW,4CAA4C,WAAW,QAAQ,kBAAkB,OAAO,SAAS;eAE3G;KACE,CAAA,EAIN,kBACC,oBAAC,OAAD;KAAK,WAAW,MAAM,QAAQ;eAC5B,oBAAC,OAAD;MACE,WAAW,4BAA4B,UAAU,KAAK;gBAErD,WAAW,KAAK,cACf,qBAAC,OAAD;OAEE,WAAW,8CAA8C,cAAc,mBAAmB;OAC1F,GAAK,cACD;QACE,MAAM;QACN,UAAU;QACV,eAAe,YAAY,UAAU;QACrC,YAAY,MAA2B;AACrC,aAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,YAAE,gBAAgB;AAClB,sBAAY,UAAU;;;QAG3B,GACD,EAAE;iBAfR,CAiBE,oBAAC,OAAD;QACE,WAAW,2CAA2C,aAAa;kBAEnE,oBAAC,eAAD,EACE,GAAI,2BAA2B,UAAU,EACzC,CAAA;QACE,CAAA,EACN,qBAAC,OAAD;QACE,WAAW,sCAAsC;kBADnD,CAGE,oBAAC,KAAD;SAAG,WAAU;mBAAY,UAAU,SAAS;SAAO,CAAA,EACnD,oBAAC,KAAD;SAAG,WAAU;oBACR,UAAU,iBACX,UAAU,UACV;SACA,CAAA,CACA;UACF;SAjCC,UAAU,GAiCX,CACN;MACE,CAAA;KACF,CAAA,CAEJ;MAEJ;MAGL,kBACC,qBAAC,OAAD;GACE,WAAW,2CAA2C,QAAQ;aADhE,CAGE,oBAAC,OAAD;IACE,KAAK;IACL,WAAW,4CAA4C,UAAU;IACjE,OAAO,EAAE,gBAAgB,eAAe;cAEvC,WAAW,KAAK,cACf,qBAAC,OAAD;KAEE,WAAW,gCAAgC,cAAc,mBAAmB;KAC5E,OAAO;MACL,OAAO,QAAQ,mBAAmB;MAClC,iBAAiB;MAClB;KACD,GAAK,cACD;MACE,MAAM;MACN,UAAU;MACV,eAAe,YAAY,UAAU;MACrC,YAAY,MAA2B;AACrC,WAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,UAAE,gBAAgB;AAClB,oBAAY,UAAU;;;MAG3B,GACD,EAAE;eAnBR,CAqBE,oBAAC,OAAD;MACE,WAAW,6BAA6B,aAAa;gBAErD,oBAAC,eAAD,EAAe,GAAI,2BAA2B,UAAU,EAAI,CAAA;MACxD,CAAA,EACN,qBAAC,OAAD;MAAK,WAAW,0BAA0B;gBAA1C,CACE,oBAAC,KAAD;OAAG,WAAU;iBAAY,UAAU,SAAS;OAAO,CAAA,EACnD,oBAAC,KAAD;OAAG,WAAU;kBACR,UAAU,iBAA4B,UAAU,UACjD;OACA,CAAA,CACA;QACF;OAhCC,UAAU,GAgCX,CACN;IACE,CAAA,EAGN,oBAAC,OAAD;IACE,WAAW;cAEX,oBAAC,cAAD;KACE,kBAAkB,eAAe,OAAO;KACxC,cAAc,eAAe,OAAO;KACpC,CAAA;IACE,CAAA,CACF;KAEJ;;;AAIV,MAAa,6BAAmD;CAC9D,YAAY;CACZ,aAAa;CACb,YAAY,CACV;EAAE,IAAI;EAAW,OAAO;EAAW,EACnC;EAAE,IAAI;EAAQ,OAAO;EAAQ,CAC9B;CACD,uBAAuB,CAAC,aAAa;CACrC,QAAQ;EAEN;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,QAAQ;GACR,aAAa;GACb,KAAK;GACL,OAAO;GACR;EAED;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EACD,iBAAiB;GACf,OAAO;GACP,cAAc;GACd,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EACF,cAAc;GACZ,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EAEF,eAAe;GACb,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;IAAE,YAAY;IAAQ,UAAU;IAAU;GACxD,SAAS;IACP,mBAAmB;IACnB,iBAAiB;IAClB;GACD,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD,gBAAgB;GACd,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF,qBAAqB;GACnB,cAAc;GACd,OAAO;GACP,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,SAAS,CACP;IAAE,OAAO;IAAS,OAAO;IAAS,EAClC;IAAE,OAAO;IAAY,OAAO;IAAY,CACzC;GACD,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,KAAK;GACL,MAAM;GACN,cAAc;GACd,MAAM;GACN,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EAED,YAAY;GACV,OAAO;GACP,cAAc;GACd,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF,cAAc;GACZ,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR;EAED;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,OAAO;GACR;EACF;CAED,kBAAkB;EAChB,aAAa;EACb,QAAQ,CACN;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd,CACF;EACF;CACF"}
@@ -3,5 +3,5 @@ require("./WidgetInteractionContext-BiQvdkPb.cjs");
3
3
  require("./registries-DiCQ4oFx.cjs");
4
4
  require("./fields-D__8kJeJ.cjs");
5
5
  require("./MediaRenderer-DKCnoI18.cjs");
6
- const require_NestedWidget = require("./NestedWidget-DrRazqvX.cjs");
6
+ const require_NestedWidget = require("./NestedWidget-0YTK04F7.cjs");
7
7
  exports.nestedWidgetPropertySchema = require_NestedWidget.nestedWidgetPropertySchema;
@@ -1,5 +1,5 @@
1
1
  import "./use-account-D70N5avv.mjs";
2
- import "./FluidProvider-CztaeoZL.mjs";
2
+ import "./FluidProvider-YssKGmXj.mjs";
3
3
  import "./ScreenRenderer-CKu-Jc1I.mjs";
4
4
  import "./use-optional-store-BPICvfcP.mjs";
5
5
  import "./mysite-api-context-CoLr9vIf.mjs";
@@ -39,7 +39,7 @@ import "./ImageWidget-WtC8Rg1y.mjs";
39
39
  import "./LinkWidget-mKyp0LGz.mjs";
40
40
  import "./ListWidget-CRzXIlzF.mjs";
41
41
  import "./MySiteWidget-CY8eXMWv.mjs";
42
- import "./NestedWidget-Cgsv6RTh.mjs";
42
+ import "./NestedWidget-BXnLrul1.mjs";
43
43
  import "./QuickShareWidget-DmZjvUVT.mjs";
44
44
  import "./RecentActivityWidget-C4UFPIIB.mjs";
45
45
  import "./SeparatorWidget-DxTG9J7u.mjs";
@@ -52,5 +52,5 @@ import "./translation-adapter-CPr3Y0RW.mjs";
52
52
  import "./translation-adapter-nPt5lYdk.mjs";
53
53
  import "./ScreenHeaderContext-mFd2T-WH.mjs";
54
54
  import "./display-B3BfkaBm.mjs";
55
- import { n as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-DsQqt4qM.mjs";
55
+ import { n as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-DyQOtPM9.mjs";
56
56
  export { OrdersScreen, ordersScreenPropertySchema };
@@ -1,5 +1,5 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
- require("./FluidProvider-CKmCaFub.cjs");
2
+ require("./FluidProvider-CXqHtKMw.cjs");
3
3
  require("./ScreenRenderer-CZTdJd2G.cjs");
4
4
  require("./use-account-BBSExzPb.cjs");
5
5
  require("./use-optional-store-CIM4spDu.cjs");
@@ -40,7 +40,7 @@ require("./ImageWidget-CFjq42Nx.cjs");
40
40
  require("./LinkWidget-dihF4cKM.cjs");
41
41
  require("./ListWidget-BALU0iQQ.cjs");
42
42
  require("./MySiteWidget-BD1ICh_2.cjs");
43
- require("./NestedWidget-DrRazqvX.cjs");
43
+ require("./NestedWidget-0YTK04F7.cjs");
44
44
  require("./QuickShareWidget-CESDDIcr.cjs");
45
45
  require("./RecentActivityWidget-7tACMQqV.cjs");
46
46
  require("./SeparatorWidget-DVnbbshP.cjs");
@@ -53,6 +53,6 @@ require("./translation-adapter-BMvv-Nqx.cjs");
53
53
  require("./translation-adapter-CRb5EiLL.cjs");
54
54
  require("./ScreenHeaderContext-DI1qj4qi.cjs");
55
55
  require("./display-JuYIguJK.cjs");
56
- const require_OrdersScreen = require("./OrdersScreen-gMh1RSU1.cjs");
56
+ const require_OrdersScreen = require("./OrdersScreen-DunUiDwt.cjs");
57
57
  exports.OrdersScreen = require_OrdersScreen.OrdersScreen;
58
58
  exports.ordersScreenPropertySchema = require_OrdersScreen.ordersScreenPropertySchema;
@@ -1,5 +1,5 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
- const require_FluidProvider = require("./FluidProvider-CKmCaFub.cjs");
2
+ const require_FluidProvider = require("./FluidProvider-CXqHtKMw.cjs");
3
3
  const require_use_account = require("./use-account-BBSExzPb.cjs");
4
4
  const require_query_keys = require("./query-keys-DcXw31XS.cjs");
5
5
  const require_static_dict_adapter = require("./static-dict-adapter-C7G0SEJY.cjs");
@@ -1574,4 +1574,4 @@ Object.defineProperty(exports, "ordersScreenPropertySchema", {
1574
1574
  }
1575
1575
  });
1576
1576
 
1577
- //# sourceMappingURL=OrdersScreen-gMh1RSU1.cjs.map
1577
+ //# sourceMappingURL=OrdersScreen-DunUiDwt.cjs.map