@dappworks/kit 0.4.66 → 0.4.68

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 (42) hide show
  1. package/dist/{PromiseState-phP8daDG.d.ts → PromiseState-2a8c856c.d.ts} +2 -2
  2. package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
  3. package/dist/{chunk-AIZ7XDNV.mjs → chunk-6UHBBDKI.mjs} +14 -14
  4. package/dist/chunk-6UHBBDKI.mjs.map +1 -0
  5. package/dist/{chunk-XJMRAPHI.mjs → chunk-HRWHDF2F.mjs} +7 -7
  6. package/dist/{chunk-XJMRAPHI.mjs.map → chunk-HRWHDF2F.mjs.map} +1 -1
  7. package/dist/{chunk-ALOYXXRO.mjs → chunk-I5WU3NZO.mjs} +2 -2
  8. package/dist/{chunk-OCLML5CM.mjs → chunk-SXQEYWUP.mjs} +2 -2
  9. package/dist/{chunk-7FI42NGB.mjs → chunk-U7JFOBSQ.mjs} +2 -2
  10. package/dist/{chunk-CYQSSB26.mjs → chunk-VB62FUWK.mjs} +73 -35
  11. package/dist/chunk-VB62FUWK.mjs.map +1 -0
  12. package/dist/{chunk-QO5RPRUY.mjs → chunk-WAYJJYKN.mjs} +4 -4
  13. package/dist/{chunk-7FXVRBK4.mjs → chunk-ZPPKSMXO.mjs} +2 -2
  14. package/dist/dev.d.mts +1 -1
  15. package/dist/dev.mjs +3 -3
  16. package/dist/experimental.d.mts +3 -5
  17. package/dist/experimental.mjs +3 -3
  18. package/dist/form.d.mts +5 -5
  19. package/dist/form.mjs +5 -5
  20. package/dist/index.d.mts +9 -14
  21. package/dist/index.mjs +6 -6
  22. package/dist/inspector.d.mts +1 -1
  23. package/dist/inspector.mjs +1 -1
  24. package/dist/jsontable.d.mts +10 -15
  25. package/dist/jsontable.mjs +7 -7
  26. package/dist/metrics.d.mts +35 -9
  27. package/dist/metrics.mjs +110 -59
  28. package/dist/metrics.mjs.map +1 -1
  29. package/dist/plugins.d.mts +2 -2
  30. package/dist/plugins.mjs +6 -6
  31. package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
  32. package/dist/ui.mjs +3 -3
  33. package/package.json +1 -1
  34. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  35. package/dist/chunk-CYQSSB26.mjs.map +0 -1
  36. /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
  37. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
  38. /package/dist/{chunk-ALOYXXRO.mjs.map → chunk-I5WU3NZO.mjs.map} +0 -0
  39. /package/dist/{chunk-OCLML5CM.mjs.map → chunk-SXQEYWUP.mjs.map} +0 -0
  40. /package/dist/{chunk-7FI42NGB.mjs.map → chunk-U7JFOBSQ.mjs.map} +0 -0
  41. /package/dist/{chunk-QO5RPRUY.mjs.map → chunk-WAYJJYKN.mjs.map} +0 -0
  42. /package/dist/{chunk-7FXVRBK4.mjs.map → chunk-ZPPKSMXO.mjs.map} +0 -0
@@ -1,11 +1,11 @@
1
- export { JSONTable } from './chunk-CYQSSB26.mjs';
1
+ export { JSONTable } from './chunk-VB62FUWK.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import './chunk-QO5RPRUY.mjs';
4
- import './chunk-OCLML5CM.mjs';
5
- import './chunk-XJMRAPHI.mjs';
6
- import './chunk-7FI42NGB.mjs';
3
+ import './chunk-WAYJJYKN.mjs';
4
+ import './chunk-SXQEYWUP.mjs';
5
+ import './chunk-HRWHDF2F.mjs';
6
+ import './chunk-U7JFOBSQ.mjs';
7
7
  import './chunk-MGU3KYGC.mjs';
8
- import './chunk-AIZ7XDNV.mjs';
9
- import './chunk-R4SQKVDQ.mjs';
8
+ import './chunk-6UHBBDKI.mjs';
9
+ import './chunk-6F7H4PAA.mjs';
10
10
  //# sourceMappingURL=out.js.map
11
11
  //# sourceMappingURL=jsontable.mjs.map
@@ -12,8 +12,11 @@ interface ChartBox {
12
12
  gridH?: number;
13
13
  numColSpanMd?: number;
14
14
  className?: string;
15
+ headerClassName?: string;
16
+ contentClassName?: string;
17
+ chartClassName?: string;
15
18
  }
16
- declare const ChartBox: ({ title, description, error, children, className }: ChartBox) => React.JSX.Element;
19
+ declare const ChartBox: ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => React.JSX.Element;
17
20
 
