@fluid-app/rep-widgets 0.1.0
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/AlertWidget-2JHMNYIY.js +5 -0
- package/dist/AlertWidget-2JHMNYIY.js.map +1 -0
- package/dist/AlertWidget-VHXWOKM4.cjs +18 -0
- package/dist/AlertWidget-VHXWOKM4.cjs.map +1 -0
- package/dist/CalendarWidget-AQ7PVNSI.cjs +18 -0
- package/dist/CalendarWidget-AQ7PVNSI.cjs.map +1 -0
- package/dist/CalendarWidget-E54LNKCG.js +5 -0
- package/dist/CalendarWidget-E54LNKCG.js.map +1 -0
- package/dist/CarouselWidget-IPPFSXDZ.js +8 -0
- package/dist/CarouselWidget-IPPFSXDZ.js.map +1 -0
- package/dist/CarouselWidget-ZG6LJJXG.cjs +21 -0
- package/dist/CarouselWidget-ZG6LJJXG.cjs.map +1 -0
- package/dist/CatchUpWidget-CSSQMPPA.cjs +18 -0
- package/dist/CatchUpWidget-CSSQMPPA.cjs.map +1 -0
- package/dist/CatchUpWidget-HYJRKFN3.js +5 -0
- package/dist/CatchUpWidget-HYJRKFN3.js.map +1 -0
- package/dist/ChartWidget-MBLGRSJQ.cjs +19 -0
- package/dist/ChartWidget-MBLGRSJQ.cjs.map +1 -0
- package/dist/ChartWidget-OL5DRMGA.js +6 -0
- package/dist/ChartWidget-OL5DRMGA.js.map +1 -0
- package/dist/ContainerWidget-DETCLP52.js +8 -0
- package/dist/ContainerWidget-DETCLP52.js.map +1 -0
- package/dist/ContainerWidget-XQDJSJXO.cjs +21 -0
- package/dist/ContainerWidget-XQDJSJXO.cjs.map +1 -0
- package/dist/EmbedWidget-HTR2MJ25.cjs +16 -0
- package/dist/EmbedWidget-HTR2MJ25.cjs.map +1 -0
- package/dist/EmbedWidget-O2XFGDJS.js +3 -0
- package/dist/EmbedWidget-O2XFGDJS.js.map +1 -0
- package/dist/ImageWidget-L2MIYWTE.cjs +17 -0
- package/dist/ImageWidget-L2MIYWTE.cjs.map +1 -0
- package/dist/ImageWidget-RF6XKPPV.js +4 -0
- package/dist/ImageWidget-RF6XKPPV.js.map +1 -0
- package/dist/LayoutWidget-4XISA6RO.cjs +20 -0
- package/dist/LayoutWidget-4XISA6RO.cjs.map +1 -0
- package/dist/LayoutWidget-WZSMZLLM.js +7 -0
- package/dist/LayoutWidget-WZSMZLLM.js.map +1 -0
- package/dist/ListWidget-XY5C3P3C.cjs +19 -0
- package/dist/ListWidget-XY5C3P3C.cjs.map +1 -0
- package/dist/ListWidget-ZFRV6DKI.js +6 -0
- package/dist/ListWidget-ZFRV6DKI.js.map +1 -0
- package/dist/MySiteWidget-75NJUIWV.js +5 -0
- package/dist/MySiteWidget-75NJUIWV.js.map +1 -0
- package/dist/MySiteWidget-CBDKQT35.cjs +18 -0
- package/dist/MySiteWidget-CBDKQT35.cjs.map +1 -0
- package/dist/NestedWidget-N4I7LOVX.js +6 -0
- package/dist/NestedWidget-N4I7LOVX.js.map +1 -0
- package/dist/NestedWidget-VO3YYOOH.cjs +19 -0
- package/dist/NestedWidget-VO3YYOOH.cjs.map +1 -0
- package/dist/QuickShareWidget-3VGSFY4J.js +4 -0
- package/dist/QuickShareWidget-3VGSFY4J.js.map +1 -0
- package/dist/QuickShareWidget-VHDB5SYT.cjs +17 -0
- package/dist/QuickShareWidget-VHDB5SYT.cjs.map +1 -0
- package/dist/RecentActivityWidget-3KAR64SB.js +5 -0
- package/dist/RecentActivityWidget-3KAR64SB.js.map +1 -0
- package/dist/RecentActivityWidget-X5UABJHL.cjs +18 -0
- package/dist/RecentActivityWidget-X5UABJHL.cjs.map +1 -0
- package/dist/SpacerWidget-K7CXVECO.cjs +16 -0
- package/dist/SpacerWidget-K7CXVECO.cjs.map +1 -0
- package/dist/SpacerWidget-ODKNZAND.js +3 -0
- package/dist/SpacerWidget-ODKNZAND.js.map +1 -0
- package/dist/TableWidget-MDEBHVIA.cjs +20 -0
- package/dist/TableWidget-MDEBHVIA.cjs.map +1 -0
- package/dist/TableWidget-W6LL5FLE.js +7 -0
- package/dist/TableWidget-W6LL5FLE.js.map +1 -0
- package/dist/TextWidget-D72TL53O.js +4 -0
- package/dist/TextWidget-D72TL53O.js.map +1 -0
- package/dist/TextWidget-DYINWJGB.cjs +17 -0
- package/dist/TextWidget-DYINWJGB.cjs.map +1 -0
- package/dist/ToDoWidget-DH544SJH.cjs +18 -0
- package/dist/ToDoWidget-DH544SJH.cjs.map +1 -0
- package/dist/ToDoWidget-LCAYWRVH.js +5 -0
- package/dist/ToDoWidget-LCAYWRVH.js.map +1 -0
- package/dist/VideoWidget-VHAZTNLI.js +4 -0
- package/dist/VideoWidget-VHAZTNLI.js.map +1 -0
- package/dist/VideoWidget-YLRKZ27S.cjs +17 -0
- package/dist/VideoWidget-YLRKZ27S.cjs.map +1 -0
- package/dist/chunk-2KQFMF6L.js +413 -0
- package/dist/chunk-2KQFMF6L.js.map +1 -0
- package/dist/chunk-3CUVGQQI.cjs +15 -0
- package/dist/chunk-3CUVGQQI.cjs.map +1 -0
- package/dist/chunk-3RV7AYQZ.js +149 -0
- package/dist/chunk-3RV7AYQZ.js.map +1 -0
- package/dist/chunk-4M2A5W2D.cjs +42 -0
- package/dist/chunk-4M2A5W2D.cjs.map +1 -0
- package/dist/chunk-4XJCU4HY.js +248 -0
- package/dist/chunk-4XJCU4HY.js.map +1 -0
- package/dist/chunk-5HHN5MRZ.js +11 -0
- package/dist/chunk-5HHN5MRZ.js.map +1 -0
- package/dist/chunk-6GF46P3S.js +33 -0
- package/dist/chunk-6GF46P3S.js.map +1 -0
- package/dist/chunk-7JIRJTGY.js +32 -0
- package/dist/chunk-7JIRJTGY.js.map +1 -0
- package/dist/chunk-7XWMJDFE.js +443 -0
- package/dist/chunk-7XWMJDFE.js.map +1 -0
- package/dist/chunk-C7A3OMIF.cjs +446 -0
- package/dist/chunk-C7A3OMIF.cjs.map +1 -0
- package/dist/chunk-CEZOXMO6.js +377 -0
- package/dist/chunk-CEZOXMO6.js.map +1 -0
- package/dist/chunk-CM7D7WGL.cjs +36 -0
- package/dist/chunk-CM7D7WGL.cjs.map +1 -0
- package/dist/chunk-D4ULCQ42.cjs +353 -0
- package/dist/chunk-D4ULCQ42.cjs.map +1 -0
- package/dist/chunk-DKGP3DTX.cjs +389 -0
- package/dist/chunk-DKGP3DTX.cjs.map +1 -0
- package/dist/chunk-DM2JDG3D.js +318 -0
- package/dist/chunk-DM2JDG3D.js.map +1 -0
- package/dist/chunk-DW6V4ZCT.cjs +140 -0
- package/dist/chunk-DW6V4ZCT.cjs.map +1 -0
- package/dist/chunk-E4MY6TUE.cjs +255 -0
- package/dist/chunk-E4MY6TUE.cjs.map +1 -0
- package/dist/chunk-EHSWARYY.js +39 -0
- package/dist/chunk-EHSWARYY.js.map +1 -0
- package/dist/chunk-EUOP3MWJ.cjs +118 -0
- package/dist/chunk-EUOP3MWJ.cjs.map +1 -0
- package/dist/chunk-F3SFIX7U.cjs +58 -0
- package/dist/chunk-F3SFIX7U.cjs.map +1 -0
- package/dist/chunk-F63VY23B.js +174 -0
- package/dist/chunk-F63VY23B.js.map +1 -0
- package/dist/chunk-FSLUSFJ2.cjs +75 -0
- package/dist/chunk-FSLUSFJ2.cjs.map +1 -0
- package/dist/chunk-GA52TZC4.js +133 -0
- package/dist/chunk-GA52TZC4.js.map +1 -0
- package/dist/chunk-GRFCSQ2M.js +13 -0
- package/dist/chunk-GRFCSQ2M.js.map +1 -0
- package/dist/chunk-HBRGW3CJ.js +383 -0
- package/dist/chunk-HBRGW3CJ.js.map +1 -0
- package/dist/chunk-HDA2ZOV2.cjs +13 -0
- package/dist/chunk-HDA2ZOV2.cjs.map +1 -0
- package/dist/chunk-HQVTEFSO.js +386 -0
- package/dist/chunk-HQVTEFSO.js.map +1 -0
- package/dist/chunk-IU657MP5.js +270 -0
- package/dist/chunk-IU657MP5.js.map +1 -0
- package/dist/chunk-IY3BNQ5Y.js +24 -0
- package/dist/chunk-IY3BNQ5Y.js.map +1 -0
- package/dist/chunk-J2FIIZSN.js +137 -0
- package/dist/chunk-J2FIIZSN.js.map +1 -0
- package/dist/chunk-JRBJXVXL.cjs +251 -0
- package/dist/chunk-JRBJXVXL.cjs.map +1 -0
- package/dist/chunk-JYWKXNUO.cjs +37 -0
- package/dist/chunk-JYWKXNUO.cjs.map +1 -0
- package/dist/chunk-KE27RJ3X.cjs +954 -0
- package/dist/chunk-KE27RJ3X.cjs.map +1 -0
- package/dist/chunk-M4J3OZJF.cjs +152 -0
- package/dist/chunk-M4J3OZJF.cjs.map +1 -0
- package/dist/chunk-MKUJOEAC.cjs +178 -0
- package/dist/chunk-MKUJOEAC.cjs.map +1 -0
- package/dist/chunk-MNRHGJDQ.cjs +225 -0
- package/dist/chunk-MNRHGJDQ.cjs.map +1 -0
- package/dist/chunk-MNWWZGL2.js +14 -0
- package/dist/chunk-MNWWZGL2.js.map +1 -0
- package/dist/chunk-MWED53XR.js +115 -0
- package/dist/chunk-MWED53XR.js.map +1 -0
- package/dist/chunk-NCQQI2T2.cjs +386 -0
- package/dist/chunk-NCQQI2T2.cjs.map +1 -0
- package/dist/chunk-NGYR4RQF.js +476 -0
- package/dist/chunk-NGYR4RQF.js.map +1 -0
- package/dist/chunk-NNJDJNSY.cjs +197 -0
- package/dist/chunk-NNJDJNSY.cjs.map +1 -0
- package/dist/chunk-NOZVVD6G.cjs +26 -0
- package/dist/chunk-NOZVVD6G.cjs.map +1 -0
- package/dist/chunk-NUG3DWF7.js +55 -0
- package/dist/chunk-NUG3DWF7.js.map +1 -0
- package/dist/chunk-NXAZEYLC.cjs +136 -0
- package/dist/chunk-NXAZEYLC.cjs.map +1 -0
- package/dist/chunk-PNVBMN27.cjs +380 -0
- package/dist/chunk-PNVBMN27.cjs.map +1 -0
- package/dist/chunk-RKDOQV4T.js +73 -0
- package/dist/chunk-RKDOQV4T.js.map +1 -0
- package/dist/chunk-RMZFC7HF.cjs +17 -0
- package/dist/chunk-RMZFC7HF.cjs.map +1 -0
- package/dist/chunk-SBHL3GFW.js +40 -0
- package/dist/chunk-SBHL3GFW.js.map +1 -0
- package/dist/chunk-TFJQ4525.cjs +416 -0
- package/dist/chunk-TFJQ4525.cjs.map +1 -0
- package/dist/chunk-VBJ5FT4C.cjs +273 -0
- package/dist/chunk-VBJ5FT4C.cjs.map +1 -0
- package/dist/chunk-VZFL5BZM.js +222 -0
- package/dist/chunk-VZFL5BZM.js.map +1 -0
- package/dist/chunk-W7VPL5I4.js +252 -0
- package/dist/chunk-W7VPL5I4.js.map +1 -0
- package/dist/chunk-XALQ3ANE.cjs +34 -0
- package/dist/chunk-XALQ3ANE.cjs.map +1 -0
- package/dist/chunk-YCYKV5KF.cjs +43 -0
- package/dist/chunk-YCYKV5KF.cjs.map +1 -0
- package/dist/chunk-YJZGIS4L.cjs +479 -0
- package/dist/chunk-YJZGIS4L.cjs.map +1 -0
- package/dist/chunk-YU5DAILW.cjs +14 -0
- package/dist/chunk-YU5DAILW.cjs.map +1 -0
- package/dist/chunk-YY5WLV63.js +951 -0
- package/dist/chunk-YY5WLV63.js.map +1 -0
- package/dist/chunk-ZS7C474P.js +3 -0
- package/dist/chunk-ZS7C474P.js.map +1 -0
- package/dist/chunk-ZSUGXJWD.js +194 -0
- package/dist/chunk-ZSUGXJWD.js.map +1 -0
- package/dist/chunk-ZWFK5UUU.js +11 -0
- package/dist/chunk-ZWFK5UUU.js.map +1 -0
- package/dist/components/index.cjs +17 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +8 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/contexts/index.cjs +29 -0
- package/dist/contexts/index.cjs.map +1 -0
- package/dist/contexts/index.d.cts +73 -0
- package/dist/contexts/index.d.ts +73 -0
- package/dist/contexts/index.js +4 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/core/index.cjs +55 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +64 -0
- package/dist/core/index.d.ts +64 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/ui/index.cjs +80 -0
- package/dist/ui/index.cjs.map +1 -0
- package/dist/ui/index.d.cts +69 -0
- package/dist/ui/index.d.ts +69 -0
- package/dist/ui/index.js +7 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/widgets/index.cjs +217 -0
- package/dist/widgets/index.cjs.map +1 -0
- package/dist/widgets/index.d.cts +397 -0
- package/dist/widgets/index.d.ts +397 -0
- package/dist/widgets/index.js +59 -0
- package/dist/widgets/index.js.map +1 -0
- package/package.json +99 -0
- package/styles/globals.css +20 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkD4ULCQ42_cjs = require('./chunk-D4ULCQ42.cjs');
|
|
4
|
+
var chunkCM7D7WGL_cjs = require('./chunk-CM7D7WGL.cjs');
|
|
5
|
+
var recharts = require('recharts');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
var defaultData = [
|
|
9
|
+
{ name: "Jan", value: 186 },
|
|
10
|
+
{ name: "Feb", value: 305 },
|
|
11
|
+
{ name: "Mar", value: 237 },
|
|
12
|
+
{ name: "Apr", value: 273 },
|
|
13
|
+
{ name: "May", value: 209 },
|
|
14
|
+
{ name: "Jun", value: 214 }
|
|
15
|
+
];
|
|
16
|
+
var defaultPieData = [
|
|
17
|
+
{ name: "Jan", value: 186, fill: "var(--chart-1)" },
|
|
18
|
+
{ name: "Feb", value: 305, fill: "var(--chart-2)" },
|
|
19
|
+
{ name: "Mar", value: 237, fill: "var(--chart-3)" },
|
|
20
|
+
{ name: "Apr", value: 273, fill: "var(--chart-4)" },
|
|
21
|
+
{ name: "May", value: 209, fill: "var(--chart-5)" }
|
|
22
|
+
];
|
|
23
|
+
var defaultChartConfig = {
|
|
24
|
+
value: {
|
|
25
|
+
label: "Value",
|
|
26
|
+
color: "var(--chart-1)"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
function ChartWidget({
|
|
30
|
+
titleEnabled = true,
|
|
31
|
+
title = "Chart Widget",
|
|
32
|
+
titleFontSize = "lg",
|
|
33
|
+
titleColor = "foreground",
|
|
34
|
+
description = "Displaying sample data",
|
|
35
|
+
descriptionFontSize = "md",
|
|
36
|
+
descriptionColor = "foreground",
|
|
37
|
+
chartType = "bar",
|
|
38
|
+
showLegend = false,
|
|
39
|
+
showTooltip = true,
|
|
40
|
+
showGrid = true,
|
|
41
|
+
width = "100%",
|
|
42
|
+
height = "300px",
|
|
43
|
+
background = {
|
|
44
|
+
type: "solid",
|
|
45
|
+
color: "background"
|
|
46
|
+
},
|
|
47
|
+
padding = 4,
|
|
48
|
+
borderRadius = "md",
|
|
49
|
+
dataKey = "value",
|
|
50
|
+
xAxisKey = "name",
|
|
51
|
+
data,
|
|
52
|
+
chartConfig,
|
|
53
|
+
className,
|
|
54
|
+
...props
|
|
55
|
+
}) {
|
|
56
|
+
const backgroundColor = background.color || "background";
|
|
57
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
58
|
+
const chartData = data ?? defaultData;
|
|
59
|
+
const chartPieData = chartType === "pie" && data ? data.map((item, index) => ({
|
|
60
|
+
...item,
|
|
61
|
+
fill: `var(--chart-${index % 5 + 1})`
|
|
62
|
+
})) : defaultPieData;
|
|
63
|
+
const config = chartConfig ?? defaultChartConfig;
|
|
64
|
+
const renderChart = () => {
|
|
65
|
+
switch (chartType) {
|
|
66
|
+
case "bar":
|
|
67
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(recharts.BarChart, { data: chartData, children: [
|
|
68
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.XAxis, { dataKey: xAxisKey }),
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.YAxis, {}),
|
|
71
|
+
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltip, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltipContent, {}) }),
|
|
72
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegend, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegendContent, {}) }),
|
|
73
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.Bar, { dataKey, fill: "var(--color-value)", radius: 8 })
|
|
74
|
+
] });
|
|
75
|
+
case "line":
|
|
76
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(recharts.LineChart, { data: chartData, children: [
|
|
77
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.XAxis, { dataKey: xAxisKey }),
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.YAxis, {}),
|
|
80
|
+
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltip, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltipContent, {}) }),
|
|
81
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegend, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegendContent, {}) }),
|
|
82
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
83
|
+
recharts.Line,
|
|
84
|
+
{
|
|
85
|
+
type: "monotone",
|
|
86
|
+
dataKey,
|
|
87
|
+
stroke: "var(--color-value)",
|
|
88
|
+
strokeWidth: 2,
|
|
89
|
+
dot: { r: 4 }
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
] });
|
|
93
|
+
case "area":
|
|
94
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(recharts.AreaChart, { data: chartData, children: [
|
|
95
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.XAxis, { dataKey: xAxisKey }),
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.YAxis, {}),
|
|
98
|
+
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltip, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltipContent, {}) }),
|
|
99
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegend, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegendContent, {}) }),
|
|
100
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
101
|
+
recharts.Area,
|
|
102
|
+
{
|
|
103
|
+
type: "monotone",
|
|
104
|
+
dataKey,
|
|
105
|
+
stroke: "var(--color-value)",
|
|
106
|
+
fill: "var(--color-value)",
|
|
107
|
+
fillOpacity: 0.6
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
] });
|
|
111
|
+
case "pie":
|
|
112
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(recharts.PieChart, { children: [
|
|
113
|
+
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltip, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltipContent, { hideLabel: true }) }),
|
|
114
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegend, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegendContent, {}) }),
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
116
|
+
recharts.Pie,
|
|
117
|
+
{
|
|
118
|
+
data: chartPieData,
|
|
119
|
+
dataKey,
|
|
120
|
+
nameKey: xAxisKey,
|
|
121
|
+
cx: "50%",
|
|
122
|
+
cy: "50%",
|
|
123
|
+
outerRadius: 80,
|
|
124
|
+
label: true
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
] });
|
|
128
|
+
default:
|
|
129
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(recharts.BarChart, { data: chartData, children: [
|
|
130
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.XAxis, { dataKey: xAxisKey }),
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.YAxis, {}),
|
|
133
|
+
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltip, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartTooltipContent, {}) }),
|
|
134
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegend, { content: /* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartLegendContent, {}) }),
|
|
135
|
+
/* @__PURE__ */ jsxRuntime.jsx(recharts.Bar, { dataKey, fill: "var(--color-value)", radius: 8 })
|
|
136
|
+
] });
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
140
|
+
chunkD4ULCQ42_cjs.Card,
|
|
141
|
+
{
|
|
142
|
+
className: `bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className}`,
|
|
143
|
+
style: {
|
|
144
|
+
width,
|
|
145
|
+
maxWidth: "100%",
|
|
146
|
+
backgroundImage
|
|
147
|
+
},
|
|
148
|
+
...props,
|
|
149
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6", children: [
|
|
150
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
151
|
+
titleEnabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
152
|
+
"h3",
|
|
153
|
+
{
|
|
154
|
+
className: `text-${titleFontSize} text-${titleColor} font-bold`,
|
|
155
|
+
children: title
|
|
156
|
+
}
|
|
157
|
+
),
|
|
158
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
159
|
+
"p",
|
|
160
|
+
{
|
|
161
|
+
className: `text-${descriptionFontSize} text-${descriptionColor}`,
|
|
162
|
+
children: description
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] }),
|
|
166
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD4ULCQ42_cjs.ChartContainer, { config, style: { height }, children: renderChart() })
|
|
167
|
+
] })
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
var chartWidgetPropertySchema = {
|
|
172
|
+
widgetType: "ChartWidget",
|
|
173
|
+
displayName: "Chart",
|
|
174
|
+
tabsConfig: [
|
|
175
|
+
{ id: "styling", label: "Styling" },
|
|
176
|
+
{ id: "data", label: "Data" }
|
|
177
|
+
],
|
|
178
|
+
dataSourceTargetProps: ["data", "chartConfig"],
|
|
179
|
+
fields: [
|
|
180
|
+
// Content Tab - Title Group
|
|
181
|
+
{
|
|
182
|
+
key: "titleEnabled",
|
|
183
|
+
label: "Widget Title",
|
|
184
|
+
type: "boolean",
|
|
185
|
+
description: "Enable the title displayed above the chart",
|
|
186
|
+
defaultValue: true,
|
|
187
|
+
tab: "styling",
|
|
188
|
+
group: "Title"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
key: "title",
|
|
192
|
+
label: "Title",
|
|
193
|
+
type: "text",
|
|
194
|
+
description: "The chart title",
|
|
195
|
+
defaultValue: "Chart Widget",
|
|
196
|
+
tab: "styling",
|
|
197
|
+
group: "Title",
|
|
198
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
199
|
+
},
|
|
200
|
+
chunkCM7D7WGL_cjs.getFontSizeField({
|
|
201
|
+
key: "titleFontSize",
|
|
202
|
+
label: "Title Font Size",
|
|
203
|
+
description: "Font size for the chart title",
|
|
204
|
+
defaultValue: "lg",
|
|
205
|
+
tab: "styling",
|
|
206
|
+
group: "Title",
|
|
207
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
208
|
+
}),
|
|
209
|
+
chunkCM7D7WGL_cjs.getColorField({
|
|
210
|
+
key: "titleColor",
|
|
211
|
+
label: "Title Color",
|
|
212
|
+
description: "Color for the chart title",
|
|
213
|
+
defaultValue: "foreground",
|
|
214
|
+
tab: "styling",
|
|
215
|
+
group: "Title",
|
|
216
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
217
|
+
}),
|
|
218
|
+
// Content Tab - Description Group
|
|
219
|
+
{
|
|
220
|
+
key: "description",
|
|
221
|
+
label: "Description",
|
|
222
|
+
type: "textarea",
|
|
223
|
+
description: "The chart description",
|
|
224
|
+
rows: 2,
|
|
225
|
+
defaultValue: "Displaying sample data",
|
|
226
|
+
tab: "styling",
|
|
227
|
+
group: "Description"
|
|
228
|
+
},
|
|
229
|
+
chunkCM7D7WGL_cjs.getFontSizeField({
|
|
230
|
+
key: "descriptionFontSize",
|
|
231
|
+
label: "Description Font Size",
|
|
232
|
+
description: "Font size for the chart description",
|
|
233
|
+
defaultValue: "md",
|
|
234
|
+
tab: "styling",
|
|
235
|
+
group: "Description"
|
|
236
|
+
}),
|
|
237
|
+
chunkCM7D7WGL_cjs.getColorField({
|
|
238
|
+
key: "descriptionColor",
|
|
239
|
+
label: "Description Color",
|
|
240
|
+
description: "Color for the chart description",
|
|
241
|
+
defaultValue: "foreground",
|
|
242
|
+
tab: "styling",
|
|
243
|
+
group: "Description"
|
|
244
|
+
}),
|
|
245
|
+
// Styling Tab - Design Group
|
|
246
|
+
{
|
|
247
|
+
key: "chartType",
|
|
248
|
+
label: "Chart Type",
|
|
249
|
+
type: "select",
|
|
250
|
+
description: "Type of chart to display",
|
|
251
|
+
options: [
|
|
252
|
+
{ label: "Bar Chart", value: "bar" },
|
|
253
|
+
{ label: "Line Chart", value: "line" },
|
|
254
|
+
{ label: "Area Chart", value: "area" },
|
|
255
|
+
{ label: "Pie Chart", value: "pie" }
|
|
256
|
+
],
|
|
257
|
+
defaultValue: "bar",
|
|
258
|
+
tab: "styling",
|
|
259
|
+
group: "Design"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
key: "showLegend",
|
|
263
|
+
label: "Show Legend",
|
|
264
|
+
type: "boolean",
|
|
265
|
+
description: "Display chart legend",
|
|
266
|
+
defaultValue: false,
|
|
267
|
+
tab: "styling",
|
|
268
|
+
group: "Design"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
key: "showTooltip",
|
|
272
|
+
label: "Show Tooltip",
|
|
273
|
+
type: "boolean",
|
|
274
|
+
description: "Display tooltip on hover",
|
|
275
|
+
defaultValue: true,
|
|
276
|
+
tab: "styling",
|
|
277
|
+
group: "Design"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
key: "showGrid",
|
|
281
|
+
label: "Show Grid",
|
|
282
|
+
type: "boolean",
|
|
283
|
+
description: "Display background grid lines",
|
|
284
|
+
defaultValue: true,
|
|
285
|
+
tab: "styling",
|
|
286
|
+
group: "Design"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
key: "separator",
|
|
290
|
+
type: "separator",
|
|
291
|
+
label: "Separator",
|
|
292
|
+
tab: "styling",
|
|
293
|
+
group: "Design"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
key: "width",
|
|
297
|
+
label: "Width",
|
|
298
|
+
type: "text",
|
|
299
|
+
description: "Width of the chart container (CSS value, e.g., 100%, 600px)",
|
|
300
|
+
defaultValue: "100%",
|
|
301
|
+
tab: "styling",
|
|
302
|
+
group: "Design"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
key: "height",
|
|
306
|
+
label: "Height",
|
|
307
|
+
type: "text",
|
|
308
|
+
description: "Height of the chart (CSS value, e.g., 300px, 400px)",
|
|
309
|
+
defaultValue: "300px",
|
|
310
|
+
tab: "styling",
|
|
311
|
+
group: "Design"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
key: "separator2",
|
|
315
|
+
type: "separator",
|
|
316
|
+
label: "Separator",
|
|
317
|
+
tab: "styling",
|
|
318
|
+
group: "Design"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
type: "background",
|
|
322
|
+
key: "background",
|
|
323
|
+
label: "Background",
|
|
324
|
+
description: "Background for the chart container",
|
|
325
|
+
defaultValue: "background",
|
|
326
|
+
tab: "styling",
|
|
327
|
+
group: "Design"
|
|
328
|
+
},
|
|
329
|
+
chunkCM7D7WGL_cjs.getPaddingField({
|
|
330
|
+
key: "padding",
|
|
331
|
+
label: "Padding",
|
|
332
|
+
description: "Padding for the chart container",
|
|
333
|
+
defaultValue: 4,
|
|
334
|
+
tab: "styling",
|
|
335
|
+
group: "Design"
|
|
336
|
+
}),
|
|
337
|
+
chunkCM7D7WGL_cjs.getBorderRadiusField({
|
|
338
|
+
key: "borderRadius",
|
|
339
|
+
label: "Border Radius",
|
|
340
|
+
description: "Border radius for the chart container",
|
|
341
|
+
defaultValue: "md",
|
|
342
|
+
tab: "styling",
|
|
343
|
+
group: "Design"
|
|
344
|
+
}),
|
|
345
|
+
// Data Tab - Data Group
|
|
346
|
+
{
|
|
347
|
+
key: "dataSource",
|
|
348
|
+
label: "Data Source",
|
|
349
|
+
type: "dataSource",
|
|
350
|
+
description: "Configure dynamic data fetching from an API",
|
|
351
|
+
tab: "data",
|
|
352
|
+
group: "Data"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
key: "dataKey",
|
|
356
|
+
label: "Data Key",
|
|
357
|
+
type: "select",
|
|
358
|
+
description: "Key in the data to use for chart values",
|
|
359
|
+
options: [{ label: "value", value: "value" }],
|
|
360
|
+
defaultValue: "value",
|
|
361
|
+
tab: "data",
|
|
362
|
+
group: "Data"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
key: "xAxisKey",
|
|
366
|
+
label: "X-Axis Key",
|
|
367
|
+
type: "select",
|
|
368
|
+
description: "Key in the data to use for X-axis labels",
|
|
369
|
+
options: [{ label: "name", value: "name" }],
|
|
370
|
+
defaultValue: "name",
|
|
371
|
+
tab: "data",
|
|
372
|
+
group: "Data"
|
|
373
|
+
}
|
|
374
|
+
]
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
exports.ChartWidget = ChartWidget;
|
|
378
|
+
exports.chartWidgetPropertySchema = chartWidgetPropertySchema;
|
|
379
|
+
//# sourceMappingURL=chunk-PNVBMN27.cjs.map
|
|
380
|
+
//# sourceMappingURL=chunk-PNVBMN27.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/widgets/ChartWidget.tsx"],"names":["jsxs","RechartsBarChart","jsx","CartesianGrid","XAxis","YAxis","ChartTooltip","ChartTooltipContent","ChartLegend","ChartLegendContent","Bar","RechartsLineChart","Line","RechartsAreaChart","Area","RechartsPieChart","Pie","Card","ChartContainer","getFontSizeField","getColorField","getPaddingField","getBorderRadiusField"],"mappings":"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","file":"chunk-PNVBMN27.cjs","sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport { Card } from \"../ui/card\";\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n} from \"../ui/chart\";\nimport type { ComponentProps } from \"react\";\nimport {\n Bar,\n BarChart as RechartsBarChart,\n Line,\n LineChart as RechartsLineChart,\n Area,\n AreaChart as RechartsAreaChart,\n Pie,\n PieChart as RechartsPieChart,\n XAxis,\n YAxis,\n CartesianGrid,\n} from \"recharts\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getPaddingField,\n} from \"../core/fields\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n} from \"@fluid-app/rep-core/types\";\n\ntype ChartDataPoint = Record<string, unknown>;\n\ntype ChartWidgetProps = ComponentProps<\"div\"> & {\n // Title\n titleEnabled?: boolean;\n title?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Description\n description?: string;\n descriptionFontSize?: FontSizeOptions;\n descriptionColor?: ColorOptions;\n\n // Design\n chartType?: \"bar\" | \"line\" | \"area\" | \"pie\";\n showLegend?: boolean;\n showTooltip?: boolean;\n showGrid?: boolean;\n width?: string;\n height?: string;\n background?: BackgroundValue;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n\n // Data\n dataKey?: string;\n xAxisKey?: string;\n /** Chart data - when provided via dataSource, this overrides defaultData */\n data?: ChartDataPoint[];\n /** Chart configuration - can be dynamically provided via dataSource */\n chartConfig?: Record<string, { label: string; color: string }>;\n};\n\n// Default sample data for demonstration\nconst defaultData = [\n { name: \"Jan\", value: 186 },\n { name: \"Feb\", value: 305 },\n { name: \"Mar\", value: 237 },\n { name: \"Apr\", value: 273 },\n { name: \"May\", value: 209 },\n { name: \"Jun\", value: 214 },\n];\n\n// Pie chart data with individual fill properties\nconst defaultPieData = [\n { name: \"Jan\", value: 186, fill: \"var(--chart-1)\" },\n { name: \"Feb\", value: 305, fill: \"var(--chart-2)\" },\n { name: \"Mar\", value: 237, fill: \"var(--chart-3)\" },\n { name: \"Apr\", value: 273, fill: \"var(--chart-4)\" },\n { name: \"May\", value: 209, fill: \"var(--chart-5)\" },\n];\n\nconst defaultChartConfig = {\n value: {\n label: \"Value\",\n color: \"var(--chart-1)\",\n },\n};\n\nexport function ChartWidget({\n titleEnabled = true,\n title = \"Chart Widget\",\n titleFontSize = \"lg\",\n titleColor = \"foreground\",\n\n description = \"Displaying sample data\",\n descriptionFontSize = \"md\",\n descriptionColor = \"foreground\",\n\n chartType = \"bar\",\n showLegend = false,\n showTooltip = true,\n showGrid = true,\n width = \"100%\",\n height = \"300px\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n padding = 4,\n borderRadius = \"md\",\n\n dataKey = \"value\",\n xAxisKey = \"name\",\n data,\n chartConfig,\n className,\n ...props\n}: ChartWidgetProps) {\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 // Use provided data or fall back to default\n const chartData = data ?? defaultData;\n const chartPieData =\n chartType === \"pie\" && data\n ? data.map((item, index) => ({\n ...item,\n fill: `var(--chart-${(index % 5) + 1})`,\n }))\n : defaultPieData;\n const config = chartConfig ?? defaultChartConfig;\n const renderChart = () => {\n switch (chartType) {\n case \"bar\":\n return (\n <RechartsBarChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n </RechartsBarChart>\n );\n\n case \"line\":\n return (\n <RechartsLineChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Line\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"var(--color-value)\"\n strokeWidth={2}\n dot={{ r: 4 }}\n />\n </RechartsLineChart>\n );\n\n case \"area\":\n return (\n <RechartsAreaChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Area\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"var(--color-value)\"\n fill=\"var(--color-value)\"\n fillOpacity={0.6}\n />\n </RechartsAreaChart>\n );\n\n case \"pie\":\n return (\n <RechartsPieChart>\n {showTooltip && (\n <ChartTooltip content={<ChartTooltipContent hideLabel />} />\n )}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Pie\n data={chartPieData}\n dataKey={dataKey}\n nameKey={xAxisKey}\n cx=\"50%\"\n cy=\"50%\"\n outerRadius={80}\n label\n />\n </RechartsPieChart>\n );\n\n default:\n // Fallback to bar chart for unknown chart types\n return (\n <RechartsBarChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n </RechartsBarChart>\n );\n }\n };\n\n return (\n <Card\n className={`bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className}`}\n style={{\n width,\n maxWidth: \"100%\",\n backgroundImage,\n }}\n {...props}\n >\n <div className=\"p-6\">\n <div className=\"mb-4\">\n {titleEnabled && (\n <h3\n className={`text-${titleFontSize} text-${titleColor} font-bold`}\n >\n {title}\n </h3>\n )}\n {description && (\n <p\n className={`text-${descriptionFontSize} text-${descriptionColor}`}\n >\n {description}\n </p>\n )}\n </div>\n <ChartContainer config={config} style={{ height }}>\n {renderChart()}\n </ChartContainer>\n </div>\n </Card>\n );\n}\n\nexport const chartWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"ChartWidget\",\n displayName: \"Chart\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"data\", \"chartConfig\"],\n fields: [\n // Content Tab - Title Group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the chart\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"title\",\n label: \"Title\",\n type: \"text\",\n description: \"The chart title\",\n defaultValue: \"Chart Widget\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the chart title\",\n defaultValue: \"lg\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the chart title\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n\n // Content Tab - Description Group\n {\n key: \"description\",\n label: \"Description\",\n type: \"textarea\",\n description: \"The chart description\",\n rows: 2,\n defaultValue: \"Displaying sample data\",\n tab: \"styling\",\n group: \"Description\",\n },\n getFontSizeField({\n key: \"descriptionFontSize\",\n label: \"Description Font Size\",\n description: \"Font size for the chart description\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Description\",\n }),\n getColorField({\n key: \"descriptionColor\",\n label: \"Description Color\",\n description: \"Color for the chart description\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Description\",\n }),\n\n // Styling Tab - Design Group\n {\n key: \"chartType\",\n label: \"Chart Type\",\n type: \"select\",\n description: \"Type of chart to display\",\n options: [\n { label: \"Bar Chart\", value: \"bar\" },\n { label: \"Line Chart\", value: \"line\" },\n { label: \"Area Chart\", value: \"area\" },\n { label: \"Pie Chart\", value: \"pie\" },\n ],\n defaultValue: \"bar\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showLegend\",\n label: \"Show Legend\",\n type: \"boolean\",\n description: \"Display chart legend\",\n defaultValue: false,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showTooltip\",\n label: \"Show Tooltip\",\n type: \"boolean\",\n description: \"Display tooltip on hover\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showGrid\",\n label: \"Show Grid\",\n type: \"boolean\",\n description: \"Display background grid lines\",\n defaultValue: true,\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: \"width\",\n label: \"Width\",\n type: \"text\",\n description:\n \"Width of the chart container (CSS value, e.g., 100%, 600px)\",\n defaultValue: \"100%\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"height\",\n label: \"Height\",\n type: \"text\",\n description: \"Height of the chart (CSS value, e.g., 300px, 400px)\",\n defaultValue: \"300px\",\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 {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the chart container\",\n defaultValue: \"background\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding for the chart container\",\n defaultValue: 4,\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the chart container\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n\n // Data Tab - Data Group\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\",\n },\n {\n key: \"dataKey\",\n label: \"Data Key\",\n type: \"select\",\n description: \"Key in the data to use for chart values\",\n options: [{ label: \"value\", value: \"value\" }],\n defaultValue: \"value\",\n tab: \"data\",\n group: \"Data\",\n },\n {\n key: \"xAxisKey\",\n label: \"X-Axis Key\",\n type: \"select\",\n description: \"Key in the data to use for X-axis labels\",\n options: [{ label: \"name\", value: \"name\" }],\n defaultValue: \"name\",\n tab: \"data\",\n group: \"Data\",\n },\n ],\n};\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { RegistryProvider, useRegistry } from './chunk-6GF46P3S.js';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { WIDGET_TYPE_NAMES } from '@fluid-app/rep-core/types';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
function ScreenRendererContent({
|
|
7
|
+
screen,
|
|
8
|
+
containerWidgetTypes,
|
|
9
|
+
className
|
|
10
|
+
}) {
|
|
11
|
+
const registry = useRegistry();
|
|
12
|
+
const isContainerWidget = useCallback(
|
|
13
|
+
(widgetType) => containerWidgetTypes.includes(widgetType),
|
|
14
|
+
[containerWidgetTypes]
|
|
15
|
+
);
|
|
16
|
+
const renderWidget = useCallback(
|
|
17
|
+
(widget, index, currentPath) => {
|
|
18
|
+
const Component = registry[widget.type];
|
|
19
|
+
if (!Component) {
|
|
20
|
+
console.warn(
|
|
21
|
+
`Widget type "${String(widget.type)}" not found in registry`
|
|
22
|
+
);
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const widgetPath = [...currentPath, index];
|
|
26
|
+
const additionalProps = isContainerWidget(widget.type) ? {
|
|
27
|
+
widgetId: widget.id,
|
|
28
|
+
widgetPath
|
|
29
|
+
} : {};
|
|
30
|
+
const props = {
|
|
31
|
+
...widget.props,
|
|
32
|
+
...additionalProps
|
|
33
|
+
};
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
className: "h-full w-full overflow-x-hidden",
|
|
38
|
+
children: /* @__PURE__ */ jsx(Component, { ...props })
|
|
39
|
+
},
|
|
40
|
+
widget.id || index
|
|
41
|
+
);
|
|
42
|
+
},
|
|
43
|
+
[registry, isContainerWidget]
|
|
44
|
+
);
|
|
45
|
+
return /* @__PURE__ */ jsx("div", { className: className || "h-full w-full", children: screen?.map((item, index) => {
|
|
46
|
+
if (!item) return null;
|
|
47
|
+
return renderWidget(item, index, []);
|
|
48
|
+
}) });
|
|
49
|
+
}
|
|
50
|
+
function ScreenRenderer(props) {
|
|
51
|
+
const {
|
|
52
|
+
screen,
|
|
53
|
+
registry,
|
|
54
|
+
containerWidgetTypes = [
|
|
55
|
+
WIDGET_TYPE_NAMES.Layout,
|
|
56
|
+
WIDGET_TYPE_NAMES.Container
|
|
57
|
+
],
|
|
58
|
+
className
|
|
59
|
+
} = props;
|
|
60
|
+
const registryProviderProps = registry !== void 0 ? { registry } : {};
|
|
61
|
+
return /* @__PURE__ */ jsx(RegistryProvider, { ...registryProviderProps, children: /* @__PURE__ */ jsx(
|
|
62
|
+
ScreenRendererContent,
|
|
63
|
+
{
|
|
64
|
+
screen,
|
|
65
|
+
containerWidgetTypes,
|
|
66
|
+
className
|
|
67
|
+
}
|
|
68
|
+
) });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { ScreenRenderer };
|
|
72
|
+
//# sourceMappingURL=chunk-RKDOQV4T.js.map
|
|
73
|
+
//# sourceMappingURL=chunk-RKDOQV4T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/ScreenRenderer.tsx"],"names":[],"mappings":";;;;;AAkCA,SAAS,qBAAA,CAAsB;AAAA,EAC7B,MAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA,EAA+B;AAC7B,EAAA,MAAM,WAAW,WAAA,EAAY;AAG7B,EAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,IACxB,CAAC,UAAA,KAAuB,oBAAA,CAAqB,QAAA,CAAS,UAAU,CAAA;AAAA,IAChE,CAAC,oBAAoB;AAAA,GACvB;AAGA,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,MAAA,EAAsB,KAAA,EAAe,WAAA,KAA4B;AAChE,MAAA,MAAM,SAAA,GAAY,QAAA,CAAS,MAAA,CAAO,IAAI,CAAA;AACtC,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,CAAA,aAAA,EAAgB,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA,uBAAA;AAAA,SACrC;AACA,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,UAAA,GAAa,CAAC,GAAG,WAAA,EAAa,KAAK,CAAA;AAGzC,MAAA,MAAM,eAAA,GAAkB,iBAAA,CAAkB,MAAA,CAAO,IAAI,CAAA,GACjD;AAAA,QACE,UAAU,MAAA,CAAO,EAAA;AAAA,QACjB;AAAA,UAEF,EAAC;AAEL,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,GAAG,MAAA,CAAO,KAAA;AAAA,QACV,GAAG;AAAA,OACL;AAEA,MAAA,uBACE,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAU,iCAAA;AAAA,UAEV,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAW,GAAG,KAAA,EAAO;AAAA,SAAA;AAAA,QAHjB,OAAO,EAAA,IAAM;AAAA,OAIpB;AAAA,IAEJ,CAAA;AAAA,IACA,CAAC,UAAU,iBAAiB;AAAA,GAC9B;AAEA,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAW,SAAA,IAAa,iBAC1B,QAAA,EAAA,MAAA,EAAQ,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAE5B,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,IAAA,OAAO,YAAA,CAAa,IAAA,EAAM,KAAA,EAAO,EAAE,CAAA;AAAA,EACrC,CAAC,CAAA,EACH,CAAA;AAEJ;AAwBO,SAAS,eAGd,KAAA,EAA+B;AAC/B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,QAAA;AAAA,IACA,oBAAA,GAAuB;AAAA,MACrB,iBAAA,CAAkB,MAAA;AAAA,MAClB,iBAAA,CAAkB;AAAA,KACpB;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AAIJ,EAAA,MAAM,wBAAwB,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa,EAAC;AAEvE,EAAA,uBACE,GAAA,CAAC,gBAAA,EAAA,EAAkB,GAAG,qBAAA,EAKpB,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,oBAAA;AAAA,MACA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ","file":"chunk-RKDOQV4T.js","sourcesContent":["import type { ComponentType } from \"react\";\nimport { useCallback } from \"react\";\nimport type {\n WidgetSchema,\n TypedWidgetSchema,\n WidgetPath,\n} from \"@fluid-app/rep-core/types\";\nimport { WIDGET_TYPE_NAMES } from \"@fluid-app/rep-core/types\";\nimport { RegistryProvider, useRegistry } from \"../contexts/RegistryContext\";\n\nexport interface ScreenRendererProps<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends Record<string, ComponentType<any>>,\n> {\n /** Array of widget schemas to render */\n screen: TypedWidgetSchema<T>[] | WidgetSchema[];\n /** Widget registry mapping type names to components */\n registry?: T;\n /** Container widgets (like LayoutWidget) receive these additional props */\n containerWidgetTypes?: string[];\n /** Additional CSS classes for the wrapper div */\n className?: string;\n}\n\ninterface ScreenRendererContentProps {\n screen: WidgetSchema[];\n containerWidgetTypes: string[];\n className?: string | undefined;\n}\n\n/**\n * Internal component that uses the registry from context.\n * This allows us to avoid prop drilling the registry.\n */\nfunction ScreenRendererContent({\n screen,\n containerWidgetTypes,\n className,\n}: ScreenRendererContentProps) {\n const registry = useRegistry();\n\n // Check if a widget type is a container\n const isContainerWidget = useCallback(\n (widgetType: string) => containerWidgetTypes.includes(widgetType),\n [containerWidgetTypes],\n );\n\n // Render widgets recursively with path tracking\n const renderWidget = useCallback(\n (widget: WidgetSchema, index: number, currentPath: WidgetPath) => {\n const Component = registry[widget.type];\n if (!Component) {\n console.warn(\n `Widget type \"${String(widget.type)}\" not found in registry`,\n );\n return null;\n }\n\n const widgetPath = [...currentPath, index];\n\n // Build additional props for container widgets\n const additionalProps = isContainerWidget(widget.type)\n ? {\n widgetId: widget.id,\n widgetPath,\n }\n : {};\n\n const props = {\n ...widget.props,\n ...additionalProps,\n };\n\n return (\n <div\n key={widget.id || index}\n className=\"h-full w-full overflow-x-hidden\"\n >\n <Component {...props} />\n </div>\n );\n },\n [registry, isContainerWidget],\n );\n\n return (\n <div className={className || \"h-full w-full\"}>\n {screen?.map((item, index) => {\n // Skip null items (empty grid cells)\n if (!item) return null;\n return renderWidget(item, index, []);\n })}\n </div>\n );\n}\n\n/**\n * ScreenRenderer - View-only component for rendering widget screens.\n *\n * This is a simplified version designed for the SDK that only handles\n * rendering widgets without edit mode or drag-and-drop functionality.\n *\n * Features:\n * - Static rendering of widgets\n * - Registry context: No prop drilling for widget registry\n * - Container widget support with path tracking\n *\n * Usage:\n * ```tsx\n * import { ScreenRenderer } from '@fluid-app/rep-widgets/core';\n * import { WIDGET_REGISTRY } from '@fluid-app/rep-widgets/widgets';\n *\n * <ScreenRenderer\n * screen={widgets}\n * registry={WIDGET_REGISTRY}\n * />\n * ```\n */\nexport function ScreenRenderer<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends Record<string, ComponentType<any>>,\n>(props: ScreenRendererProps<T>) {\n const {\n screen,\n registry,\n containerWidgetTypes = [\n WIDGET_TYPE_NAMES.Layout,\n WIDGET_TYPE_NAMES.Container,\n ],\n className,\n } = props;\n\n // Conditionally pass registry prop to satisfy exactOptionalPropertyTypes\n // When registry is undefined, we omit it entirely and let RegistryProvider inherit from parent\n const registryProviderProps = registry !== undefined ? { registry } : {};\n\n return (\n <RegistryProvider {...registryProviderProps}>\n {/* Type assertion required: TypedWidgetSchema<T>[] is a subtype of WidgetSchema[]\n when T's components accept props compatible with WidgetSchema props.\n This enables type-safe widget rendering with custom registries while allowing\n the internal renderer to work with the base WidgetSchema type. */}\n <ScreenRendererContent\n screen={screen as WidgetSchema[]}\n containerWidgetTypes={containerWidgetTypes}\n className={className}\n />\n </RegistryProvider>\n );\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDW6V4ZCT_cjs = require('./chunk-DW6V4ZCT.cjs');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
function AlertWidget(props) {
|
|
7
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkDW6V4ZCT_cjs.TextWidget, { ...props });
|
|
8
|
+
}
|
|
9
|
+
var alertWidgetPropertySchema = {
|
|
10
|
+
...chunkDW6V4ZCT_cjs.textWidgetPropertySchema,
|
|
11
|
+
widgetType: "AlertWidget"
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.AlertWidget = AlertWidget;
|
|
15
|
+
exports.alertWidgetPropertySchema = alertWidgetPropertySchema;
|
|
16
|
+
//# sourceMappingURL=chunk-RMZFC7HF.cjs.map
|
|
17
|
+
//# sourceMappingURL=chunk-RMZFC7HF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/widgets/AlertWidget.tsx"],"names":["jsx","TextWidget","textWidgetPropertySchema"],"mappings":";;;;;AAOO,SAAS,YAAY,KAAA,EAA0C;AACpE,EAAA,uBAAOA,cAAA,CAACC,4BAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAChC;AAEO,IAAM,yBAAA,GAAkD;AAAA,EAC7D,GAAGC,0CAAA;AAAA,EACH,UAAA,EAAY;AACd","file":"chunk-RMZFC7HF.cjs","sourcesContent":["import { TextWidget, textWidgetPropertySchema } from \"./TextWidget\";\nimport type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport type { ComponentProps } from \"react\";\n\n/**\n * AlertWidget - Wrapper for TextWidget (for backwards compatibility)\n */\nexport function AlertWidget(props: ComponentProps<typeof TextWidget>) {\n return <TextWidget {...props} />;\n}\n\nexport const alertWidgetPropertySchema: WidgetPropertySchema = {\n ...textWidgetPropertySchema,\n widgetType: \"AlertWidget\",\n};\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/widgets/SpacerWidget.tsx
|
|
4
|
+
function SpacerWidget({
|
|
5
|
+
customHeight = 32,
|
|
6
|
+
className,
|
|
7
|
+
style,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
className: `w-full ${className ?? ""}`,
|
|
14
|
+
style: { height: `calc(var(--spacing) * ${customHeight})`, ...style },
|
|
15
|
+
"aria-hidden": "true",
|
|
16
|
+
...props
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
var spacerWidgetPropertySchema = {
|
|
21
|
+
widgetType: "SpacerWidget",
|
|
22
|
+
displayName: "Spacer",
|
|
23
|
+
fields: [
|
|
24
|
+
{
|
|
25
|
+
key: "customHeight",
|
|
26
|
+
label: "Height",
|
|
27
|
+
type: "number",
|
|
28
|
+
description: "Height in pixels (only used when size is 'custom')",
|
|
29
|
+
min: 1,
|
|
30
|
+
max: 500,
|
|
31
|
+
step: 1,
|
|
32
|
+
defaultValue: 32,
|
|
33
|
+
group: "Spacing"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { SpacerWidget, spacerWidgetPropertySchema };
|
|
39
|
+
//# sourceMappingURL=chunk-SBHL3GFW.js.map
|
|
40
|
+
//# sourceMappingURL=chunk-SBHL3GFW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/widgets/SpacerWidget.tsx"],"names":[],"mappings":";;;AAUO,SAAS,YAAA,CAAa;AAAA,EAC3B,YAAA,GAAe,EAAA;AAAA,EACf,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,OAAA,EAAU,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MACpC,OAAO,EAAE,MAAA,EAAQ,yBAAyB,YAAY,CAAA,CAAA,CAAA,EAAK,GAAG,KAAA,EAAM;AAAA,MACpE,aAAA,EAAY,MAAA;AAAA,MACX,GAAG;AAAA;AAAA,GACN;AAEJ;AAEO,IAAM,0BAAA,GAAmD;AAAA,EAC9D,UAAA,EAAY,cAAA;AAAA,EACZ,WAAA,EAAa,QAAA;AAAA,EACb,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,GAAA,EAAK,cAAA;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,oDAAA;AAAA,MACb,GAAA,EAAK,CAAA;AAAA,MACL,GAAA,EAAK,GAAA;AAAA,MACL,IAAA,EAAM,CAAA;AAAA,MACN,YAAA,EAAc,EAAA;AAAA,MACd,KAAA,EAAO;AAAA;AACT;AAEJ","file":"chunk-SBHL3GFW.js","sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport type { ComponentProps } from \"react\";\n\ntype SpacerWidgetProps = ComponentProps<\"div\"> & {\n /**\n * Custom height in pixels (only used when size is \"custom\")\n */\n customHeight?: number;\n};\n\nexport function SpacerWidget({\n customHeight = 32,\n className,\n style,\n ...props\n}: SpacerWidgetProps) {\n return (\n <div\n className={`w-full ${className ?? \"\"}`}\n style={{ height: `calc(var(--spacing) * ${customHeight})`, ...style }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n}\n\nexport const spacerWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"SpacerWidget\",\n displayName: \"Spacer\",\n fields: [\n {\n key: \"customHeight\",\n label: \"Height\",\n type: \"number\",\n description: \"Height in pixels (only used when size is 'custom')\",\n min: 1,\n max: 500,\n step: 1,\n defaultValue: 32,\n group: \"Spacing\",\n },\n ],\n};\n"]}
|