@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.
- package/dist/{FluidProvider-CKmCaFub.cjs → FluidProvider-CXqHtKMw.cjs} +3 -3
- package/dist/{FluidProvider-CKmCaFub.cjs.map → FluidProvider-CXqHtKMw.cjs.map} +1 -1
- package/dist/{FluidProvider-CztaeoZL.mjs → FluidProvider-YssKGmXj.mjs} +3 -3
- package/dist/{FluidProvider-CztaeoZL.mjs.map → FluidProvider-YssKGmXj.mjs.map} +1 -1
- package/dist/{MessagingScreen-Cz47JOvi.cjs → MessagingScreen-BYDYBjwV.cjs} +3 -3
- package/dist/{MessagingScreen-0cNGHReM.cjs → MessagingScreen-CJBAdOPp.cjs} +2 -2
- package/dist/{MessagingScreen-0cNGHReM.cjs.map → MessagingScreen-CJBAdOPp.cjs.map} +1 -1
- package/dist/{MessagingScreen-BkruuTwv.mjs → MessagingScreen-DImdW2jI.mjs} +2 -2
- package/dist/{MessagingScreen-BkruuTwv.mjs.map → MessagingScreen-DImdW2jI.mjs.map} +1 -1
- package/dist/{MessagingScreen-C8XHBT4q.mjs → MessagingScreen-DdFiAFdf.mjs} +3 -3
- package/dist/{NestedWidget-DrRazqvX.cjs → NestedWidget-0YTK04F7.cjs} +26 -17
- package/dist/NestedWidget-0YTK04F7.cjs.map +1 -0
- package/dist/{NestedWidget-Cgsv6RTh.mjs → NestedWidget-BXnLrul1.mjs} +26 -17
- package/dist/NestedWidget-BXnLrul1.mjs.map +1 -0
- package/dist/{NestedWidget-DpCvLNRl.cjs → NestedWidget-C9ypn_4q.cjs} +1 -1
- package/dist/{OrdersScreen-DMzbr6H7.mjs → OrdersScreen-B0jx8cnV.mjs} +3 -3
- package/dist/{OrdersScreen-fY13DxDW.cjs → OrdersScreen-DSLwMt-8.cjs} +3 -3
- package/dist/{OrdersScreen-gMh1RSU1.cjs → OrdersScreen-DunUiDwt.cjs} +2 -2
- package/dist/{OrdersScreen-gMh1RSU1.cjs.map → OrdersScreen-DunUiDwt.cjs.map} +1 -1
- package/dist/{OrdersScreen-DsQqt4qM.mjs → OrdersScreen-DyQOtPM9.mjs} +2 -2
- package/dist/{OrdersScreen-DsQqt4qM.mjs.map → OrdersScreen-DyQOtPM9.mjs.map} +1 -1
- package/dist/{ProfileScreen-krWbnTCL.mjs → ProfileScreen-6zq3b24t.mjs} +3 -3
- package/dist/{ProfileScreen-krWbnTCL.mjs.map → ProfileScreen-6zq3b24t.mjs.map} +1 -1
- package/dist/{ProfileScreen-B2fDaEd2.cjs → ProfileScreen-BG7J9E1o.cjs} +3 -3
- package/dist/{ProfileScreen-B2fDaEd2.cjs.map → ProfileScreen-BG7J9E1o.cjs.map} +1 -1
- package/dist/{ProfileScreen-CYolxWbw.mjs → ProfileScreen-CQRzoZA5.mjs} +4 -4
- package/dist/{ProfileScreen-CrQ1t4xC.cjs → ProfileScreen-CpHWYc0b.cjs} +4 -4
- package/dist/{ShopScreen-BosF9GYb.mjs → ShopScreen-BdE_Wx1n.mjs} +3 -3
- package/dist/{ShopScreen-CyDAFe-O.cjs → ShopScreen-CrITAsuX.cjs} +3 -3
- package/dist/{ShopScreen-TjkdGDqA.cjs → ShopScreen-DAsoH_nU.cjs} +2 -2
- package/dist/{ShopScreen-TjkdGDqA.cjs.map → ShopScreen-DAsoH_nU.cjs.map} +1 -1
- package/dist/{ShopScreen-DlUOUOnJ.mjs → ShopScreen-Dh4amrNp.mjs} +2 -2
- package/dist/{ShopScreen-DlUOUOnJ.mjs.map → ShopScreen-Dh4amrNp.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-C_sIL3Qp.mjs → SubscriptionsScreen-B0Aup6Pw.mjs} +3 -3
- package/dist/{SubscriptionsScreen-C_sIL3Qp.mjs.map → SubscriptionsScreen-B0Aup6Pw.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-B5-XgmRs.cjs → SubscriptionsScreen-CxYdU6Sr.cjs} +3 -3
- package/dist/{SubscriptionsScreen-B5-XgmRs.cjs.map → SubscriptionsScreen-CxYdU6Sr.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-33ZWzTC_.mjs → SubscriptionsScreen-D0QQAQAn.mjs} +4 -4
- package/dist/{SubscriptionsScreen-D4oef3ub.cjs → SubscriptionsScreen-fHeWecM6.cjs} +4 -4
- package/dist/index.cjs +19 -19
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +19 -19
- package/dist/preview/preview-entry.cjs +3 -3
- package/dist/preview/preview-entry.mjs +3 -3
- package/dist/{use-portal-card-add-3ds-flow-BXIP3nVI.mjs → use-portal-card-add-3ds-flow-B-HZhV7O.mjs} +2 -2
- package/dist/{use-portal-card-add-3ds-flow-BXIP3nVI.mjs.map → use-portal-card-add-3ds-flow-B-HZhV7O.mjs.map} +1 -1
- package/dist/{use-portal-card-add-3ds-flow-Dd_sgVYj.cjs → use-portal-card-add-3ds-flow-Bu-6T-WF.cjs} +2 -2
- 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
- package/dist/{widget-package-utils-CTC5WJJq.cjs → widget-package-utils-04GgcH5M.cjs} +2 -2
- package/dist/{widget-package-utils-CTC5WJJq.cjs.map → widget-package-utils-04GgcH5M.cjs.map} +1 -1
- package/dist/{widget-package-utils-Cr6iaMPm.mjs → widget-package-utils-08fEY11c.mjs} +2 -2
- package/dist/{widget-package-utils-Cr6iaMPm.mjs.map → widget-package-utils-08fEY11c.mjs.map} +1 -1
- package/package.json +13 -13
- package/dist/NestedWidget-Cgsv6RTh.mjs.map +0 -1
- package/dist/NestedWidget-DrRazqvX.cjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./use-account-D70N5avv.mjs";
|
|
2
|
-
import "./FluidProvider-
|
|
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-
|
|
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-
|
|
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
|
|
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 @
|
|
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} @
|
|
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.
|
|
86
|
-
className: `flex shrink-0 flex-col
|
|
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-
|
|
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 @
|
|
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)("
|
|
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-
|
|
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
|
|
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 @
|
|
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} @
|
|
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__ */
|
|
90
|
-
className: `flex shrink-0 flex-col
|
|
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-
|
|
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 @
|
|
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("
|
|
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-
|
|
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":"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CE,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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
1577
|
+
//# sourceMappingURL=OrdersScreen-DunUiDwt.cjs.map
|