18
21
  type BarChartCard = ChartBox & {
19
22
  type?: 'BarChartCard';
@@ -23,6 +26,7 @@ type BarChartCard = ChartBox & {
23
26
  showLegend?: boolean;
24
27
  showGridLines?: boolean;
25
28
  stack?: boolean;
29
+ showAnimation?: boolean;
26
30
  };
27
31
  declare const BarChartCard: (props: BarChartCard) => React.JSX.Element;
28
32
 
@@ -30,10 +34,17 @@ type LineChartCard = ChartBox & {
30
34
  type?: 'LineChartCard';
31
35
  categories?: string[];
32
36
  index?: string;
33
- valueFormatter?: ValueFormatter;
37
+ curveType?: 'linear' | 'step' | 'monotone';
38
+ colors?: ('slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose')[];
34
39
  showLegend?: boolean;
35
40
  showGridLines?: boolean;
36
- curveType?: 'linear' | 'natural' | 'step';
41
+ showXAxis?: boolean;
42
+ showYAxis?: boolean;
43
+ startEndOnly?: boolean;
44
+ showTooltip?: boolean;
45
+ showAnimation?: boolean;
46
+ autoMinValue?: boolean;
47
+ valueFormatter?: ValueFormatter;
37
48
  };
38
49
  declare const LineChartCard: (props: LineChartCard) => React.JSX.Element;
39
50
 
@@ -41,11 +52,23 @@ type AreaChartCard = ChartBox & {
41
52
  type?: 'AreaChartCard';
42
53
  categories?: string[];
43
54
  index?: string;
44
- valueFormatter?: ValueFormatter;
55
+ curveType?: 'linear' | 'step' | 'monotone';
56
+ colors?: ('slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose')[];
45
57
  showLegend?: boolean;
46
58
  showGridLines?: boolean;
47
59
  stack?: boolean;
48
- curveType?: 'linear' | 'natural' | 'step';
60
+ showXAxis?: boolean;
61
+ showYAxis?: boolean;
62
+ startEndOnly?: boolean;
63
+ showTooltip?: boolean;
64
+ showAnimation?: boolean;
65
+ autoMinValue?: boolean;
66
+ valueFormatter?: ValueFormatter;
67
+ customTooltip?: ({ payload, active, label }: {
68
+ payload: any;
69
+ active: any;
70
+ label: any;
71
+ }) => React.ReactNode;
49
72
  };
50
73
  declare const AreaChartCard: (props: AreaChartCard) => React.JSX.Element;
51
74
 
@@ -56,11 +79,13 @@ type DonutChartCard = ChartBox & {
56
79
  valueFormatter?: ValueFormatter;
57
80
  showLabel?: boolean;
58
81
  variant?: 'donut' | 'pie';
82
+ showAnimation?: boolean;
59
83
  };
60
84
  declare const DonutChartCard: (props: DonutChartCard) => React.JSX.Element;
61
85
 
62
86
  type CountCard = ChartBox & {
63
87
  type?: 'CountCard';
88
+ summedColumnIndex?: string;
64
89
  };
65
90
  declare const CountCard: (props: CountCard) => React.JSX.Element;
66
91
 
@@ -79,11 +104,12 @@ type KPICard = ChartBox & {
79
104
  type?: 'KPICard';
80
105
  categories?: string[];
81
106
  index?: string;
82
- valueFormatter?: ValueFormatter;
83
- curveType?: 'linear' | 'natural' | 'step';
107
+ chartType?: 'area' | 'line';
108
+ curveType?: 'linear' | 'step' | 'monotone';
84
109
  metricTitle?: string;
85
110
  metric?: string | number;
86
- chartType?: 'area' | 'line';
111
+ valueFormatter?: ValueFormatter;
112
+ loading?: boolean;
87
113
  };
88
114
  declare const KPICard: (props: KPICard) => React.JSX.Element;
89
115
 
@@ -95,4 +121,4 @@ declare const MetricsView: ({ data }: {
95
121
  data: JSONMetricsViewType;
96
122
  }) => React.JSX.Element;
97
123
 
98
- export { JSONMetricsView, type JSONMetricsViewType, MetricsView };
124
+ export { JSONMetricsView, JSONMetricsViewType, MetricsView };
package/dist/metrics.mjs CHANGED
@@ -1,18 +1,18 @@
1
- import { JSONTable_default } from './chunk-CYQSSB26.mjs';
1
+ import { JSONTable_default } from './chunk-VB62FUWK.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import './chunk-QO5RPRUY.mjs';
4
- import './chunk-OCLML5CM.mjs';
5
- import './chunk-XJMRAPHI.mjs';
6
- import './chunk-7FI42NGB.mjs';
3
+ import './chunk-WAYJJYKN.mjs';
4
+ import './chunk-SXQEYWUP.mjs';
5
+ import './chunk-HRWHDF2F.mjs';
6
+ import './chunk-U7JFOBSQ.mjs';
7
7
  import './chunk-MGU3KYGC.mjs';
8
- import { cn } from './chunk-AIZ7XDNV.mjs';
9
- import { __spreadValues } from './chunk-R4SQKVDQ.mjs';
10
- import React from 'react';
8
+ import { cn } from './chunk-6UHBBDKI.mjs';
9
+ import { __spreadValues } from './chunk-6F7H4PAA.mjs';
10
+ import React9 from 'react';
11
11
  import { Grid, Col, BarChart, LineChart, AreaChart, DonutChart, Text } from '@tremor/react';
12
- import { Card } from '@nextui-org/react';
12
+ import { Card, Skeleton } from '@nextui-org/react';
13
13
 
14
- var ChartBox = ({ title, description, error, children, className }) => {
15
- return /* @__PURE__ */ React.createElement(Card, { className: cn("dark:border-gray-800", className), shadow: "sm" }, /* @__PURE__ */ React.createElement("div", { className: "p-4 h-[60px]" }, /* @__PURE__ */ React.createElement("div", null, title), description && /* @__PURE__ */ React.createElement("div", { className: "text-xs" }, description)), /* @__PURE__ */ React.createElement("div", { className: "px-2 pb-5" }, error ? /* @__PURE__ */ React.createElement("div", { className: "text-red-600" }, error) : children));
14
+ var ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }) => {
15
+ return /* @__PURE__ */ React9.createElement(Card, { className: cn("dark:border-gray-800 shadow-sm border", className) }, (title || description) && /* @__PURE__ */ React9.createElement("div", { className: cn("p-4 h-[60px]", headerClassName) }, title && /* @__PURE__ */ React9.createElement("div", null, title), description && /* @__PURE__ */ React9.createElement("div", { className: "text-xs" }, description)), /* @__PURE__ */ React9.createElement("div", { className: cn("px-2 pb-5", contentClassName) }, error ? /* @__PURE__ */ React9.createElement("div", { className: "text-red-600" }, error) : children));
16
16
  };
17
17
 
18
18
  // components/JSONMetricsView/BarChartCard/index.tsx
@@ -24,12 +24,14 @@ var BarChartCard = (props) => {
24
24
  valueFormatter = (number) => `${number}`,
25
25
  showLegend = false,
26
26
  showGridLines = false,
27
- stack = false
27
+ stack = false,
28
+ chartClassName,
29
+ showAnimation = true
28
30
  } = props;
29
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
31
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
30
32
  BarChart,
31
33
  {
32
- className: "h-72 mt-4",
34
+ className: cn("h-72 mt-4", chartClassName),
33
35
  data,
34
36
  index,
35
37
  categories,
@@ -38,7 +40,8 @@ var BarChartCard = (props) => {
38
40
  yAxisWidth: 48,
39
41
  showLegend,
40
42
  showGridLines,
41
- stack
43
+ stack,
44
+ showAnimation
42
45
  }
43
46
  ));
44
47
  };
@@ -47,23 +50,37 @@ var LineChartCard = (props) => {
47
50
  data = [],
48
51
  categories = ["value"],
49
52
  index = "date",
50
- valueFormatter = (number) => `${number}`,
53
+ curveType = "linear",
54
+ colors = ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
51
55
  showLegend = false,
52
56
  showGridLines = false,
53
- curveType = "linear"
57
+ chartClassName,
58
+ showXAxis = true,
59
+ showYAxis = true,
60
+ startEndOnly = false,
61
+ showTooltip = true,
62
+ showAnimation = true,
63
+ autoMinValue = true,
64
+ valueFormatter = (number) => `${number}`
54
65
  } = props;
55
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
66
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
56
67
  LineChart,
