@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,318 @@
|
|
|
1
|
+
import { cn } from './chunk-5HHN5MRZ.js';
|
|
2
|
+
import * as React2 from 'react';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import * as RechartsPrimitive from 'recharts';
|
|
5
|
+
|
|
6
|
+
function Card({ className, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
"data-slot": "card",
|
|
11
|
+
className: cn(
|
|
12
|
+
"flex h-full flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
|
|
13
|
+
className
|
|
14
|
+
),
|
|
15
|
+
...props
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function CardHeader({ className, ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
"data-slot": "card-header",
|
|
24
|
+
className: cn(
|
|
25
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
26
|
+
className
|
|
27
|
+
),
|
|
28
|
+
...props
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
function CardTitle({ className, ...props }) {
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
"div",
|
|
35
|
+
{
|
|
36
|
+
"data-slot": "card-title",
|
|
37
|
+
className: cn("leading-none font-semibold", className),
|
|
38
|
+
...props
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function CardDescription({ className, ...props }) {
|
|
43
|
+
return /* @__PURE__ */ jsx(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
"data-slot": "card-description",
|
|
47
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
48
|
+
...props
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
function CardAction({ className, ...props }) {
|
|
53
|
+
return /* @__PURE__ */ jsx(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
"data-slot": "card-action",
|
|
57
|
+
className: cn(
|
|
58
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
59
|
+
className
|
|
60
|
+
),
|
|
61
|
+
...props
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function CardContent({ className, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ jsx(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
"data-slot": "card-content",
|
|
70
|
+
className: cn("px-6", className),
|
|
71
|
+
...props
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
function CardFooter({ className, ...props }) {
|
|
76
|
+
return /* @__PURE__ */ jsx(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
"data-slot": "card-footer",
|
|
80
|
+
className: cn("flex items-center px-6 [.border-t]:pt-6", className),
|
|
81
|
+
...props
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
86
|
+
var ChartContext = React2.createContext(null);
|
|
87
|
+
function useChart() {
|
|
88
|
+
const context = React2.useContext(ChartContext);
|
|
89
|
+
if (!context) {
|
|
90
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
91
|
+
}
|
|
92
|
+
return context;
|
|
93
|
+
}
|
|
94
|
+
function ChartContainer({
|
|
95
|
+
id,
|
|
96
|
+
className,
|
|
97
|
+
children,
|
|
98
|
+
config,
|
|
99
|
+
...props
|
|
100
|
+
}) {
|
|
101
|
+
const uniqueId = React2.useId();
|
|
102
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
103
|
+
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
104
|
+
"div",
|
|
105
|
+
{
|
|
106
|
+
"data-slot": "chart",
|
|
107
|
+
"data-chart": chartId,
|
|
108
|
+
className: cn(
|
|
109
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
110
|
+
className
|
|
111
|
+
),
|
|
112
|
+
...props,
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
|
|
115
|
+
/* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
) });
|
|
119
|
+
}
|
|
120
|
+
var ChartStyle = ({ id, config }) => {
|
|
121
|
+
const colorConfig = Object.entries(config).filter(
|
|
122
|
+
([, config2]) => config2.theme || config2.color
|
|
123
|
+
);
|
|
124
|
+
if (!colorConfig.length) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
return /* @__PURE__ */ jsx(
|
|
128
|
+
"style",
|
|
129
|
+
{
|
|
130
|
+
dangerouslySetInnerHTML: {
|
|
131
|
+
__html: Object.entries(THEMES).map(
|
|
132
|
+
([theme, prefix]) => `
|
|
133
|
+
${prefix} [data-chart=${id}] {
|
|
134
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
135
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
136
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
137
|
+
}).join("\n")}
|
|
138
|
+
}
|
|
139
|
+
`
|
|
140
|
+
).join("\n")
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
146
|
+
function ChartTooltipContent({
|
|
147
|
+
active,
|
|
148
|
+
payload,
|
|
149
|
+
className,
|
|
150
|
+
indicator = "dot",
|
|
151
|
+
hideLabel = false,
|
|
152
|
+
hideIndicator = false,
|
|
153
|
+
label,
|
|
154
|
+
labelFormatter,
|
|
155
|
+
labelClassName,
|
|
156
|
+
formatter,
|
|
157
|
+
color,
|
|
158
|
+
nameKey,
|
|
159
|
+
labelKey
|
|
160
|
+
}) {
|
|
161
|
+
const { config } = useChart();
|
|
162
|
+
const tooltipLabel = React2.useMemo(() => {
|
|
163
|
+
if (hideLabel || !payload?.length) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const [item] = payload;
|
|
167
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
168
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
169
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
170
|
+
if (labelFormatter) {
|
|
171
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
172
|
+
}
|
|
173
|
+
if (!value) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
177
|
+
}, [
|
|
178
|
+
label,
|
|
179
|
+
labelFormatter,
|
|
180
|
+
payload,
|
|
181
|
+
hideLabel,
|
|
182
|
+
labelClassName,
|
|
183
|
+
config,
|
|
184
|
+
labelKey
|
|
185
|
+
]);
|
|
186
|
+
if (!active || !payload?.length) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
190
|
+
return /* @__PURE__ */ jsxs(
|
|
191
|
+
"div",
|
|
192
|
+
{
|
|
193
|
+
className: cn(
|
|
194
|
+
"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
195
|
+
className
|
|
196
|
+
),
|
|
197
|
+
children: [
|
|
198
|
+
!nestLabel ? tooltipLabel : null,
|
|
199
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
200
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
201
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
202
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
203
|
+
return /* @__PURE__ */ jsx(
|
|
204
|
+
"div",
|
|
205
|
+
{
|
|
206
|
+
className: cn(
|
|
207
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
208
|
+
indicator === "dot" && "items-center"
|
|
209
|
+
),
|
|
210
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
211
|
+
itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
|
|
212
|
+
"div",
|
|
213
|
+
{
|
|
214
|
+
className: cn(
|
|
215
|
+
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
216
|
+
{
|
|
217
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
218
|
+
"w-1": indicator === "line",
|
|
219
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
220
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
221
|
+
}
|
|
222
|
+
),
|
|
223
|
+
style: {
|
|
224
|
+
"--color-bg": indicatorColor,
|
|
225
|
+
"--color-border": indicatorColor
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
),
|
|
229
|
+
/* @__PURE__ */ jsxs(
|
|
230
|
+
"div",
|
|
231
|
+
{
|
|
232
|
+
className: cn(
|
|
233
|
+
"flex flex-1 justify-between leading-none",
|
|
234
|
+
nestLabel ? "items-end" : "items-center"
|
|
235
|
+
),
|
|
236
|
+
children: [
|
|
237
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
|
|
238
|
+
nestLabel ? tooltipLabel : null,
|
|
239
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
240
|
+
] }),
|
|
241
|
+
item.value && /* @__PURE__ */ jsx("span", { className: "font-mono font-medium text-foreground tabular-nums", children: item.value.toLocaleString() })
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
)
|
|
245
|
+
] })
|
|
246
|
+
},
|
|
247
|
+
item.dataKey
|
|
248
|
+
);
|
|
249
|
+
}) })
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
var ChartLegend = RechartsPrimitive.Legend;
|
|
255
|
+
function ChartLegendContent({
|
|
256
|
+
className,
|
|
257
|
+
hideIcon = false,
|
|
258
|
+
payload,
|
|
259
|
+
verticalAlign = "bottom",
|
|
260
|
+
nameKey
|
|
261
|
+
}) {
|
|
262
|
+
const { config } = useChart();
|
|
263
|
+
if (!payload?.length) {
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
return /* @__PURE__ */ jsx(
|
|
267
|
+
"div",
|
|
268
|
+
{
|
|
269
|
+
className: cn(
|
|
270
|
+
"flex items-center justify-center gap-4",
|
|
271
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
272
|
+
className
|
|
273
|
+
),
|
|
274
|
+
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
275
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
276
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
277
|
+
return /* @__PURE__ */ jsxs(
|
|
278
|
+
"div",
|
|
279
|
+
{
|
|
280
|
+
className: cn(
|
|
281
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
282
|
+
),
|
|
283
|
+
children: [
|
|
284
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
|
|
285
|
+
"div",
|
|
286
|
+
{
|
|
287
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
288
|
+
style: {
|
|
289
|
+
backgroundColor: item.color
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
),
|
|
293
|
+
itemConfig?.label
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
item.value
|
|
297
|
+
);
|
|
298
|
+
})
|
|
299
|
+
}
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
303
|
+
if (typeof payload !== "object" || payload === null) {
|
|
304
|
+
return void 0;
|
|
305
|
+
}
|
|
306
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
307
|
+
let configLabelKey = key;
|
|
308
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
309
|
+
configLabelKey = payload[key];
|
|
310
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
311
|
+
configLabelKey = payloadPayload[key];
|
|
312
|
+
}
|
|
313
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
|
317
|
+
//# sourceMappingURL=chunk-DM2JDG3D.js.map
|
|
318
|
+
//# sourceMappingURL=chunk-DM2JDG3D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/card.tsx","../src/ui/chart.tsx"],"names":["jsx","config"],"mappings":"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","file":"chunk-DM2JDG3D.js","sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"flex h-full flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n // Type assertion required: React.CSSProperties doesn't include\n // CSS custom properties (--*) by default. This is the standard\n // pattern for setting CSS variables inline in React.\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium text-foreground tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkCM7D7WGL_cjs = require('./chunk-CM7D7WGL.cjs');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
function TextWidget({
|
|
7
|
+
titleEnabled = true,
|
|
8
|
+
title = "Text Widget",
|
|
9
|
+
titleFontSize = "xl",
|
|
10
|
+
titleColor = "foreground",
|
|
11
|
+
description = "This is a text widget",
|
|
12
|
+
descriptionFontSize = "md",
|
|
13
|
+
descriptionColor = "foreground",
|
|
14
|
+
background = {
|
|
15
|
+
type: "solid",
|
|
16
|
+
color: "background"
|
|
17
|
+
},
|
|
18
|
+
padding = 4,
|
|
19
|
+
borderRadius = "md",
|
|
20
|
+
className,
|
|
21
|
+
...props
|
|
22
|
+
}) {
|
|
23
|
+
const backgroundColor = background.color || "background";
|
|
24
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
25
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
className: `bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className ?? ""}`,
|
|
29
|
+
style: { backgroundImage },
|
|
30
|
+
...props,
|
|
31
|
+
children: [
|
|
32
|
+
titleEnabled && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: `text-${titleFontSize} text-${titleColor} font-bold`, children: title }),
|
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-${descriptionFontSize} text-${descriptionColor}`, children: description })
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
var textWidgetPropertySchema = {
|
|
39
|
+
widgetType: "TextWidget",
|
|
40
|
+
displayName: "Text Widget",
|
|
41
|
+
tabsConfig: [{ id: "content", label: "Content" }],
|
|
42
|
+
dataSourceTargetProps: ["title", "description"],
|
|
43
|
+
fields: [
|
|
44
|
+
// Content Tab - Title Group
|
|
45
|
+
{
|
|
46
|
+
key: "titleEnabled",
|
|
47
|
+
label: "Widget Title",
|
|
48
|
+
type: "boolean",
|
|
49
|
+
description: "Enable the title displayed above the text",
|
|
50
|
+
defaultValue: true,
|
|
51
|
+
tab: "content",
|
|
52
|
+
group: "Title"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: "title",
|
|
56
|
+
label: "Title",
|
|
57
|
+
type: "text",
|
|
58
|
+
description: "The title",
|
|
59
|
+
defaultValue: "Heads up!",
|
|
60
|
+
tab: "content",
|
|
61
|
+
group: "Title",
|
|
62
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
63
|
+
},
|
|
64
|
+
chunkCM7D7WGL_cjs.getFontSizeField({
|
|
65
|
+
key: "titleFontSize",
|
|
66
|
+
label: "Title Font Size",
|
|
67
|
+
description: "Font size for the title",
|
|
68
|
+
defaultValue: "xl",
|
|
69
|
+
tab: "content",
|
|
70
|
+
group: "Title",
|
|
71
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
72
|
+
}),
|
|
73
|
+
chunkCM7D7WGL_cjs.getColorField({
|
|
74
|
+
key: "titleColor",
|
|
75
|
+
label: "Title Color",
|
|
76
|
+
description: "The color of the title",
|
|
77
|
+
defaultValue: "foreground",
|
|
78
|
+
tab: "content",
|
|
79
|
+
group: "Title",
|
|
80
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
81
|
+
}),
|
|
82
|
+
// Content Tab - Description Group
|
|
83
|
+
{
|
|
84
|
+
key: "description",
|
|
85
|
+
label: "Description",
|
|
86
|
+
type: "textarea",
|
|
87
|
+
description: "The text message",
|
|
88
|
+
rows: 3,
|
|
89
|
+
defaultValue: "You can add components and dependencies to your app using the cli.",
|
|
90
|
+
tab: "content",
|
|
91
|
+
group: "Description"
|
|
92
|
+
},
|
|
93
|
+
chunkCM7D7WGL_cjs.getFontSizeField({
|
|
94
|
+
key: "descriptionFontSize",
|
|
95
|
+
label: "Description Font Size",
|
|
96
|
+
description: "Font size for the text",
|
|
97
|
+
defaultValue: "md",
|
|
98
|
+
tab: "content",
|
|
99
|
+
group: "Description"
|
|
100
|
+
}),
|
|
101
|
+
chunkCM7D7WGL_cjs.getColorField({
|
|
102
|
+
key: "descriptionColor",
|
|
103
|
+
label: "Description Color",
|
|
104
|
+
description: "The color of the text",
|
|
105
|
+
defaultValue: "foreground",
|
|
106
|
+
tab: "content",
|
|
107
|
+
group: "Description"
|
|
108
|
+
}),
|
|
109
|
+
// Content Tab - Style Group
|
|
110
|
+
{
|
|
111
|
+
type: "background",
|
|
112
|
+
key: "background",
|
|
113
|
+
label: "Background",
|
|
114
|
+
description: "Background for the text container",
|
|
115
|
+
defaultValue: "background",
|
|
116
|
+
tab: "content",
|
|
117
|
+
group: "Style"
|
|
118
|
+
},
|
|
119
|
+
chunkCM7D7WGL_cjs.getPaddingField({
|
|
120
|
+
key: "padding",
|
|
121
|
+
label: "Padding",
|
|
122
|
+
description: "The padding of the text container",
|
|
123
|
+
defaultValue: 4,
|
|
124
|
+
tab: "content",
|
|
125
|
+
group: "Style"
|
|
126
|
+
}),
|
|
127
|
+
chunkCM7D7WGL_cjs.getBorderRadiusField({
|
|
128
|
+
key: "borderRadius",
|
|
129
|
+
description: "The border radius of the text container",
|
|
130
|
+
label: "Border Radius",
|
|
131
|
+
tab: "content",
|
|
132
|
+
group: "Style"
|
|
133
|
+
})
|
|
134
|
+
]
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
exports.TextWidget = TextWidget;
|
|
138
|
+
exports.textWidgetPropertySchema = textWidgetPropertySchema;
|
|
139
|
+
//# sourceMappingURL=chunk-DW6V4ZCT.cjs.map
|
|
140
|
+
//# sourceMappingURL=chunk-DW6V4ZCT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/widgets/TextWidget.tsx"],"names":["jsxs","jsx","getFontSizeField","getColorField","getPaddingField","getBorderRadiusField"],"mappings":"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","file":"chunk-DW6V4ZCT.cjs","sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport type { ComponentProps } from \"react\";\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 TextWidgetProps = 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 // Styling\n background?: BackgroundValue;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\nexport function TextWidget({\n titleEnabled = true,\n title = \"Text Widget\",\n titleFontSize = \"xl\",\n titleColor = \"foreground\",\n description = \"This is a text widget\",\n descriptionFontSize = \"md\",\n descriptionColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n padding = 4,\n borderRadius = \"md\",\n className,\n ...props\n}: TextWidgetProps) {\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 return (\n <div\n className={`bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className ?? \"\"}`}\n style={{ backgroundImage }}\n {...props}\n >\n {titleEnabled && (\n <h2 className={`text-${titleFontSize} text-${titleColor} font-bold`}>\n {title}\n </h2>\n )}\n <p className={`text-${descriptionFontSize} text-${descriptionColor}`}>\n {description}\n </p>\n </div>\n );\n}\n\nexport const textWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"TextWidget\",\n displayName: \"Text Widget\",\n tabsConfig: [{ id: \"content\", label: \"Content\" }],\n dataSourceTargetProps: [\"title\", \"description\"],\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 text\",\n defaultValue: true,\n tab: \"content\",\n group: \"Title\",\n },\n {\n key: \"title\",\n label: \"Title\",\n type: \"text\",\n description: \"The title\",\n defaultValue: \"Heads up!\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the title\",\n defaultValue: \"xl\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"The color of the title\",\n defaultValue: \"foreground\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Content Tab - Description Group\n {\n key: \"description\",\n label: \"Description\",\n type: \"textarea\",\n description: \"The text message\",\n rows: 3,\n defaultValue:\n \"You can add components and dependencies to your app using the cli.\",\n tab: \"content\",\n group: \"Description\",\n },\n getFontSizeField({\n key: \"descriptionFontSize\",\n label: \"Description Font Size\",\n description: \"Font size for the text\",\n defaultValue: \"md\",\n tab: \"content\",\n group: \"Description\",\n }),\n getColorField({\n key: \"descriptionColor\",\n label: \"Description Color\",\n description: \"The color of the text\",\n defaultValue: \"foreground\",\n tab: \"content\",\n group: \"Description\",\n }),\n // Content Tab - Style Group\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the text container\",\n defaultValue: \"background\",\n tab: \"content\",\n group: \"Style\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"The padding of the text container\",\n defaultValue: 4,\n tab: \"content\",\n group: \"Style\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n description: \"The border radius of the text container\",\n label: \"Border Radius\",\n tab: \"content\",\n group: \"Style\",\n }),\n ],\n};\n"]}
|