@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.
Files changed (228) hide show
  1. package/dist/AlertWidget-2JHMNYIY.js +5 -0
  2. package/dist/AlertWidget-2JHMNYIY.js.map +1 -0
  3. package/dist/AlertWidget-VHXWOKM4.cjs +18 -0
  4. package/dist/AlertWidget-VHXWOKM4.cjs.map +1 -0
  5. package/dist/CalendarWidget-AQ7PVNSI.cjs +18 -0
  6. package/dist/CalendarWidget-AQ7PVNSI.cjs.map +1 -0
  7. package/dist/CalendarWidget-E54LNKCG.js +5 -0
  8. package/dist/CalendarWidget-E54LNKCG.js.map +1 -0
  9. package/dist/CarouselWidget-IPPFSXDZ.js +8 -0
  10. package/dist/CarouselWidget-IPPFSXDZ.js.map +1 -0
  11. package/dist/CarouselWidget-ZG6LJJXG.cjs +21 -0
  12. package/dist/CarouselWidget-ZG6LJJXG.cjs.map +1 -0
  13. package/dist/CatchUpWidget-CSSQMPPA.cjs +18 -0
  14. package/dist/CatchUpWidget-CSSQMPPA.cjs.map +1 -0
  15. package/dist/CatchUpWidget-HYJRKFN3.js +5 -0
  16. package/dist/CatchUpWidget-HYJRKFN3.js.map +1 -0
  17. package/dist/ChartWidget-MBLGRSJQ.cjs +19 -0
  18. package/dist/ChartWidget-MBLGRSJQ.cjs.map +1 -0
  19. package/dist/ChartWidget-OL5DRMGA.js +6 -0
  20. package/dist/ChartWidget-OL5DRMGA.js.map +1 -0
  21. package/dist/ContainerWidget-DETCLP52.js +8 -0
  22. package/dist/ContainerWidget-DETCLP52.js.map +1 -0
  23. package/dist/ContainerWidget-XQDJSJXO.cjs +21 -0
  24. package/dist/ContainerWidget-XQDJSJXO.cjs.map +1 -0
  25. package/dist/EmbedWidget-HTR2MJ25.cjs +16 -0
  26. package/dist/EmbedWidget-HTR2MJ25.cjs.map +1 -0
  27. package/dist/EmbedWidget-O2XFGDJS.js +3 -0
  28. package/dist/EmbedWidget-O2XFGDJS.js.map +1 -0
  29. package/dist/ImageWidget-L2MIYWTE.cjs +17 -0
  30. package/dist/ImageWidget-L2MIYWTE.cjs.map +1 -0
  31. package/dist/ImageWidget-RF6XKPPV.js +4 -0
  32. package/dist/ImageWidget-RF6XKPPV.js.map +1 -0
  33. package/dist/LayoutWidget-4XISA6RO.cjs +20 -0
  34. package/dist/LayoutWidget-4XISA6RO.cjs.map +1 -0
  35. package/dist/LayoutWidget-WZSMZLLM.js +7 -0
  36. package/dist/LayoutWidget-WZSMZLLM.js.map +1 -0
  37. package/dist/ListWidget-XY5C3P3C.cjs +19 -0
  38. package/dist/ListWidget-XY5C3P3C.cjs.map +1 -0
  39. package/dist/ListWidget-ZFRV6DKI.js +6 -0
  40. package/dist/ListWidget-ZFRV6DKI.js.map +1 -0
  41. package/dist/MySiteWidget-75NJUIWV.js +5 -0
  42. package/dist/MySiteWidget-75NJUIWV.js.map +1 -0
  43. package/dist/MySiteWidget-CBDKQT35.cjs +18 -0
  44. package/dist/MySiteWidget-CBDKQT35.cjs.map +1 -0
  45. package/dist/NestedWidget-N4I7LOVX.js +6 -0
  46. package/dist/NestedWidget-N4I7LOVX.js.map +1 -0
  47. package/dist/NestedWidget-VO3YYOOH.cjs +19 -0
  48. package/dist/NestedWidget-VO3YYOOH.cjs.map +1 -0
  49. package/dist/QuickShareWidget-3VGSFY4J.js +4 -0
  50. package/dist/QuickShareWidget-3VGSFY4J.js.map +1 -0
  51. package/dist/QuickShareWidget-VHDB5SYT.cjs +17 -0
  52. package/dist/QuickShareWidget-VHDB5SYT.cjs.map +1 -0
  53. package/dist/RecentActivityWidget-3KAR64SB.js +5 -0
  54. package/dist/RecentActivityWidget-3KAR64SB.js.map +1 -0
  55. package/dist/RecentActivityWidget-X5UABJHL.cjs +18 -0
  56. package/dist/RecentActivityWidget-X5UABJHL.cjs.map +1 -0
  57. package/dist/SpacerWidget-K7CXVECO.cjs +16 -0
  58. package/dist/SpacerWidget-K7CXVECO.cjs.map +1 -0
  59. package/dist/SpacerWidget-ODKNZAND.js +3 -0
  60. package/dist/SpacerWidget-ODKNZAND.js.map +1 -0
  61. package/dist/TableWidget-MDEBHVIA.cjs +20 -0
  62. package/dist/TableWidget-MDEBHVIA.cjs.map +1 -0
  63. package/dist/TableWidget-W6LL5FLE.js +7 -0
  64. package/dist/TableWidget-W6LL5FLE.js.map +1 -0
  65. package/dist/TextWidget-D72TL53O.js +4 -0
  66. package/dist/TextWidget-D72TL53O.js.map +1 -0
  67. package/dist/TextWidget-DYINWJGB.cjs +17 -0
  68. package/dist/TextWidget-DYINWJGB.cjs.map +1 -0
  69. package/dist/ToDoWidget-DH544SJH.cjs +18 -0
  70. package/dist/ToDoWidget-DH544SJH.cjs.map +1 -0
  71. package/dist/ToDoWidget-LCAYWRVH.js +5 -0
  72. package/dist/ToDoWidget-LCAYWRVH.js.map +1 -0
  73. package/dist/VideoWidget-VHAZTNLI.js +4 -0
  74. package/dist/VideoWidget-VHAZTNLI.js.map +1 -0
  75. package/dist/VideoWidget-YLRKZ27S.cjs +17 -0
  76. package/dist/VideoWidget-YLRKZ27S.cjs.map +1 -0
  77. package/dist/chunk-2KQFMF6L.js +413 -0
  78. package/dist/chunk-2KQFMF6L.js.map +1 -0
  79. package/dist/chunk-3CUVGQQI.cjs +15 -0
  80. package/dist/chunk-3CUVGQQI.cjs.map +1 -0
  81. package/dist/chunk-3RV7AYQZ.js +149 -0
  82. package/dist/chunk-3RV7AYQZ.js.map +1 -0
  83. package/dist/chunk-4M2A5W2D.cjs +42 -0
  84. package/dist/chunk-4M2A5W2D.cjs.map +1 -0
  85. package/dist/chunk-4XJCU4HY.js +248 -0
  86. package/dist/chunk-4XJCU4HY.js.map +1 -0
  87. package/dist/chunk-5HHN5MRZ.js +11 -0
  88. package/dist/chunk-5HHN5MRZ.js.map +1 -0
  89. package/dist/chunk-6GF46P3S.js +33 -0
  90. package/dist/chunk-6GF46P3S.js.map +1 -0
  91. package/dist/chunk-7JIRJTGY.js +32 -0
  92. package/dist/chunk-7JIRJTGY.js.map +1 -0
  93. package/dist/chunk-7XWMJDFE.js +443 -0
  94. package/dist/chunk-7XWMJDFE.js.map +1 -0
  95. package/dist/chunk-C7A3OMIF.cjs +446 -0
  96. package/dist/chunk-C7A3OMIF.cjs.map +1 -0
  97. package/dist/chunk-CEZOXMO6.js +377 -0
  98. package/dist/chunk-CEZOXMO6.js.map +1 -0
  99. package/dist/chunk-CM7D7WGL.cjs +36 -0
  100. package/dist/chunk-CM7D7WGL.cjs.map +1 -0
  101. package/dist/chunk-D4ULCQ42.cjs +353 -0
  102. package/dist/chunk-D4ULCQ42.cjs.map +1 -0
  103. package/dist/chunk-DKGP3DTX.cjs +389 -0
  104. package/dist/chunk-DKGP3DTX.cjs.map +1 -0
  105. package/dist/chunk-DM2JDG3D.js +318 -0
  106. package/dist/chunk-DM2JDG3D.js.map +1 -0
  107. package/dist/chunk-DW6V4ZCT.cjs +140 -0
  108. package/dist/chunk-DW6V4ZCT.cjs.map +1 -0
  109. package/dist/chunk-E4MY6TUE.cjs +255 -0
  110. package/dist/chunk-E4MY6TUE.cjs.map +1 -0
  111. package/dist/chunk-EHSWARYY.js +39 -0
  112. package/dist/chunk-EHSWARYY.js.map +1 -0
  113. package/dist/chunk-EUOP3MWJ.cjs +118 -0
  114. package/dist/chunk-EUOP3MWJ.cjs.map +1 -0
  115. package/dist/chunk-F3SFIX7U.cjs +58 -0
  116. package/dist/chunk-F3SFIX7U.cjs.map +1 -0
  117. package/dist/chunk-F63VY23B.js +174 -0
  118. package/dist/chunk-F63VY23B.js.map +1 -0
  119. package/dist/chunk-FSLUSFJ2.cjs +75 -0
  120. package/dist/chunk-FSLUSFJ2.cjs.map +1 -0
  121. package/dist/chunk-GA52TZC4.js +133 -0
  122. package/dist/chunk-GA52TZC4.js.map +1 -0
  123. package/dist/chunk-GRFCSQ2M.js +13 -0
  124. package/dist/chunk-GRFCSQ2M.js.map +1 -0
  125. package/dist/chunk-HBRGW3CJ.js +383 -0
  126. package/dist/chunk-HBRGW3CJ.js.map +1 -0
  127. package/dist/chunk-HDA2ZOV2.cjs +13 -0
  128. package/dist/chunk-HDA2ZOV2.cjs.map +1 -0
  129. package/dist/chunk-HQVTEFSO.js +386 -0
  130. package/dist/chunk-HQVTEFSO.js.map +1 -0
  131. package/dist/chunk-IU657MP5.js +270 -0
  132. package/dist/chunk-IU657MP5.js.map +1 -0
  133. package/dist/chunk-IY3BNQ5Y.js +24 -0
  134. package/dist/chunk-IY3BNQ5Y.js.map +1 -0
  135. package/dist/chunk-J2FIIZSN.js +137 -0
  136. package/dist/chunk-J2FIIZSN.js.map +1 -0
  137. package/dist/chunk-JRBJXVXL.cjs +251 -0
  138. package/dist/chunk-JRBJXVXL.cjs.map +1 -0
  139. package/dist/chunk-JYWKXNUO.cjs +37 -0
  140. package/dist/chunk-JYWKXNUO.cjs.map +1 -0
  141. package/dist/chunk-KE27RJ3X.cjs +954 -0
  142. package/dist/chunk-KE27RJ3X.cjs.map +1 -0
  143. package/dist/chunk-M4J3OZJF.cjs +152 -0
  144. package/dist/chunk-M4J3OZJF.cjs.map +1 -0
  145. package/dist/chunk-MKUJOEAC.cjs +178 -0
  146. package/dist/chunk-MKUJOEAC.cjs.map +1 -0
  147. package/dist/chunk-MNRHGJDQ.cjs +225 -0
  148. package/dist/chunk-MNRHGJDQ.cjs.map +1 -0
  149. package/dist/chunk-MNWWZGL2.js +14 -0
  150. package/dist/chunk-MNWWZGL2.js.map +1 -0
  151. package/dist/chunk-MWED53XR.js +115 -0
  152. package/dist/chunk-MWED53XR.js.map +1 -0
  153. package/dist/chunk-NCQQI2T2.cjs +386 -0
  154. package/dist/chunk-NCQQI2T2.cjs.map +1 -0
  155. package/dist/chunk-NGYR4RQF.js +476 -0
  156. package/dist/chunk-NGYR4RQF.js.map +1 -0
  157. package/dist/chunk-NNJDJNSY.cjs +197 -0
  158. package/dist/chunk-NNJDJNSY.cjs.map +1 -0
  159. package/dist/chunk-NOZVVD6G.cjs +26 -0
  160. package/dist/chunk-NOZVVD6G.cjs.map +1 -0
  161. package/dist/chunk-NUG3DWF7.js +55 -0
  162. package/dist/chunk-NUG3DWF7.js.map +1 -0
  163. package/dist/chunk-NXAZEYLC.cjs +136 -0
  164. package/dist/chunk-NXAZEYLC.cjs.map +1 -0
  165. package/dist/chunk-PNVBMN27.cjs +380 -0
  166. package/dist/chunk-PNVBMN27.cjs.map +1 -0
  167. package/dist/chunk-RKDOQV4T.js +73 -0
  168. package/dist/chunk-RKDOQV4T.js.map +1 -0
  169. package/dist/chunk-RMZFC7HF.cjs +17 -0
  170. package/dist/chunk-RMZFC7HF.cjs.map +1 -0
  171. package/dist/chunk-SBHL3GFW.js +40 -0
  172. package/dist/chunk-SBHL3GFW.js.map +1 -0
  173. package/dist/chunk-TFJQ4525.cjs +416 -0
  174. package/dist/chunk-TFJQ4525.cjs.map +1 -0
  175. package/dist/chunk-VBJ5FT4C.cjs +273 -0
  176. package/dist/chunk-VBJ5FT4C.cjs.map +1 -0
  177. package/dist/chunk-VZFL5BZM.js +222 -0
  178. package/dist/chunk-VZFL5BZM.js.map +1 -0
  179. package/dist/chunk-W7VPL5I4.js +252 -0
  180. package/dist/chunk-W7VPL5I4.js.map +1 -0
  181. package/dist/chunk-XALQ3ANE.cjs +34 -0
  182. package/dist/chunk-XALQ3ANE.cjs.map +1 -0
  183. package/dist/chunk-YCYKV5KF.cjs +43 -0
  184. package/dist/chunk-YCYKV5KF.cjs.map +1 -0
  185. package/dist/chunk-YJZGIS4L.cjs +479 -0
  186. package/dist/chunk-YJZGIS4L.cjs.map +1 -0
  187. package/dist/chunk-YU5DAILW.cjs +14 -0
  188. package/dist/chunk-YU5DAILW.cjs.map +1 -0
  189. package/dist/chunk-YY5WLV63.js +951 -0
  190. package/dist/chunk-YY5WLV63.js.map +1 -0
  191. package/dist/chunk-ZS7C474P.js +3 -0
  192. package/dist/chunk-ZS7C474P.js.map +1 -0
  193. package/dist/chunk-ZSUGXJWD.js +194 -0
  194. package/dist/chunk-ZSUGXJWD.js.map +1 -0
  195. package/dist/chunk-ZWFK5UUU.js +11 -0
  196. package/dist/chunk-ZWFK5UUU.js.map +1 -0
  197. package/dist/components/index.cjs +17 -0
  198. package/dist/components/index.cjs.map +1 -0
  199. package/dist/components/index.d.cts +8 -0
  200. package/dist/components/index.d.ts +8 -0
  201. package/dist/components/index.js +4 -0
  202. package/dist/components/index.js.map +1 -0
  203. package/dist/contexts/index.cjs +29 -0
  204. package/dist/contexts/index.cjs.map +1 -0
  205. package/dist/contexts/index.d.cts +73 -0
  206. package/dist/contexts/index.d.ts +73 -0
  207. package/dist/contexts/index.js +4 -0
  208. package/dist/contexts/index.js.map +1 -0
  209. package/dist/core/index.cjs +55 -0
  210. package/dist/core/index.cjs.map +1 -0
  211. package/dist/core/index.d.cts +64 -0
  212. package/dist/core/index.d.ts +64 -0
  213. package/dist/core/index.js +6 -0
  214. package/dist/core/index.js.map +1 -0
  215. package/dist/ui/index.cjs +80 -0
  216. package/dist/ui/index.cjs.map +1 -0
  217. package/dist/ui/index.d.cts +69 -0
  218. package/dist/ui/index.d.ts +69 -0
  219. package/dist/ui/index.js +7 -0
  220. package/dist/ui/index.js.map +1 -0
  221. package/dist/widgets/index.cjs +217 -0
  222. package/dist/widgets/index.cjs.map +1 -0
  223. package/dist/widgets/index.d.cts +397 -0
  224. package/dist/widgets/index.d.ts +397 -0
  225. package/dist/widgets/index.js +59 -0
  226. package/dist/widgets/index.js.map +1 -0
  227. package/package.json +99 -0
  228. 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":";;;;;;;AAwEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA;AACxB,CAAA;AAGA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAM,gBAAA,EAAiB;AAAA,EAClD,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAM,gBAAA,EAAiB;AAAA,EAClD,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAM,gBAAA,EAAiB;AAAA,EAClD,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAM,gBAAA,EAAiB;AAAA,EAClD,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAM,gBAAA;AACnC,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,KAAA,EAAO;AAAA;AAEX,CAAA;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,YAAA,GAAe,IAAA;AAAA,EACf,KAAA,GAAQ,cAAA;AAAA,EACR,aAAA,GAAgB,IAAA;AAAA,EAChB,UAAA,GAAa,YAAA;AAAA,EAEb,WAAA,GAAc,wBAAA;AAAA,EACd,mBAAA,GAAsB,IAAA;AAAA,EACtB,gBAAA,GAAmB,YAAA;AAAA,EAEnB,SAAA,GAAY,KAAA;AAAA,EACZ,UAAA,GAAa,KAAA;AAAA,EACb,WAAA,GAAc,IAAA;AAAA,EACd,QAAA,GAAW,IAAA;AAAA,EACX,KAAA,GAAQ,MAAA;AAAA,EACR,MAAA,GAAS,OAAA;AAAA,EACT,UAAA,GAAa;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,GAAU,CAAA;AAAA,EACV,YAAA,GAAe,IAAA;AAAA,EAEf,OAAA,GAAU,OAAA;AAAA,EACV,QAAA,GAAW,MAAA;AAAA,EACX,IAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,eAAA,GAAkB,WAAW,KAAA,IAAS,YAAA;AAC5C,EAAA,MAAM,mBACH,UAAA,CAAW,QAAA,EAAU,SAAA,IAAa,UAAA,CAAW,UAAU,QAAA,KACxD,UAAA,CAAW,IAAA,KAAS,OAAA,GAChB,OAAO,UAAA,CAAW,QAAA,CAAS,aAAa,UAAA,CAAW,QAAA,CAAS,QAAQ,CAAA,CAAA,CAAA,GACpE,MAAA;AAEN,EAAA,MAAM,YAAY,IAAA,IAAQ,WAAA;AAC1B,EAAA,MAAM,YAAA,GACJ,cAAc,KAAA,IAAS,IAAA,GACnB,KAAK,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW;AAAA,IACzB,GAAG,IAAA;AAAA,IACH,IAAA,EAAM,CAAA,YAAA,EAAgB,KAAA,GAAQ,CAAA,GAAK,CAAC,CAAA,CAAA;AAAA,IACpC,CAAA,GACF,cAAA;AACN,EAAA,MAAM,SAAS,WAAA,IAAe,kBAAA;AAC9B,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,KAAA;AACH,QAAA,uBACEA,eAAA,CAACC,iBAAA,EAAA,EAAiB,IAAA,EAAM,SAAA,EACrB,QAAA,EAAA;AAAA,UAAA,QAAA,oBAAYC,cAAA,CAACC,sBAAA,EAAA,EAAc,eAAA,EAAgB,KAAA,EAAM,CAAA;AAAA,0BAClDD,cAAA,CAACE,cAAA,EAAA,EAAM,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,yCACzBC,cAAA,EAAA,EAAM,CAAA;AAAA,UACN,+BAAeH,cAAA,CAACI,8BAAA,EAAA,EAAa,OAAA,kBAASJ,cAAA,CAACK,yCAAoB,CAAA,EAAI,CAAA;AAAA,UAC/D,8BAAcL,cAAA,CAACM,6BAAA,EAAA,EAAY,OAAA,kBAASN,cAAA,CAACO,wCAAmB,CAAA,EAAI,CAAA;AAAA,yCAC5DC,YAAA,EAAA,EAAI,OAAA,EAAkB,IAAA,EAAK,oBAAA,EAAqB,QAAQ,CAAA,EAAG;AAAA,SAAA,EAC9D,CAAA;AAAA,MAGJ,KAAK,MAAA;AACH,QAAA,uBACEV,eAAA,CAACW,kBAAA,EAAA,EAAkB,IAAA,EAAM,SAAA,EACtB,QAAA,EAAA;AAAA,UAAA,QAAA,oBAAYT,cAAA,CAACC,sBAAA,EAAA,EAAc,eAAA,EAAgB,KAAA,EAAM,CAAA;AAAA,0BAClDD,cAAA,CAACE,cAAA,EAAA,EAAM,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,yCACzBC,cAAA,EAAA,EAAM,CAAA;AAAA,UACN,+BAAeH,cAAA,CAACI,8BAAA,EAAA,EAAa,OAAA,kBAASJ,cAAA,CAACK,yCAAoB,CAAA,EAAI,CAAA;AAAA,UAC/D,8BAAcL,cAAA,CAACM,6BAAA,EAAA,EAAY,OAAA,kBAASN,cAAA,CAACO,wCAAmB,CAAA,EAAI,CAAA;AAAA,0BAC7DP,cAAA;AAAA,YAACU,aAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,OAAA;AAAA,cACA,MAAA,EAAO,oBAAA;AAAA,cACP,WAAA,EAAa,CAAA;AAAA,cACb,GAAA,EAAK,EAAE,CAAA,EAAG,CAAA;AAAE;AAAA;AACd,SAAA,EACF,CAAA;AAAA,MAGJ,KAAK,MAAA;AACH,QAAA,uBACEZ,eAAA,CAACa,kBAAA,EAAA,EAAkB,IAAA,EAAM,SAAA,EACtB,QAAA,EAAA;AAAA,UAAA,QAAA,oBAAYX,cAAA,CAACC,sBAAA,EAAA,EAAc,eAAA,EAAgB,KAAA,EAAM,CAAA;AAAA,0BAClDD,cAAA,CAACE,cAAA,EAAA,EAAM,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,yCACzBC,cAAA,EAAA,EAAM,CAAA;AAAA,UACN,+BAAeH,cAAA,CAACI,8BAAA,EAAA,EAAa,OAAA,kBAASJ,cAAA,CAACK,yCAAoB,CAAA,EAAI,CAAA;AAAA,UAC/D,8BAAcL,cAAA,CAACM,6BAAA,EAAA,EAAY,OAAA,kBAASN,cAAA,CAACO,wCAAmB,CAAA,EAAI,CAAA;AAAA,0BAC7DP,cAAA;AAAA,YAACY,aAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,OAAA;AAAA,cACA,MAAA,EAAO,oBAAA;AAAA,cACP,IAAA,EAAK,oBAAA;AAAA,cACL,WAAA,EAAa;AAAA;AAAA;AACf,SAAA,EACF,CAAA;AAAA,MAGJ,KAAK,KAAA;AACH,QAAA,uCACGC,iBAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,WAAA,mCACET,8BAAA,EAAA,EAAa,OAAA,iCAAUC,qCAAA,EAAA,EAAoB,SAAA,EAAS,MAAC,CAAA,EAAI,CAAA;AAAA,UAE3D,8BAAcL,cAAA,CAACM,6BAAA,EAAA,EAAY,OAAA,kBAASN,cAAA,CAACO,wCAAmB,CAAA,EAAI,CAAA;AAAA,0BAC7DP,cAAA;AAAA,YAACc,YAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,YAAA;AAAA,cACN,OAAA;AAAA,cACA,OAAA,EAAS,QAAA;AAAA,cACT,EAAA,EAAG,KAAA;AAAA,cACH,EAAA,EAAG,KAAA;AAAA,cACH,WAAA,EAAa,EAAA;AAAA,cACb,KAAA,EAAK;AAAA;AAAA;AACP,SAAA,EACF,CAAA;AAAA,MAGJ;AAEE,QAAA,uBACEhB,eAAA,CAACC,iBAAA,EAAA,EAAiB,IAAA,EAAM,SAAA,EACrB,QAAA,EAAA;AAAA,UAAA,QAAA,oBAAYC,cAAA,CAACC,sBAAA,EAAA,EAAc,eAAA,EAAgB,KAAA,EAAM,CAAA;AAAA,0BAClDD,cAAA,CAACE,cAAA,EAAA,EAAM,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,yCACzBC,cAAA,EAAA,EAAM,CAAA;AAAA,UACN,+BAAeH,cAAA,CAACI,8BAAA,EAAA,EAAa,OAAA,kBAASJ,cAAA,CAACK,yCAAoB,CAAA,EAAI,CAAA;AAAA,UAC/D,8BAAcL,cAAA,CAACM,6BAAA,EAAA,EAAY,OAAA,kBAASN,cAAA,CAACO,wCAAmB,CAAA,EAAI,CAAA;AAAA,yCAC5DC,YAAA,EAAA,EAAI,OAAA,EAAkB,IAAA,EAAK,oBAAA,EAAqB,QAAQ,CAAA,EAAG;AAAA,SAAA,EAC9D,CAAA;AAAA;AAEN,EACF,CAAA;AAEA,EAAA,uBACER,cAAA;AAAA,IAACe,sBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,MAAM,eAAe,CAAA,GAAA,EAAM,OAAO,CAAA,SAAA,EAAY,YAAY,IAAI,SAAS,CAAA,CAAA;AAAA,MAClF,KAAA,EAAO;AAAA,QACL,KAAA;AAAA,QACA,QAAA,EAAU,MAAA;AAAA,QACV;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAjB,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,KAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACZ,QAAA,EAAA;AAAA,UAAA,YAAA,oBACCE,cAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,KAAA,EAAQ,aAAa,CAAA,MAAA,EAAS,UAAU,CAAA,UAAA,CAAA;AAAA,cAElD,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,WAAA,oBACCA,cAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,KAAA,EAAQ,mBAAmB,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAA;AAAA,cAE9D,QAAA,EAAA;AAAA;AAAA;AACH,SAAA,EAEJ,CAAA;AAAA,wBACAA,cAAA,CAACgB,oCAAe,MAAA,EAAgB,KAAA,EAAO,EAAE,MAAA,EAAO,EAC7C,uBAAY,EACf;AAAA,OAAA,EACF;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,yBAAA,GAAkD;AAAA,EAC7D,UAAA,EAAY,aAAA;AAAA,EACZ,WAAA,EAAa,OAAA;AAAA,EACb,UAAA,EAAY;AAAA,IACV,EAAE,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,IAClC,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,MAAA;AAAO,GAC9B;AAAA,EACA,qBAAA,EAAuB,CAAC,MAAA,EAAQ,aAAa,CAAA;AAAA,EAC7C,MAAA,EAAQ;AAAA;AAAA,IAEN;AAAA,MACE,GAAA,EAAK,cAAA;AAAA,MACL,KAAA,EAAO,cAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,4CAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,OAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EAAa,iBAAA;AAAA,MACb,YAAA,EAAc,cAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,mBAAA,EAAqB;AAAA,KACvB;AAAA,IACAC,kCAAA,CAAiB;AAAA,MACf,GAAA,EAAK,eAAA;AAAA,MACL,KAAA,EAAO,iBAAA;AAAA,MACP,WAAA,EAAa,+BAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,mBAAA,EAAqB;AAAA,KACtB,CAAA;AAAA,IACDC,+BAAA,CAAc;AAAA,MACZ,GAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAa,2BAAA;AAAA,MACb,YAAA,EAAc,YAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,mBAAA,EAAqB;AAAA,KACtB,CAAA;AAAA;AAAA,IAGD;AAAA,MACE,GAAA,EAAK,aAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,IAAA,EAAM,UAAA;AAAA,MACN,WAAA,EAAa,uBAAA;AAAA,MACb,IAAA,EAAM,CAAA;AAAA,MACN,YAAA,EAAc,wBAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACAD,kCAAA,CAAiB;AAAA,MACf,GAAA,EAAK,qBAAA;AAAA,MACL,KAAA,EAAO,uBAAA;AAAA,MACP,WAAA,EAAa,qCAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IACDC,+BAAA,CAAc;AAAA,MACZ,GAAA,EAAK,kBAAA;AAAA,MACL,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EAAa,iCAAA;AAAA,MACb,YAAA,EAAc,YAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR,CAAA;AAAA;AAAA,IAGD;AAAA,MACE,GAAA,EAAK,WAAA;AAAA,MACL,KAAA,EAAO,YAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,0BAAA;AAAA,MACb,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,KAAA,EAAM;AAAA,QACnC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,MAAA,EAAO;AAAA,QACrC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,MAAA,EAAO;AAAA,QACrC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,KAAA;AAAM,OACrC;AAAA,MACA,YAAA,EAAc,KAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,sBAAA;AAAA,MACb,YAAA,EAAc,KAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,aAAA;AAAA,MACL,KAAA,EAAO,cAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,0BAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,UAAA;AAAA,MACL,KAAA,EAAO,WAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,+BAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,WAAA;AAAA,MACL,IAAA,EAAM,WAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,OAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EACE,6DAAA;AAAA,MACF,YAAA,EAAc,MAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EAAa,qDAAA;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,YAAA;AAAA,MACL,IAAA,EAAM,WAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,GAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO,YAAA;AAAA,MACP,WAAA,EAAa,oCAAA;AAAA,MACb,YAAA,EAAc,YAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACAC,iCAAA,CAAgB;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,SAAA;AAAA,MACP,WAAA,EAAa,iCAAA;AAAA,MACb,YAAA,EAAc,CAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IACDC,sCAAA,CAAqB;AAAA,MACnB,GAAA,EAAK,cAAA;AAAA,MACL,KAAA,EAAO,eAAA;AAAA,MACP,WAAA,EAAa,uCAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR,CAAA;AAAA;AAAA,IAGD;AAAA,MACE,GAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,IAAA,EAAM,YAAA;AAAA,MACN,WAAA,EAAa,6CAAA;AAAA,MACb,GAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,yCAAA;AAAA,MACb,SAAS,CAAC,EAAE,OAAO,OAAA,EAAS,KAAA,EAAO,SAAS,CAAA;AAAA,MAC5C,YAAA,EAAc,OAAA;AAAA,MACd,GAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,UAAA;AAAA,MACL,KAAA,EAAO,YAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,0CAAA;AAAA,MACb,SAAS,CAAC,EAAE,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA;AAAA,MAC1C,YAAA,EAAc,MAAA;AAAA,MACd,GAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO;AAAA;AACT;AAEJ","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"]}