57
68
  {
58
- className: "h-72 mt-4",
69
+ className: cn("h-72 mt-4", chartClassName),
59
70
  data,
60
71
  index,
61
72
  categories,
62
- colors: ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
73
+ colors,
63
74
  valueFormatter,
64
75
  showLegend,
65
76
  showGridLines,
66
- curveType
77
+ curveType,
78
+ showXAxis,
79
+ showYAxis,
80
+ startEndOnly,
81
+ showTooltip,
82
+ showAnimation,
83
+ autoMinValue
67
84
  }
68
85
  ));
69
86
  };
@@ -72,80 +89,112 @@ var AreaChartCard = (props) => {
72
89
  data = [],
73
90
  categories = ["value"],
74
91
  index = "date",
75
- valueFormatter = (number) => `${number}`,
92
+ curveType = "linear",
93
+ colors = ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
76
94
  showLegend = false,
77
95
  showGridLines = false,
78
96
  stack = false,
79
- curveType = "linear"
97
+ chartClassName,
98
+ showXAxis = true,
99
+ showYAxis = true,
100
+ startEndOnly = false,
101
+ showTooltip = true,
102
+ showAnimation = true,
103
+ autoMinValue = true,
104
+ valueFormatter = (number) => `${number}`,
105
+ customTooltip
80
106
  } = props;
81
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
107
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
82
108
  AreaChart,
83
109
  {
84
- className: "h-72 mt-4",
110
+ className: cn("h-72 mt-4", chartClassName),
85
111
  data,
86
112
  index,
87
113
  categories,
88
- colors: ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
114
+ colors,
89
115
  valueFormatter,
90
116
  showLegend,
91
117
  showGridLines,
92
118
  stack,
93
- curveType
119
+ curveType,
120
+ showXAxis,
121
+ showYAxis,
122
+ startEndOnly,
123
+ showTooltip,
124
+ showAnimation,
125
+ autoMinValue,
126
+ customTooltip
94
127
  }
95
128
  ));
96
129
  };
97
130
  var DonutChartCard = (props) => {
98
- const { data = [], categories = ["value"], index = "name", valueFormatter = (number) => `${number}`, showLabel = true, variant = "donut" } = props;
131
+ const { data = [], categories = ["value"], index = "name", valueFormatter = (number) => `${number}`, showLabel = true, variant = "donut", chartClassName, showAnimation = true } = props;
99
132
  const category = categories[0];
100
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement(
133
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
101
134
  DonutChart,
102
135
  {
103
- className: "h-72 mt-4",
136
+ className: cn("h-72 mt-4", chartClassName),
104
137
  data,
105
138
  index,
106
139
  category,
107
140
  colors: ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
108
141
  valueFormatter,
109
142
  showLabel,
110
- variant
143
+ variant,
144
+ showAnimation
111
145
  }
112
146
  ));
113
147
  };
114
148
  var CountCard = (props) => {
115
149
  var _a;
116
150
  if (!((_a = props.data) == null ? void 0 : _a.length)) {
117
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement("div", { className: "mt-2 ml-2 text-2xl overflow-auto" }, /* @__PURE__ */ React.createElement("span", { className: "text-gray-400" }, "No data")));
151
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 text-2xl overflow-auto", props.chartClassName) }, /* @__PURE__ */ React9.createElement("span", { className: "text-gray-400" }, "No data")));
118
152
  }
119
- const value = Object.values(props.data[0])[0];
120
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement("div", { className: "mt-2 ml-2 font-bold text-2xl overflow-auto" }, renderValue(value)));
121
- };
122
- function renderValue(v) {
123
- if (typeof v == "string" || typeof v == "number") {
124
- return v;
153
+ if (!props.summedColumnIndex) {
154
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 text-2xl overflow-auto", props.chartClassName) }, /* @__PURE__ */ React9.createElement("span", { className: "text-gray-400 text-sm" }, "set ", /* @__PURE__ */ React9.createElement("span", { className: "font-bold" }, "summedColumnIndex"), " to sum up values")));
125
155
  }
126
- return JSON.stringify(v);
127
- }
156
+ const sum = props.data.reduce((acc, cur) => {
157
+ const v = cur[props.summedColumnIndex];
158
+ if (typeof v == "number") {
159
+ return acc + v;
160
+ } else {
161
+ return acc;
162
+ }
163
+ }, 0);
164
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 font-bold text-2xl overflow-auto", props.chartClassName) }, sum));
165
+ };
128
166
  var TableCard = (props) => {
129
- const { data = [], columnOptions = {} } = props;
130
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), (data == null ? void 0 : data.length) > 0 ? /* @__PURE__ */ React.createElement(JSONTable_default, { dataSource: data, columnOptions, className: "h-[256px]" }) : /* @__PURE__ */ React.createElement("div", { className: "h-[256px] flex justify-center items-center text-gray-400" }, "No data"));
167
+ const { data = [], columnOptions = {}, chartClassName } = props;
168
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), (data == null ? void 0 : data.length) > 0 ? /* @__PURE__ */ React9.createElement(JSONTable_default, { dataSource: data, columnOptions, className: cn("h-[256px]", chartClassName) }) : /* @__PURE__ */ React9.createElement("div", { className: cn("h-[256px] flex justify-center items-center text-gray-400", chartClassName) }, "No data"));
169
+ };
170
+ var SkeletonBox = ({ line, skClassName, className }) => {
171
+ const lineCamp = [...new Array(line || 1).keys()];
172
+ return /* @__PURE__ */ React9.createElement("div", { className: cn("flex items-center gap-4", className) }, lineCamp.map((_, index) => {
173
+ return /* @__PURE__ */ React9.createElement(
174
+ Skeleton,
175
+ {
176
+ key: index,
177
+ classNames: {
178
+ base: "transition-background !duration-700 before:transition-opacity before:!duration-700",
179
+ content: "transition-opacity motion-reduce:transition-none !duration-700"
180
+ },
181
+ className: cn("w-full h-10", skClassName)
182
+ }
183
+ );
184
+ }));
131
185
  };
186
+
187
+ // components/JSONMetricsView/KPICard/index.tsx
132
188
  var KPICard = (props) => {
133
- const {
134
- metricTitle,
135
- metric,
136
- chartType = "area",
137
- data = [],
138
- categories = ["value"],
139
- index = "date",
140
- valueFormatter = (number) => `${number}`,
141
- curveType = "linear"
142
- } = props;
189
+ const { metricTitle, metric, chartType = "area", data = [], categories = ["value"], index = "date", valueFormatter = (number) => `${number}`, curveType = "linear", loading, chartClassName } = props;
190
+ if (loading) {
191
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: "mt-4 space-x-6 px-2 flex items-center" }, /* @__PURE__ */ React9.createElement("div", { className: "w-auto" }, /* @__PURE__ */ React9.createElement(Text, { className: "whitespace-nowrap" }, "Loading..."), /* @__PURE__ */ React9.createElement("div", { className: "font-bold text-3xl" }, "-")), /* @__PURE__ */ React9.createElement(SkeletonBox, { className: "flex-col w-full", skClassName: "h-[100px] overflow-hidden", line: 1 })));
192
+ }
143
193
  const ChartComp = chartType === "area" ? AreaChart : LineChart;
144
- return /* @__PURE__ */ React.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React.createElement("div", { className: "mt-4 space-x-6 px-2 flex items-center" }, /* @__PURE__ */ React.createElement("div", { className: "w-auto" }, /* @__PURE__ */ React.createElement(Text, { className: "whitespace-nowrap" }, metricTitle), /* @__PURE__ */ React.createElement("div", { className: "font-bold text-3xl" }, metric)), /* @__PURE__ */ React.createElement(
194
+ return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: "mt-4 space-x-6 px-2 flex items-center" }, /* @__PURE__ */ React9.createElement("div", { className: "w-auto" }, /* @__PURE__ */ React9.createElement(Text, { className: "whitespace-nowrap" }, metricTitle), /* @__PURE__ */ React9.createElement("div", { className: "font-bold text-3xl" }, metric != null ? metric : "-")), /* @__PURE__ */ React9.createElement(
145
195
  ChartComp,
146
196
  {
147
- className: "overflow-hidden",
148
- style: { height: "100px" },
197
+ className: cn("h-[100px] overflow-hidden", chartClassName),
149
198
  data,
150
199
  index,
151
200
  categories,
@@ -156,7 +205,9 @@ var KPICard = (props) => {
156
205
  showGridLines: false,
157
206
  startEndOnly: true,
158
207
  showYAxis: false,
159
- showLegend: false
208
+ showLegend: false,
209
+ autoMinValue: true,
210
+ showAnimation: true
160
211
  }
161
212
  )));
162
213
  };
@@ -172,15 +223,15 @@ var components = {
172
223
  KPICard
173
224
  };
174
225
  var JSONMetricsView = ({ data }) => {
175
- return /* @__PURE__ */ React.createElement(Grid, { numItems: 1, numItemsSm: 1, numItemsLg: 2, numItemsMd: 2, className: "gap-2" }, data.map((item, index) => {
226
+ return /* @__PURE__ */ React9.createElement(Grid, { numItems: 1, numItemsSm: 1, numItemsLg: 2, numItemsMd: 2, className: "gap-2" }, data.map((item, index) => {
176
227
  var _a;
177
228
  const Component = components[item.type];
178
- return /* @__PURE__ */ React.createElement(Col, { key: index, numColSpanSm: 1, numColSpanMd: (_a = item.numColSpanMd) != null ? _a : 1 }, /* @__PURE__ */ React.createElement(Component, __spreadValues({}, item)));
229
+ return /* @__PURE__ */ React9.createElement(Col, { key: index, numColSpanSm: 1, numColSpanMd: (_a = item.numColSpanMd) != null ? _a : 1 }, /* @__PURE__ */ React9.createElement(Component, __spreadValues({}, item)));
179
230
  }));
180
231
  };
181
232
  var MetricsView = ({ data }) => {
182
233
  const Comp = components[data.type];
183
- return /* @__PURE__ */ React.createElement(Comp, __spreadValues({}, data));
234
+ return /* @__PURE__ */ React9.createElement(Comp, __spreadValues({}, data));
184
235
  };
185
236
 
186
237
  export { JSONMetricsView, MetricsView };
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/JSONMetricsView/index.tsx","../components/JSONMetricsView/BarChartCard/index.tsx","../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/LineChartCard/index.tsx","../components/JSONMetricsView/AreaChartCard/index.tsx","../components/JSONMetricsView/DonutChartCard/index.tsx","../components/JSONMetricsView/CountCard/index.tsx","../components/JSONMetricsView/TableCard/index.tsx","../components/JSONMetricsView/KPICard/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Col, Grid } from '@tremor/react';\nimport { BarChartCard } from './BarChartCard';\nimport { LineChartCard } from './LineChartCard';\nimport { AreaChartCard } from './AreaChartCard';\nimport { DonutChartCard } from './DonutChartCard';\nimport { CountCard } from './CountCard';\nimport { TableCard } from './TableCard';\nimport { KPICard } from './KPICard';\n\n\nexport type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;\n\nconst components = {\n AreaChartCard,\n LineChartCard,\n BarChartCard,\n DonutChartCard,\n CountCard,\n TableCard,\n KPICard,\n};\n\n\nconst JSONMetricsView = ({ data }: { data: JSONMetricsViewType[] }) => {\n return (\n <Grid numItems={1} numItemsSm={1} numItemsLg={2} numItemsMd={2} className=\"gap-2\">\n {data.map((item, index) => {\n //@ts-ignore\n const Component = components[item.type];\n return (\n <Col key={index} numColSpanSm={1} numColSpanMd={item.numColSpanMd ?? 1}>\n {/* @ts-ignore */}\n <Component {...item} />\n </Col>\n );\n })}\n </Grid>\n );\n};\n\nexport const MetricsView = ({ data }: { data: JSONMetricsViewType }) => {\n //@ts-ignore\n const Comp = components[data.type];\n // @ts-ignore\n return <Comp {...data} />;\n};\n\nexport { JSONMetricsView };\n","import React from 'react';\nimport { BarChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type BarChartCard = ChartBox & {\n type?: 'BarChartCard',\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n}\n\nexport const BarChartCard = (props: BarChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, stack = false\n } = props;\n\n return (\n <ChartBox {...props}>\n <BarChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n yAxisWidth={48}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card, Skeleton, Spinner } from '@nextui-org/react';\n\nexport interface ChartBox {\n title?: React.ReactNode;\n description?: string;\n error?: string;\n data?: {\n [key: string]: any;\n }[];\n children?: React.ReactNode;\n gridH?: number; // grid units, not pixels\n numColSpanMd?: number;\n className?: string;\n}\n\nexport const ChartBox = ({ title, description, error, children, className }: ChartBox) => {\n return (\n <Card className={cn('dark:border-gray-800', className)} shadow='sm'>\n <div className='p-4 h-[60px]'>\n <div>{title}</div>\n {description && <div className='text-xs'>{description}</div>}\n </div>\n <div className=\"px-2 pb-5\">\n {error ? <div className=\"text-red-600\">{error}</div> : children}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport { LineChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type LineChartCard = ChartBox & {\n type?: 'LineChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n curveType?: 'linear' | 'natural' | 'step'\n}\n\nexport const LineChartCard = (props: LineChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, curveType = 'linear'\n } = props;\n\n return (\n <ChartBox {...props}>\n <LineChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n curveType={curveType}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type AreaChartCard = ChartBox & {\n type?: 'AreaChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n curveType?: 'linear' | 'natural' | 'step'\n}\n\nexport const AreaChartCard = (props: AreaChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, stack = false, curveType = 'linear'\n } = props;\n\n return (\n <ChartBox {...props}>\n <AreaChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n curveType={curveType}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { DonutChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type DonutChartCard = ChartBox & {\n type?: 'DonutChartCard',\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLabel?: boolean;\n variant?: 'donut' | 'pie'\n}\n\nexport const DonutChartCard = (props: DonutChartCard) => {\n const { data = [], categories = ['value'], index = 'name', valueFormatter = (number) => `${number}`, showLabel = true, variant = 'donut' } = props;\n const category = categories[0];\n return (\n <ChartBox {...props}>\n <DonutChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n category={category}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLabel={showLabel}\n variant={variant}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\n\nexport type CountCard = ChartBox & {\n type?: 'CountCard';\n};\n\nexport const CountCard = (props: CountCard) => {\n if (!props.data?.length) {\n return (\n <ChartBox {...props}>\n <div className=\"mt-2 ml-2 text-2xl overflow-auto\">\n <span className=\"text-gray-400\">No data</span>\n </div>\n </ChartBox>\n )\n }\n\n const value = Object.values(props.data[0])[0];\n return (\n <ChartBox {...props}>\n <div className=\"mt-2 ml-2 font-bold text-2xl overflow-auto\">{renderValue(value)}</div>\n </ChartBox>\n );\n};\n\nfunction renderValue(v: any) {\n if (typeof v == 'string' || typeof v == 'number') {\n return v;\n }\n return JSON.stringify(v);\n}\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport JSONTable from '../../JSONTable';\n\nexport type TableCard = ChartBox & {\n type?: 'TableCard';\n columnOptions?: {\n [key: string]: {\n label: string;\n hidden: boolean;\n }\n }\n}\n\nexport const TableCard = (props: TableCard) => {\n const { data = [], columnOptions = {} } = props;\n\n return (\n <ChartBox {...props}>\n {data?.length > 0\n ? <JSONTable dataSource={data} columnOptions={columnOptions} className=\"h-[256px]\" />\n : <div className=\"h-[256px] flex justify-center items-center text-gray-400\">No data</div>\n }\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, LineChart, Text, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type KPICard = ChartBox & {\n type?: 'KPICard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n curveType?: 'linear' | 'natural' | 'step';\n metricTitle?: string;\n metric?: string | number;\n chartType?: 'area' | 'line';\n}\n\nexport const KPICard = (props: KPICard) => {\n const {\n metricTitle, metric, chartType = 'area', data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`, curveType = 'linear'\n } = props;\n\n const ChartComp = chartType === 'area' ? AreaChart : LineChart;\n\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className='w-auto'>\n <Text className='whitespace-nowrap'>{metricTitle}</Text>\n <div className='font-bold text-3xl'>{metric}</div>\n </div>\n <ChartComp\n className='overflow-hidden'\n style={{ height: \"100px\" }}\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n curveType={curveType}\n showXAxis={false}\n showGridLines={false}\n startEndOnly={true}\n showYAxis={false}\n showLegend={false}\n />\n </div>\n </ChartBox>\n );\n};\n"]}
1
+ {"version":3,"sources":["../components/JSONMetricsView/index.tsx","../components/JSONMetricsView/BarChartCard/index.tsx","../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/LineChartCard/index.tsx","../components/JSONMetricsView/AreaChartCard/index.tsx","../components/JSONMetricsView/DonutChartCard/index.tsx","../components/JSONMetricsView/CountCard/index.tsx","../components/JSONMetricsView/TableCard/index.tsx","../components/JSONMetricsView/KPICard/index.tsx","../components/Common/SkeletonBox/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":";;;;;;;;;;;;;;;;;AAAA,OAAOA,aAAW;AAClB,SAAS,KAAK,YAAY;;;ACD1B,OAAOA,YAAW;AAClB,SAAS,gBAAgC;;;ACDzC,OAAO,WAAW;AAElB,SAAS,YAAY;AAkBd,IAAM,WAAW,CAAC,EAAE,OAAO,aAAa,OAAO,UAAU,WAAW,iBAAiB,iBAAiB,MAAgB;AAC3H,SACE,oCAAC,QAAK,WAAW,GAAG,yCAAyC,SAAS,MAClE,SAAS,gBACT,oCAAC,SAAI,WAAW,GAAG,gBAAgB,eAAe,KAC/C,SAAS,oCAAC,aAAK,KAAM,GACrB,eAAe,oCAAC,SAAI,WAAU,aAAW,WAAY,CACxD,GAEF,oCAAC,SAAI,WAAW,GAAG,aAAa,gBAAgB,KAAI,QAAQ,oCAAC,SAAI,WAAU,kBAAgB,KAAM,IAAS,QAAS,CACrH;AAEJ;;;ADhBO,IAAM,eAAe,CAAC,UAAwB;AACnD,QAAM;AAAA,IACJ,OAAO,CAAC;AAAA,IACR,aAAa,CAAC,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR,iBAAiB,CAAC,WAAW,GAAG,MAAM;AAAA,IACtC,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR;AAAA,IACA,gBAAgB;AAAA,EAClB,IAAI;AAEJ,SACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC,UAAU,QAAQ,QAAQ,SAAS,UAAU,UAAU,OAAO,SAAS,UAAU,QAAQ,QAAQ,UAAU,MAAM;AAAA,MAC1H;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF,CACF;AAEJ;;;AE9CA,OAAOA,YAAW;AAClB,SAAS,iBAAiC;AA4CnC,IAAM,gBAAgB,CAAC,UAAyB;AACrD,QAAM;AAAA,IACJ,OAAO,CAAC;AAAA,IACR,aAAa,CAAC,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS,CAAC,UAAU,QAAQ,QAAQ,SAAS,UAAU,UAAU,OAAO,SAAS,UAAU,QAAQ,QAAQ,UAAU,MAAM;AAAA,IAC3H,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,iBAAiB,CAAC,WAAW,GAAG,MAAM;AAAA,EACxC,IAAI;AAEJ,SACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF,CACF;AAEJ;;;ACrFA,OAAOA,YAAW;AAClB,SAAS,iBAAiC;AA+CnC,IAAM,gBAAgB,CAAC,UAAyB;AACrD,QAAM;AAAA,IACJ,OAAO,CAAC;AAAA,IACR,aAAa,CAAC,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS,CAAC,UAAU,QAAQ,QAAQ,SAAS,UAAU,UAAU,OAAO,SAAS,UAAU,QAAQ,QAAQ,UAAU,MAAM;AAAA,IAC3H,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR;AAAA,IACA,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,iBAAiB,CAAC,WAAW,GAAG,MAAM;AAAA,IACtC;AAAA,EACF,IAAI;AAEJ,SACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF,CACF;AAEJ;;;AC5FA,OAAOA,YAAW;AAClB,SAAS,kBAAkC;AAcpC,IAAM,iBAAiB,CAAC,UAA0B;AACvD,QAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,QAAQ,QAAQ,iBAAiB,CAAC,WAAW,GAAG,MAAM,IAAI,YAAY,MAAM,UAAU,SAAS,gBAAgB,gBAAgB,KAAK,IAAI;AACnL,QAAM,WAAW,WAAW,CAAC;AAC7B,SACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC,UAAU,QAAQ,QAAQ,SAAS,UAAU,UAAU,OAAO,SAAS,UAAU,QAAQ,QAAQ,UAAU,MAAM;AAAA,MAC1H;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF,CACF;AAEJ;;;ACjCA,OAAOA,YAAW;AASX,IAAM,YAAY,CAAC,UAAqB;AAT/C;AAUE,MAAI,GAAC,WAAM,SAAN,mBAAY,SAAQ;AACvB,WACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,oCAAoC,MAAM,cAAc,KACzE,gBAAAA,OAAA,cAAC,UAAK,WAAU,mBAAgB,SAAO,CACzC,CACF;AAAA,EAEJ;AAEA,MAAI,CAAC,MAAM,mBAAmB;AAC5B,WACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,oCAAoC,MAAM,cAAc,KACzE,gBAAAA,OAAA,cAAC,UAAK,WAAU,2BAAwB,QAClC,gBAAAA,OAAA,cAAC,UAAK,WAAU,eAAY,mBAAiB,GAAO,mBAC1D,CACF,CACF;AAAA,EAEJ;AAEA,QAAM,MAAM,MAAM,KAAK,OAAO,CAAC,KAAK,QAAQ;AAC1C,UAAM,IAAI,IAAI,MAAM,iBAAiB;AACrC,QAAI,OAAO,KAAK,UAAU;AACxB,aAAO,MAAM;AAAA,IACf,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC;AAEJ,SACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,8CAA8C,MAAM,cAAc,KAAI,GAAI,CAC/F;AAEJ;;;AC9CA,OAAOA,YAAW;AAeX,IAAM,YAAY,CAAC,UAAqB;AAC7C,QAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC,GAAG,eAAe,IAAI;AAC1D,SACE,gBAAAA,OAAA,cAAC,6BAAa,SACX,6BAAM,UAAS,IACZ,gBAAAA,OAAA,cAAC,qBAAU,YAAY,MAAM,eAA8B,WAAW,GAAG,aAAa,cAAc,GAAG,IACvG,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,4DAA4D,cAAc,KAAG,SAAO,CAE7G;AAEJ;;;ACzBA,OAAOA,YAAW;AAClB,SAAS,aAAAC,YAAW,aAAAC,YAAW,YAA4B;;;ACA3D,SAAS,gBAAgB;AACzB,OAAOF,YAAW;AAQX,IAAM,cAAc,CAAC,EAAE,MAAM,aAAa,UAAU,MAAkE;AAC3H,QAAM,WAAW,CAAC,GAAG,IAAI,MAAM,QAAQ,CAAC,EAAE,KAAK,CAAC;AAEhD,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,2BAA2B,SAAS,KACpD,SAAS,IAAI,CAAC,GAAG,UAAU;AAC1B,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,YAAY;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,QACA,WAAW,GAAG,eAAe,WAAW;AAAA;AAAA,IAC1C;AAAA,EAEJ,CAAC,CACH;AAEJ;;;ADXO,IAAM,UAAU,CAAC,UAAmB;AACzC,QAAM,EAAE,aAAa,QAAQ,YAAY,QAAQ,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,QAAQ,QAAQ,iBAAiB,CAAC,WAAW,GAAG,MAAM,IAAI,YAAY,UAAU,SAAS,eAAe,IAAI;AAEhM,MAAI,SAAS;AACX,WACE,gBAAAA,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA,cAAC,SAAI,WAAU,2CACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,YACb,gBAAAA,OAAA,cAAC,QAAK,WAAU,uBAAoB,YAAU,GAC9C,gBAAAA,OAAA,cAAC,SAAI,WAAU,wBAAqB,GAAC,CACvC,GACA,gBAAAA,OAAA,cAAC,eAAY,WAAU,mBAAkB,aAAY,6BAA4B,MAAM,GAAG,CAC5F,CACF;AAAA,EAEJ;AAEA,QAAM,YAAY,cAAc,SAASC,aAAYC;AAErD,SACE,gBAAAF,OAAA,cAAC,6BAAa,QACZ,gBAAAA,OAAA,cAAC,SAAI,WAAU,2CACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,YACb,gBAAAA,OAAA,cAAC,QAAK,WAAU,uBAAqB,WAAY,GACjD,gBAAAA,OAAA,cAAC,SAAI,WAAU,wBAAsB,0BAAU,GAAI,CACrD,GACA,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,6BAA6B,cAAc;AAAA,MACzD;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC,UAAU,QAAQ,QAAQ,SAAS,UAAU,UAAU,OAAO,SAAS,UAAU,QAAQ,QAAQ,UAAU,MAAM;AAAA,MAC1H;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,eAAe;AAAA,MACf,cAAc;AAAA,MACd,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,eAAe;AAAA;AAAA,EACjB,CACF,CACF;AAEJ;;;ARnDA,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,kBAAkB,CAAC,EAAE,KAAK,MAAuC;AACrE,SACE,gBAAAA,QAAA,cAAC,QAAK,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,WAAU,WACvE,KAAK,IAAI,CAAC,MAAM,UAAU;AAzBjC;AA0BQ,UAAM,YAAY,WAAW,KAAK,IAAI;AACtC,WACE,gBAAAA,QAAA,cAAC,OAAI,KAAK,OAAO,cAAc,GAAG,eAAc,UAAK,iBAAL,YAAqB,KAEnE,gBAAAA,QAAA,cAAC,8BAAc,KAAM,CACvB;AAAA,EAEJ,CAAC,CACH;AAEJ;AAEO,IAAM,cAAc,CAAC,EAAE,KAAK,MAAqC;AACtE,QAAM,OAAO,WAAW,KAAK,IAAI;AAEjC,SAAO,gBAAAA,QAAA,cAAC,yBAAS,KAAM;AACzB","sourcesContent":["import React from 'react';\nimport { Col, Grid } from '@tremor/react';\nimport { BarChartCard } from './BarChartCard';\nimport { LineChartCard } from './LineChartCard';\nimport { AreaChartCard } from './AreaChartCard';\nimport { DonutChartCard } from './DonutChartCard';\nimport { CountCard } from './CountCard';\nimport { TableCard } from './TableCard';\nimport { KPICard } from './KPICard';\n\nexport type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;\n\nconst components = {\n AreaChartCard,\n LineChartCard,\n BarChartCard,\n DonutChartCard,\n CountCard,\n TableCard,\n KPICard,\n};\n\nconst JSONMetricsView = ({ data }: { data: JSONMetricsViewType[] }) => {\n return (\n <Grid numItems={1} numItemsSm={1} numItemsLg={2} numItemsMd={2} className=\"gap-2\">\n {data.map((item, index) => {\n const Component = components[item.type];\n return (\n <Col key={index} numColSpanSm={1} numColSpanMd={item.numColSpanMd ?? 1}>\n {/* @ts-ignore */}\n <Component {...item} />\n </Col>\n );\n })}\n </Grid>\n );\n};\n\nexport const MetricsView = ({ data }: { data: JSONMetricsViewType }) => {\n const Comp = components[data.type];\n // @ts-ignore\n return <Comp {...data} />;\n};\n\nexport { JSONMetricsView };\n","import React from 'react';\nimport { BarChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type BarChartCard = ChartBox & {\n type?: 'BarChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n showAnimation?: boolean;\n};\n\nexport const BarChartCard = (props: BarChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n valueFormatter = (number) => `${number}`,\n showLegend = false,\n showGridLines = false,\n stack = false,\n chartClassName,\n showAnimation = true,\n } = props;\n\n return (\n <ChartBox {...props}>\n <BarChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n yAxisWidth={48}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n showAnimation={showAnimation}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card } from '@nextui-org/react';\n\nexport interface ChartBox {\n title?: React.ReactNode;\n description?: string;\n error?: string;\n data?: {\n [key: string]: any;\n }[];\n children?: React.ReactNode;\n gridH?: number; // grid units, not pixels\n numColSpanMd?: number;\n className?: string;\n headerClassName?: string;\n contentClassName?: string;\n chartClassName?: string;\n}\n\nexport const ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => {\n return (\n <Card className={cn('dark:border-gray-800 shadow-sm border', className)}>\n {(title || description) && (\n <div className={cn('p-4 h-[60px]', headerClassName)}>\n {title && <div>{title}</div>}\n {description && <div className=\"text-xs\">{description}</div>}\n </div>\n )}\n <div className={cn('px-2 pb-5', contentClassName)}>{error ? <div className=\"text-red-600\">{error}</div> : children}</div>\n </Card>\n );\n};\n","import React from 'react';\nimport { LineChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type LineChartCard = ChartBox & {\n type?: 'LineChartCard';\n categories?: string[];\n index?: string;\n curveType?: 'linear' | 'step' | 'monotone';\n colors?: (\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'neutral'\n | 'stone'\n | 'red'\n | 'orange'\n | 'amber'\n | 'yellow'\n | 'lime'\n | 'green'\n | 'emerald'\n | 'teal'\n | 'cyan'\n | 'sky'\n | 'blue'\n | 'indigo'\n | 'violet'\n | 'purple'\n | 'fuchsia'\n | 'pink'\n | 'rose'\n )[];\n showLegend?: boolean;\n showGridLines?: boolean;\n showXAxis?: boolean;\n showYAxis?: boolean;\n startEndOnly?: boolean;\n showTooltip?: boolean;\n showAnimation?: boolean;\n autoMinValue?: boolean;\n valueFormatter?: ValueFormatter;\n};\n\nexport const LineChartCard = (props: LineChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n curveType = 'linear',\n colors = ['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue'],\n showLegend = false,\n showGridLines = false,\n chartClassName,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n showTooltip = true,\n showAnimation = true,\n autoMinValue = true,\n valueFormatter = (number) => `${number}`,\n } = props;\n\n return (\n <ChartBox {...props}>\n <LineChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={colors}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n curveType={curveType}\n showXAxis={showXAxis}\n showYAxis={showYAxis}\n startEndOnly={startEndOnly}\n showTooltip={showTooltip}\n showAnimation={showAnimation}\n autoMinValue={autoMinValue}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type AreaChartCard = ChartBox & {\n type?: 'AreaChartCard';\n categories?: string[];\n index?: string;\n curveType?: 'linear' | 'step' | 'monotone';\n colors?: (\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'neutral'\n | 'stone'\n | 'red'\n | 'orange'\n | 'amber'\n | 'yellow'\n | 'lime'\n | 'green'\n | 'emerald'\n | 'teal'\n | 'cyan'\n | 'sky'\n | 'blue'\n | 'indigo'\n | 'violet'\n | 'purple'\n | 'fuchsia'\n | 'pink'\n | 'rose'\n )[];\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n showXAxis?: boolean;\n showYAxis?: boolean;\n startEndOnly?: boolean;\n showTooltip?: boolean;\n showAnimation?: boolean;\n autoMinValue?: boolean;\n valueFormatter?: ValueFormatter;\n customTooltip?: ({ payload, active, label }) => React.ReactNode;\n};\n\n\nexport const AreaChartCard = (props: AreaChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n curveType = 'linear',\n colors = ['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue'],\n showLegend = false,\n showGridLines = false,\n stack = false,\n chartClassName,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n showTooltip = true,\n showAnimation = true,\n autoMinValue = true,\n valueFormatter = (number) => `${number}`,\n customTooltip,\n } = props;\n\n return (\n <ChartBox {...props}>\n <AreaChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={colors}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n curveType={curveType}\n showXAxis={showXAxis}\n showYAxis={showYAxis}\n startEndOnly={startEndOnly}\n showTooltip={showTooltip}\n showAnimation={showAnimation}\n autoMinValue={autoMinValue}\n customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n\n","import React from 'react';\nimport { DonutChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type DonutChartCard = ChartBox & {\n type?: 'DonutChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLabel?: boolean;\n variant?: 'donut' | 'pie';\n showAnimation?: boolean;\n};\n\nexport const DonutChartCard = (props: DonutChartCard) => {\n const { data = [], categories = ['value'], index = 'name', valueFormatter = (number) => `${number}`, showLabel = true, variant = 'donut', chartClassName, showAnimation = true } = props;\n const category = categories[0];\n return (\n <ChartBox {...props}>\n <DonutChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n category={category}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n showLabel={showLabel}\n variant={variant}\n showAnimation={showAnimation}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type CountCard = ChartBox & {\n type?: 'CountCard';\n summedColumnIndex?: string;\n};\n\nexport const CountCard = (props: CountCard) => {\n if (!props.data?.length) {\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 text-2xl overflow-auto\", props.chartClassName)}>\n <span className=\"text-gray-400\">No data</span>\n </div>\n </ChartBox>\n );\n }\n\n if (!props.summedColumnIndex) {\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 text-2xl overflow-auto\", props.chartClassName)}>\n <span className=\"text-gray-400 text-sm\">\n set <span className=\"font-bold\">summedColumnIndex</span> to sum up values\n </span>\n </div>\n </ChartBox>\n );\n }\n\n const sum = props.data.reduce((acc, cur) => {\n const v = cur[props.summedColumnIndex];\n if (typeof v == 'number') {\n return acc + v;\n } else {\n return acc;\n }\n }, 0);\n\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 font-bold text-2xl overflow-auto\", props.chartClassName)}>{sum}</div>\n </ChartBox>\n );\n};","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport JSONTable from '../../JSONTable';\nimport { cn } from '../../../lib/utils';\n\nexport type TableCard = ChartBox & {\n type?: 'TableCard';\n columnOptions?: {\n [key: string]: {\n label: string;\n hidden: boolean;\n }\n }\n}\n\nexport const TableCard = (props: TableCard) => {\n const { data = [], columnOptions = {}, chartClassName } = props;\n return (\n <ChartBox {...props}>\n {data?.length > 0\n ? <JSONTable dataSource={data} columnOptions={columnOptions} className={cn(\"h-[256px]\", chartClassName)} />\n : <div className={cn(\"h-[256px] flex justify-center items-center text-gray-400\", chartClassName)}>No data</div>\n }\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, LineChart, Text, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { SkeletonBox } from '../../Common/SkeletonBox';\nimport { cn } from '../../../lib/utils';\n\nexport type KPICard = ChartBox & {\n type?: 'KPICard';\n categories?: string[];\n index?: string;\n chartType?: 'area' | 'line';\n curveType?: 'linear' | 'step' | 'monotone';\n metricTitle?: string;\n metric?: string | number;\n valueFormatter?: ValueFormatter;\n loading?: boolean;\n};\n\nexport const KPICard = (props: KPICard) => {\n const { metricTitle, metric, chartType = 'area', data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`, curveType = 'linear', loading, chartClassName } = props;\n\n if (loading) {\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className=\"w-auto\">\n <Text className=\"whitespace-nowrap\">Loading...</Text>\n <div className=\"font-bold text-3xl\">-</div>\n </div>\n <SkeletonBox className=\"flex-col w-full\" skClassName=\"h-[100px] overflow-hidden\" line={1} />\n </div>\n </ChartBox>\n );\n }\n\n const ChartComp = chartType === 'area' ? AreaChart : LineChart;\n\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className=\"w-auto\">\n <Text className=\"whitespace-nowrap\">{metricTitle}</Text>\n <div className=\"font-bold text-3xl\">{metric ?? '-'}</div>\n </div>\n <ChartComp\n className={cn('h-[100px] overflow-hidden', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n curveType={curveType}\n showXAxis={false}\n showGridLines={false}\n startEndOnly={true}\n showYAxis={false}\n showLegend={false}\n autoMinValue={true}\n showAnimation={true}\n />\n </div>\n </ChartBox>\n );\n};\n","\nimport { Skeleton } from '@nextui-org/react';\nimport React from 'react';\nimport { cn } from '../../../lib/utils';\n\nexport interface SkeletonBox {\n line?: number;\n skClassName: string;\n}\n\nexport const SkeletonBox = ({ line, skClassName, className }: SkeletonBox & { skClassName?: string; className?: string }) => {\n const lineCamp = [...new Array(line || 1).keys()];\n\n return (\n <div className={cn('flex items-center gap-4', className)}>\n {lineCamp.map((_, index) => {\n return (\n <Skeleton\n key={index}\n classNames={{\n base: 'transition-background !duration-700 before:transition-opacity before:!duration-700',\n content: 'transition-opacity motion-reduce:transition-none !duration-700',\n }}\n className={cn('w-full h-10', skClassName)}\n />\n );\n })}\n </div>\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
- import { S as Store } from './root-C3lZnoCI.js';
1
+ import { S as Store } from './root-766ae985.js';
2
2
  import React from 'react';
3
3
  import * as react_hot_toast from 'react-hot-toast';
4
- import { P as PromiseState } from './PromiseState-phP8daDG.js';
4
+ import { P as PromiseState } from './PromiseState-2a8c856c.js';
5
5
  import 'typed-emitter';
6
6
  import 'events';
7
7
 
package/dist/plugins.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  export { ToastPlugin } from './chunk-N4XCPX4L.mjs';
2
- import { DialogStore } from './chunk-QO5RPRUY.mjs';
3
- export { DialogStore } from './chunk-QO5RPRUY.mjs';
4
- import { useStore } from './chunk-OCLML5CM.mjs';
5
- import './chunk-XJMRAPHI.mjs';
6
- import { cn } from './chunk-AIZ7XDNV.mjs';
7
- import { __spreadValues } from './chunk-R4SQKVDQ.mjs';
2
+ import { DialogStore } from './chunk-WAYJJYKN.mjs';
3
+ export { DialogStore } from './chunk-WAYJJYKN.mjs';
4
+ import { useStore } from './chunk-SXQEYWUP.mjs';
5
+ import './chunk-HRWHDF2F.mjs';
6
+ import { cn } from './chunk-6UHBBDKI.mjs';
7
+ import { __spreadValues } from './chunk-6F7H4PAA.mjs';
8
8
  import { makeAutoObservable } from 'mobx';
9
9
  import React from 'react';
10
10
  import { observer } from 'mobx-react-lite';
@@ -106,4 +106,4 @@ declare class RootStore<T extends EventMap = any> {
106
106
  }, ann?: any): T;
107
107
  }
108
108
 
109
- export { type BaseState as B, type EventMap as E, NumberState as N, RootStore as R, Store as S, ValueState as V, type StoreClass as a, StringState as b, BooleanState as c };
109
+ export { BaseState as B, EventMap as E, NumberState as N, RootStore as R, Store as S, ValueState as V, StoreClass as a, StringState as b, BooleanState as c };
package/dist/ui.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import './chunk-7FI42NGB.mjs';
2
- import { cn } from './chunk-AIZ7XDNV.mjs';
3
- import './chunk-R4SQKVDQ.mjs';
1
+ import './chunk-U7JFOBSQ.mjs';
2
+ import { cn } from './chunk-6UHBBDKI.mjs';
3
+ import './chunk-6F7H4PAA.mjs';
4
4
  import { Card } from '@nextui-org/react';
5
5
  import React from 'react';
6
6
  import { CheckIcon, CopyIcon } from '@radix-ui/react-icons';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dappworks/kit",
3
- "version": "0.4.66",
3
+ "version": "0.4.68",
4
4
  "description": "",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",