@dappworks/kit 0.5.40 → 0.5.42

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 (85) hide show
  1. package/dist/PaginationState-Bmrrw0ky.d.mts +17 -0
  2. package/dist/PromiseState-8EAu4Zv4.d.mts +57 -0
  3. package/dist/StorageState-qapaHguM.d.mts +48 -0
  4. package/dist/aiem.d.mts +167 -0
  5. package/dist/aiem.mjs +5 -5
  6. package/dist/aiem.mjs.map +1 -1
  7. package/dist/{chunk-MPNSYZJU.mjs → chunk-2B3FO5P6.mjs} +5 -5
  8. package/dist/chunk-2B3FO5P6.mjs.map +1 -0
  9. package/dist/{chunk-2HNXZE3X.mjs → chunk-6HA5WR5H.mjs} +372 -401
  10. package/dist/chunk-6HA5WR5H.mjs.map +1 -0
  11. package/dist/{chunk-QA3E2PJT.mjs → chunk-AFXQRBS6.mjs} +3 -3
  12. package/dist/chunk-AFXQRBS6.mjs.map +1 -0
  13. package/dist/{chunk-O3FWAAEG.mjs → chunk-FLACAHWH.mjs} +7 -8
  14. package/dist/chunk-FLACAHWH.mjs.map +1 -0
  15. package/dist/chunk-GKAU4P5I.mjs +1 -1
  16. package/dist/chunk-GKAU4P5I.mjs.map +1 -1
  17. package/dist/{chunk-B7RV4C5E.mjs → chunk-GPPSD2BO.mjs} +4 -6
  18. package/dist/chunk-GPPSD2BO.mjs.map +1 -0
  19. package/dist/chunk-IMOLRP7I.mjs +1 -1
  20. package/dist/chunk-IMOLRP7I.mjs.map +1 -1
  21. package/dist/chunk-K7LFG5BA.mjs +2 -2
  22. package/dist/chunk-K7LFG5BA.mjs.map +1 -1
  23. package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
  24. package/dist/chunk-NCGC2KDE.mjs.map +1 -0
  25. package/dist/chunk-ONVPCAMQ.mjs +1 -1
  26. package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
  27. package/dist/{chunk-PZ3VSAOC.mjs → chunk-TEVYTENF.mjs} +3 -3
  28. package/dist/chunk-TEVYTENF.mjs.map +1 -0
  29. package/dist/{chunk-2WRRZVUW.mjs → chunk-UMFAEQ5S.mjs} +30 -55
  30. package/dist/chunk-UMFAEQ5S.mjs.map +1 -0
  31. package/dist/{chunk-R4N52NI2.mjs → chunk-VDDGCMCB.mjs} +38 -28
  32. package/dist/chunk-VDDGCMCB.mjs.map +1 -0
  33. package/dist/chunk-XSGTWROT.mjs +1 -1
  34. package/dist/chunk-XSGTWROT.mjs.map +1 -1
  35. package/dist/{chunk-R4SQKVDQ.mjs → chunk-YOSPWY5K.mjs} +2 -2
  36. package/dist/chunk-YOSPWY5K.mjs.map +1 -0
  37. package/dist/dev.d.mts +26 -0
  38. package/dist/dev.mjs +6 -8
  39. package/dist/dev.mjs.map +1 -1
  40. package/dist/experimental.d.mts +190 -0
  41. package/dist/experimental.mjs +6 -8
  42. package/dist/experimental.mjs.map +1 -1
  43. package/dist/form.d.mts +384 -0
  44. package/dist/form.mjs +15 -19
  45. package/dist/form.mjs.map +1 -1
  46. package/dist/index-CUKoRIdy.d.mts +3 -0
  47. package/dist/index.d.mts +90 -0
  48. package/dist/index.mjs +8 -8
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/inspector.d.mts +15 -0
  51. package/dist/inspector.mjs +3 -4
  52. package/dist/inspector.mjs.map +1 -1
  53. package/dist/jsoncomponent.d.mts +22 -0
  54. package/dist/jsoncomponent.mjs +2 -2
  55. package/dist/jsoncomponent.mjs.map +1 -1
  56. package/dist/jsontable.d.mts +126 -0
  57. package/dist/jsontable.mjs +5 -5
  58. package/dist/jsontable.mjs.map +1 -1
  59. package/dist/metrics.d.mts +121 -0
  60. package/dist/metrics.mjs +6 -6
  61. package/dist/metrics.mjs.map +1 -1
  62. package/dist/plugins.d.mts +118 -0
  63. package/dist/plugins.mjs +5 -5
  64. package/dist/plugins.mjs.map +1 -1
  65. package/dist/root-BPMUmS6H.d.mts +111 -0
  66. package/dist/ui.d.mts +29 -0
  67. package/dist/ui.mjs +5 -6
  68. package/dist/ui.mjs.map +1 -1
  69. package/dist/utils.d.mts +232 -0
  70. package/dist/utils.mjs +4 -4
  71. package/dist/utils.mjs.map +1 -1
  72. package/dist/wallet.d.mts +198 -0
  73. package/dist/wallet.mjs +58 -16
  74. package/dist/wallet.mjs.map +1 -1
  75. package/package.json +4 -3
  76. package/dist/chunk-2HNXZE3X.mjs.map +0 -1
  77. package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
  78. package/dist/chunk-2WRRZVUW.mjs.map +0 -1
  79. package/dist/chunk-B7RV4C5E.mjs.map +0 -1
  80. package/dist/chunk-MPNSYZJU.mjs.map +0 -1
  81. package/dist/chunk-O3FWAAEG.mjs.map +0 -1
  82. package/dist/chunk-PZ3VSAOC.mjs.map +0 -1
  83. package/dist/chunk-QA3E2PJT.mjs.map +0 -1
  84. package/dist/chunk-R4N52NI2.mjs.map +0 -1
  85. package/dist/chunk-R4SQKVDQ.mjs.map +0 -1
@@ -0,0 +1,3 @@
1
+ type ThemeType = "default" | "primary";
2
+
3
+ export type { ThemeType as T };
@@ -0,0 +1,90 @@
1
+ import { R as RootStore, E as EventMap, S as Store } from './root-BPMUmS6H.mjs';
2
+ export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-BPMUmS6H.mjs';
3
+ export { P as PromiseState } from './PromiseState-8EAu4Zv4.mjs';
4
+ export { P as PromiseHook, S as StorageState } from './StorageState-qapaHguM.mjs';
5
+ import BigNumber from 'bignumber.js';
6
+ export { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
7
+ import React from 'react';
8
+ import 'typed-emitter';
9
+ import 'events';
10
+ import 'mobx';
11
+
12
+ declare const rootStore: RootStore<EventMap>;
13
+ declare const useStore: () => RootStore<EventMap>;
14
+
15
+ declare class BigNumberState {
16
+ value: BigNumber;
17
+ loading: boolean;
18
+ decimals: number;
19
+ fixed: number;
20
+ formatter?: Function;
21
+ constructor(args: Partial<BigNumberState>);
22
+ get format(): any;
23
+ getFormat({ decimals, fixed }?: {
24
+ decimals?: number;
25
+ fixed?: number;
26
+ }): any;
27
+ setDecimals(decimals: number): void;
28
+ setValue(value: BigNumber): void;
29
+ setLoading(val: any): void;
30
+ }
31
+
32
+ declare class BigNumberInputState {
33
+ value: BigNumber;
34
+ format: string;
35
+ loading: boolean;
36
+ decimals: number;
37
+ formatter?: Function;
38
+ constructor(args: Partial<BigNumberInputState>);
39
+ get noDecimasValue(): BigNumber;
40
+ setValue(value: any): void;
41
+ setFormat(val: any): void;
42
+ setLoading(val: boolean): void;
43
+ setDecimals(val: number): void;
44
+ get isZero(): boolean;
45
+ }
46
+
47
+ declare class StorageListState<T = any> {
48
+ key: string;
49
+ list: T[];
50
+ static safeParse(val: any): any;
51
+ constructor(args: {
52
+ key: string;
53
+ });
54
+ load(): any;
55
+ push(value: T): void;
56
+ remove(index: number): void;
57
+ private save;
58
+ clear(): void;
59
+ }
60
+
61
+ declare class ObjectPool {
62
+ static pool: {
63
+ [key: string]: any;
64
+ };
65
+ static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U;
66
+ }
67
+
68
+ declare class AutoMan implements Store {
69
+ sid: string;
70
+ stype: string;
71
+ autoObservable?: boolean | undefined;
72
+ provider: (() => React.JSX.Element) & {
73
+ displayName: string;
74
+ };
75
+ static use<T extends {
76
+ [Key in keyof T]: Store;
77
+ }, U extends {
78
+ [Key in keyof T]: T[Key] extends Store ? {
79
+ [K in keyof T[Key]]?: any;
80
+ } : never;
81
+ }>(stores: T, promises?: U): T;
82
+ }
83
+
84
+ declare const AppProvider: (({ children }: {
85
+ children?: React.ReactNode;
86
+ }) => React.JSX.Element) & {
87
+ displayName: string;
88
+ };
89
+
90
+ export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, EventMap, ObjectPool, RootStore, StorageListState, Store, rootStore, useStore };
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
- export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-2WRRZVUW.mjs';
2
- export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-B7RV4C5E.mjs';
3
- import './chunk-O3FWAAEG.mjs';
4
- import './chunk-2N4HH4ZF.mjs';
5
- import './chunk-PZ3VSAOC.mjs';
1
+ export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-UMFAEQ5S.mjs';
2
+ export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-GPPSD2BO.mjs';
3
+ import './chunk-FLACAHWH.mjs';
4
+ import './chunk-NCGC2KDE.mjs';
5
+ import './chunk-TEVYTENF.mjs';
6
6
  import './chunk-IMOLRP7I.mjs';
7
7
  import './chunk-GKAU4P5I.mjs';
8
8
  export { RootStore, rootStore, useStore } from './chunk-XSGTWROT.mjs';
9
- import './chunk-R4N52NI2.mjs';
9
+ import './chunk-VDDGCMCB.mjs';
10
10
  export { PaginationState } from './chunk-ONVPCAMQ.mjs';
11
11
  import './chunk-K7LFG5BA.mjs';
12
- import './chunk-R4SQKVDQ.mjs';
13
- //# sourceMappingURL=out.js.map
12
+ import './chunk-YOSPWY5K.mjs';
13
+ //# sourceMappingURL=index.mjs.map
14
14
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { S as Store } from './root-BPMUmS6H.mjs';
3
+ import 'typed-emitter';
4
+
5
+ declare class DevInspectorPlugin implements Store {
6
+ sid: string;
7
+ stype: string;
8
+ autoObservable: boolean;
9
+ disabled: boolean;
10
+ editor: 'vscode' | 'cursor';
11
+ constructor(args?: Partial<DevInspectorPlugin>);
12
+ provider: () => React.JSX.Element;
13
+ }
14
+
15
+ export { DevInspectorPlugin };
@@ -1,4 +1,4 @@
1
- import './chunk-R4SQKVDQ.mjs';
1
+ import './chunk-YOSPWY5K.mjs';
2
2
  import React from 'react';
3
3
  import { Inspector } from 'react-dev-inspector';
4
4
 
@@ -16,8 +16,7 @@ var DevInspectorPlugin = class {
16
16
  keys: ["control", "shift", "command", "c"],
17
17
  disableLaunchEditor: true,
18
18
  onClickElement: ({ codeInfo }) => {
19
- if (!(codeInfo == null ? void 0 : codeInfo.absolutePath))
20
- return;
19
+ if (!(codeInfo == null ? void 0 : codeInfo.absolutePath)) return;
21
20
  const { absolutePath, lineNumber, columnNumber } = codeInfo;
22
21
  window.open(`${this.editor}://file/${absolutePath}:${lineNumber}:${columnNumber}`);
23
22
  }
@@ -29,5 +28,5 @@ var DevInspectorPlugin = class {
29
28
  };
30
29
 
31
30
  export { DevInspectorPlugin };
32
- //# sourceMappingURL=out.js.map
31
+ //# sourceMappingURL=inspector.mjs.map
33
32
  //# sourceMappingURL=inspector.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../module/DevInspector/index.tsx"],"names":[],"mappings":";;;AAAA,OAAO,WAAW;AAClB,SAAS,iBAAgC;AAGlC,IAAM,qBAAN,MAA0C;AAAA,EAO/C,YAAY,OAAoC,CAAC,GAAG;AANpD,eAAM;AACN,iBAAQ;AACR,0BAAiB;AACjB,oBAAW;AACX,kBAA8B;AAM9B,oBAAW,MAAM;AACf,aACE;AAAA,QAAC;AAAA;AAAA,UAGC,MAAM,CAAC,WAAW,SAAS,WAAW,GAAG;AAAA,UACzC,qBAAqB;AAAA,UACrB,gBAAgB,CAAC,EAAE,SAAS,MAAqB;AAC/C,gBAAI,EAAC,qCAAU;AAAc;AAC7B,kBAAM,EAAE,cAAc,YAAY,aAAa,IAAI;AAEnD,mBAAO,KAAK,GAAG,KAAK,MAAM,WAAW,YAAY,IAAI,UAAU,IAAI,YAAY,EAAE;AAAA,UACnF;AAAA;AAAA,MACF;AAAA,IAEJ;AAlBE,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAkBF","sourcesContent":["import React from 'react';\nimport { Inspector, InspectParams } from 'react-dev-inspector';\nimport { Store } from '../../store/standard/base';\n\nexport class DevInspectorPlugin implements Store {\n sid = 'DevInspectorPlugin';\n stype = \"Plugin\"\n autoObservable = false;\n disabled = false;\n editor: 'vscode' | 'cursor' = 'vscode';\n\n constructor(args: Partial<DevInspectorPlugin> = {}) {\n Object.assign(this, args);\n }\n\n provider = () => {\n return (\n <Inspector\n // props see docs:\n // https://github.com/zthxxx/react-dev-inspector#inspector-component-props\n keys={['control', 'shift', 'command', 'c']}\n disableLaunchEditor={true}\n onClickElement={({ codeInfo }: InspectParams) => {\n if (!codeInfo?.absolutePath) return\n const { absolutePath, lineNumber, columnNumber } = codeInfo\n // you can change the url protocol if you are using in Web IDE\n window.open(`${this.editor}://file/${absolutePath}:${lineNumber}:${columnNumber}`)\n }}\n />\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["../module/DevInspector/index.tsx"],"names":[],"mappings":";;;;AAIO,IAAM,qBAAN,MAA0C;AAAA,EAO/C,WAAA,CAAY,IAAA,GAAoC,EAAC,EAAG;AANpD,IAAA,IAAA,CAAA,GAAA,GAAM,oBAAA;AACN,IAAA,IAAA,CAAA,KAAA,GAAQ,QAAA;AACR,IAAA,IAAA,CAAA,cAAA,GAAiB,KAAA;AACjB,IAAA,IAAA,CAAA,QAAA,GAAW,KAAA;AACX,IAAA,IAAA,CAAA,MAAA,GAA8B,QAAA;AAM9B,IAAA,IAAA,CAAA,QAAA,GAAW,MAAM;AACf,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAGC,IAAA,EAAM,CAAC,SAAA,EAAW,OAAA,EAAS,WAAW,GAAG,CAAA;AAAA,UACzC,mBAAA,EAAqB,IAAA;AAAA,UACrB,cAAA,EAAgB,CAAC,EAAE,QAAA,EAAS,KAAqB;AAC/C,YAAA,IAAI,EAAC,qCAAU,YAAA,CAAA,EAAc;AAC7B,YAAA,MAAM,EAAE,YAAA,EAAc,UAAA,EAAY,YAAA,EAAa,GAAI,QAAA;AAEnD,YAAA,MAAA,CAAO,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,QAAA,EAAW,YAAY,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,CAAA;AAAA,UACnF;AAAA;AAAA,OACF;AAAA,IAEJ,CAAA;AAlBE,IAAA,MAAA,CAAO,MAAA,CAAO,MAAM,IAAI,CAAA;AAAA,EAC1B;AAkBF","file":"inspector.mjs","sourcesContent":["import React from 'react';\nimport { Inspector, InspectParams } from 'react-dev-inspector';\nimport { Store } from '../../store/standard/base';\n\nexport class DevInspectorPlugin implements Store {\n sid = 'DevInspectorPlugin';\n stype = \"Plugin\"\n autoObservable = false;\n disabled = false;\n editor: 'vscode' | 'cursor' = 'vscode';\n\n constructor(args: Partial<DevInspectorPlugin> = {}) {\n Object.assign(this, args);\n }\n\n provider = () => {\n return (\n <Inspector\n // props see docs:\n // https://github.com/zthxxx/react-dev-inspector#inspector-component-props\n keys={['control', 'shift', 'command', 'c']}\n disableLaunchEditor={true}\n onClickElement={({ codeInfo }: InspectParams) => {\n if (!codeInfo?.absolutePath) return\n const { absolutePath, lineNumber, columnNumber } = codeInfo\n // you can change the url protocol if you are using in Web IDE\n window.open(`${this.editor}://file/${absolutePath}:${lineNumber}:${columnNumber}`)\n }}\n />\n );\n };\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+
3
+ declare const COMPONENTS: {
4
+ Card: <T extends Record<string, any>>({ jsondata }: {
5
+ jsondata: JSONDataType<T>;
6
+ }) => React.JSX.Element;
7
+ CardList: <T_1 extends Record<string, any>>({ jsondata }: {
8
+ jsondata: JSONDataType<T_1>;
9
+ }) => React.JSX.Element;
10
+ Nav: <T_2 extends Record<string, any>>({ jsondata }: {
11
+ jsondata: JSONDataType<T_2>;
12
+ }) => React.JSX.Element;
13
+ };
14
+ type JSONDataType<T extends Record<string, any>> = Array<T> | T;
15
+ interface JSONComponentProps<T extends Record<string, any>> {
16
+ className?: string;
17
+ jsondata: JSONDataType<T>;
18
+ type?: keyof typeof COMPONENTS;
19
+ }
20
+ declare const JSONComponent: <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => React.JSX.Element;
21
+
22
+ export { JSONComponent, type JSONComponentProps, type JSONDataType };
@@ -1,4 +1,4 @@
1
- import './chunk-R4SQKVDQ.mjs';
1
+ import './chunk-YOSPWY5K.mjs';
2
2
  import React from 'react';
3
3
 
4
4
  var CardWidget = ({ jsondata }) => {
@@ -38,5 +38,5 @@ var JSONComponent = ({ className, jsondata, type }) => {
38
38
  };
39
39
 
40
40
  export { JSONComponent };
41
- //# sourceMappingURL=out.js.map
41
+ //# sourceMappingURL=jsoncomponent.mjs.map
42
42
  //# sourceMappingURL=jsoncomponent.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/JSONComponent/index.tsx","../components/JSONComponent/Widgets/Card.tsx","../components/JSONComponent/Widgets/CardList.tsx","../components/JSONComponent/Widgets/Nav.tsx"],"names":["React"],"mappings":";;;AAAA,OAAOA,YAAW;;;ACAlB,OAAO,WAAW;AAGlB,IAAM,aAAa,CAAgC,EAAE,SAAS,MAAqC;AACjG,QAAM,OAAO,OAAO,KAAK,QAAQ;AACjC,SACE,oCAAC,SAAI,WAAU,qEACZ,KAAK,IAAI,SAAO;AACf,WACE,oCAAC,SAAI,WAAU,qCAAoC,OACjD,oCAAC,aACE,GACH,GACA,oCAAC,aACE,SAAS,GAAG,CACf,CACF;AAAA,EAEJ,CAAC,CACH;AAEJ;AAEA,IAAO,eAAQ;;;ACvBf,OAAOA,YAAW;AAIlB,IAAM,iBAAiB,CAAgC,EAAE,SAAS,MAAqC;AACrG,MAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,UAAM,YAAY,SAAS,CAAC;AAC5B,QAAI,aAAa,UAAU,gBAAgB,QAAQ;AACjD,aACE,gBAAAA,OAAA,cAAC,SAAI,WAAU,eACZ,SAAS,IAAI,CAAC,MAAM,UAAU;AAC7B,eACE,gBAAAA,OAAA,cAAC,gBAAW,UAAU,MAAM,KAAK,OAAO;AAAA,MAE5C,CAAC,CACH;AAAA,IAEJ;AAAA,EACF;AACA,SACE,gBAAAA,OAAA,cAAC,gBAAW,UAAoB;AAEpC;AAEA,IAAO,mBAAQ;;;ACxBf,OAAOA,YAAW;AAGlB,IAAM,YAAY,CAAgC,EAAE,SAAS,MAAqC;AAChG,SACE,gBAAAA,OAAA,cAAC,aACC,gBAAAA,OAAA,cAAC,YAAG,KAAG,CACT;AAEJ;AAEA,IAAO,cAAQ;;;AHNf,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF;AAUO,IAAM,gBAAgB,CAAgC,EAAE,WAAW,UAAU,KAAK,MAA6B;AACpH,QAAM,QAAQ,SAAS,MAAM,QAAQ,QAAQ,IAAI,aAAa;AAC9D,QAAM,OAAO,WAAW,KAAK;AAC7B,SACE,gBAAAA,OAAA,cAAC,SAAI,aACH,gBAAAA,OAAA,cAAC,QAAK,UAAoB,CAC5B;AAEJ","sourcesContent":["import React from \"react\";\nimport Card from \"./Widgets/Card\";\nimport CardList from \"./Widgets/CardList\";\nimport Nav from \"./Widgets/Nav\";\n\nconst COMPONENTS = {\n Card,\n CardList,\n Nav,\n};\n\nexport type JSONDataType<T extends Record<string, any>> = Array<T> | T;\n\nexport interface JSONComponentProps<T extends Record<string, any>> {\n className?: string;\n jsondata: JSONDataType<T>;\n type?: keyof typeof COMPONENTS;\n}\n\nexport const JSONComponent = <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => {\n const _type = type || (Array.isArray(jsondata) ? 'CardList' : 'Card');\n const Comp = COMPONENTS[_type];\n return (\n <div className={className}>\n <Comp jsondata={jsondata} />\n </div>\n );\n}\n","import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst CardWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n const keys = Object.keys(jsondata);\n return (\n <div className=\"p-2 shadow-sm rounded-lg border dark:border-[#3e3e3e] space-y-2\">\n {keys.map(key => {\n return (\n <div className=\"flex items-center justify-between\" key={key}>\n <div>\n {key}\n </div>\n <div>\n {jsondata[key]}\n </div>\n </div>\n )\n })}\n </div>\n );\n}\n\nexport default CardWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\nimport CardWidget from \"./Card\";\n\nconst CardListWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n if (Array.isArray(jsondata)) {\n const firstData = jsondata[0];\n if (firstData && firstData.constructor === Object) {\n return (\n <div className=\"space-y-2\">\n {jsondata.map((item, index) => {\n return (\n <CardWidget jsondata={item} key={index} />\n )\n })}\n </div>\n )\n }\n }\n return (\n <CardWidget jsondata={jsondata} />\n );\n}\n\nexport default CardListWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst NavWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n return (\n <div>\n <h1>Nav</h1>\n </div>\n );\n}\n\nexport default NavWidget;"]}
1
+ {"version":3,"sources":["../components/JSONComponent/Widgets/Card.tsx","../components/JSONComponent/Widgets/CardList.tsx","../components/JSONComponent/Widgets/Nav.tsx","../components/JSONComponent/index.tsx"],"names":["React"],"mappings":";;;AAGA,IAAM,UAAA,GAAa,CAAgC,EAAE,QAAA,EAAS,KAAqC;AACjG,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AACjC,EAAA,2CACG,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EAAA,EACZ,IAAA,CAAK,IAAI,CAAA,GAAA,KAAO;AACf,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAAoC,uBACjD,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,IAAA,EACE,GACH,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,IAAA,EACE,QAAA,CAAS,GAAG,CACf,CACF,CAAA;AAAA,EAEJ,CAAC,CACH,CAAA;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ,UAAA;ACnBf,IAAM,cAAA,GAAiB,CAAgC,EAAE,QAAA,EAAS,KAAqC;AACrG,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC3B,IAAA,MAAM,SAAA,GAAY,SAAS,CAAC,CAAA;AAC5B,IAAA,IAAI,SAAA,IAAa,SAAA,CAAU,WAAA,KAAgB,MAAA,EAAQ;AACjD,MAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eACZ,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,QAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,gBAAW,QAAA,EAAU,IAAA,EAAM,KAAK,KAAA,EAAO,CAAA;AAAA,MAE5C,CAAC,CACH,CAAA;AAAA,IAEJ;AAAA,EACF;AACA,EAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,EAAW,QAAA,EAAoB,CAAA;AAEpC,CAAA;AAEA,IAAO,gBAAA,GAAQ,cAAA;ACrBf,IAAM,SAAA,GAAY,CAAgC,EAAE,QAAA,EAAS,KAAqC;AAChG,EAAA,uBACEA,MAAA,aAAA,CAAC,KAAA,EAAA,IAAA,kBACCA,KAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,IAAA,EAAG,KAAG,CACT,CAAA;AAEJ,CAAA;AAEA,IAAO,WAAA,GAAQ,SAAA;;;ACNf,IAAM,UAAA,GAAa;AAAA,EACjB,IAAA,EAAA,YAAA;AAAA,EACA,QAAA,EAAA,gBAAA;AAAA,EACA,GAAA,EAAA;AACF,CAAA;AAUO,IAAM,gBAAgB,CAAgC,EAAE,SAAA,EAAW,QAAA,EAAU,MAAK,KAA6B;AACpH,EAAA,MAAM,QAAQ,IAAA,KAAS,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,UAAA,GAAa,MAAA,CAAA;AAC9D,EAAA,MAAM,IAAA,GAAO,WAAW,KAAK,CAAA;AAC7B,EAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAA,kBACHA,KAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,QAAA,EAAoB,CAC5B,CAAA;AAEJ","file":"jsoncomponent.mjs","sourcesContent":["import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst CardWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n const keys = Object.keys(jsondata);\n return (\n <div className=\"p-2 shadow-sm rounded-lg border dark:border-[#3e3e3e] space-y-2\">\n {keys.map(key => {\n return (\n <div className=\"flex items-center justify-between\" key={key}>\n <div>\n {key}\n </div>\n <div>\n {jsondata[key]}\n </div>\n </div>\n )\n })}\n </div>\n );\n}\n\nexport default CardWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\nimport CardWidget from \"./Card\";\n\nconst CardListWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n if (Array.isArray(jsondata)) {\n const firstData = jsondata[0];\n if (firstData && firstData.constructor === Object) {\n return (\n <div className=\"space-y-2\">\n {jsondata.map((item, index) => {\n return (\n <CardWidget jsondata={item} key={index} />\n )\n })}\n </div>\n )\n }\n }\n return (\n <CardWidget jsondata={jsondata} />\n );\n}\n\nexport default CardListWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst NavWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n return (\n <div>\n <h1>Nav</h1>\n </div>\n );\n}\n\nexport default NavWidget;","import React from \"react\";\nimport Card from \"./Widgets/Card\";\nimport CardList from \"./Widgets/CardList\";\nimport Nav from \"./Widgets/Nav\";\n\nconst COMPONENTS = {\n Card,\n CardList,\n Nav,\n};\n\nexport type JSONDataType<T extends Record<string, any>> = Array<T> | T;\n\nexport interface JSONComponentProps<T extends Record<string, any>> {\n className?: string;\n jsondata: JSONDataType<T>;\n type?: keyof typeof COMPONENTS;\n}\n\nexport const JSONComponent = <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => {\n const _type = type || (Array.isArray(jsondata) ? 'CardList' : 'Card');\n const Comp = COMPONENTS[_type];\n return (\n <div className={className}>\n <Comp jsondata={jsondata} />\n </div>\n );\n}\n"]}
@@ -0,0 +1,126 @@
1
+ import React from 'react';
2
+ import { SpinnerProps, PaginationProps } from '@nextui-org/react';
3
+ import { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
4
+
5
+ type TableClassNames = {
6
+ table?: string;
7
+ thead?: string;
8
+ tr?: string;
9
+ th?: string;
10
+ tbody?: string;
11
+ td?: string;
12
+ };
13
+ type HeaderKeys<T extends Record<string, any>> = Array<keyof T | "$actions">;
14
+ type ColumnConfig<T> = {
15
+ label?: React.ReactNode;
16
+ width?: number;
17
+ hidden?: boolean;
18
+ sortable?: boolean;
19
+ sortKey?: string;
20
+ order?: number;
21
+ render?: (item: T) => any;
22
+ };
23
+ type ColumnOptions<T> = {
24
+ [key in keyof T]?: ColumnConfig<T>;
25
+ } & {
26
+ $actions?: ColumnConfig<T>;
27
+ };
28
+ type CardOptions = {
29
+ cardContainerClassName?: string;
30
+ cardClassName?: string;
31
+ itemClassName?: string;
32
+ labelClassName?: string;
33
+ valueClassName?: string;
34
+ showDivider?: boolean;
35
+ dividerClassName?: string;
36
+ virtualizedOptions?: {
37
+ colSpan?: number;
38
+ cardContainerClassName?: string;
39
+ };
40
+ };
41
+ type LoadingOptions = {
42
+ type?: "skeleton" | "spinner";
43
+ skeleton?: {
44
+ boxClassName?: string;
45
+ skeletonClassName?: string;
46
+ line?: number;
47
+ };
48
+ spinner?: {
49
+ boxClassName?: string;
50
+ spinnerProps?: SpinnerProps;
51
+ text?: string;
52
+ textClassName?: string;
53
+ };
54
+ };
55
+ type SortingUIOptions = {
56
+ showDropdown?: boolean;
57
+ dropdownTriggerBtnClassName?: string;
58
+ dropdownContentClassName?: string;
59
+ dropdownItemClassName?: string;
60
+ titles?: {
61
+ asc?: string;
62
+ desc?: string;
63
+ none?: string;
64
+ };
65
+ };
66
+ type CollapsedTableConfig<T> = {
67
+ classNames?: TableClassNames;
68
+ options: {
69
+ key: keyof T;
70
+ headerKeys: string[];
71
+ columnOptions: ColumnOptions<any>;
72
+ }[];
73
+ collapsedHandlerPosition?: "left" | "right";
74
+ collapsedHandlerBoxCss?: string;
75
+ openedIcon?: React.ReactNode;
76
+ closedIcon?: React.ReactNode;
77
+ onRowClick?: (item: any) => void;
78
+ rowCss?: string | ((item: any) => string | undefined);
79
+ emptyContent?: React.ReactNode;
80
+ };
81
+ type VirtualizedOptions = {
82
+ isVirtualized?: boolean;
83
+ vListHeight?: number;
84
+ classNames?: {
85
+ header?: string;
86
+ headerCell?: string;
87
+ row?: string;
88
+ rowCell?: string;
89
+ };
90
+ cardOptions?: {
91
+ colSpan?: number;
92
+ cardContainerClassName?: string;
93
+ };
94
+ fetchData?: () => Promise<void>;
95
+ };
96
+ interface JSONTableProps<T extends Record<string, any>> {
97
+ className?: string;
98
+ classNames?: TableClassNames;
99
+ rowKey?: string;
100
+ dataSource: T[];
101
+ headerKeys?: HeaderKeys<T>;
102
+ columnOptions?: ColumnOptions<T>;
103
+ isServerPaging?: boolean;
104
+ pagination?: PaginationState;
105
+ nextuiPaginationProps?: Partial<PaginationProps>;
106
+ showPagination?: boolean;
107
+ onRowClick?: (item: T) => void;
108
+ rowCss?: string | ((item: T) => string | undefined);
109
+ asCard?: boolean;
110
+ cardOptions?: CardOptions;
111
+ autoScrollToTop?: boolean;
112
+ emptyContent?: React.ReactNode;
113
+ isLoading?: boolean;
114
+ loadingOptions?: LoadingOptions;
115
+ loadingContent?: React.ReactNode;
116
+ columnSlot?: ((props: {
117
+ row: T;
118
+ }) => React.ReactNode) | React.ReactNode;
119
+ isHeaderSticky?: boolean;
120
+ sortingUIOptions?: SortingUIOptions;
121
+ collapsedTableConfig?: CollapsedTableConfig<T>;
122
+ virtualizedOptions?: VirtualizedOptions;
123
+ }
124
+ declare const JSONTable: <T extends Record<string, any>>(props: JSONTableProps<T>) => React.JSX.Element;
125
+
126
+ export { type CardOptions, type CollapsedTableConfig, type ColumnOptions, type HeaderKeys, JSONTable, type LoadingOptions, type SortingUIOptions };
@@ -1,8 +1,8 @@
1
- export { JSONTable } from './chunk-MPNSYZJU.mjs';
1
+ export { JSONTable } from './chunk-2B3FO5P6.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import './chunk-QA3E2PJT.mjs';
3
+ import './chunk-AFXQRBS6.mjs';
4
4
  import './chunk-K7LFG5BA.mjs';
5
- import './chunk-2HNXZE3X.mjs';
6
- import './chunk-R4SQKVDQ.mjs';
7
- //# sourceMappingURL=out.js.map
5
+ import './chunk-6HA5WR5H.mjs';
6
+ import './chunk-YOSPWY5K.mjs';
7
+ //# sourceMappingURL=jsontable.mjs.map
8
8
  //# sourceMappingURL=jsontable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"jsontable.mjs"}
@@ -0,0 +1,121 @@
1
+ import React from 'react';
2
+ import { ValueFormatter, CurveType, Color, CustomTooltipProps } from '@tremor/react';
3
+
4
+ interface ChartBox {
5
+ title?: React.ReactNode;
6
+ description?: string;
7
+ error?: string;
8
+ data?: {
9
+ [key: string]: any;
10
+ }[];
11
+ children?: React.ReactNode;
12
+ gridH?: number;
13
+ numColSpanMd?: number;
14
+ className?: string;
15
+ headerClassName?: string;
16
+ contentClassName?: string;
17
+ chartClassName?: string;
18
+ }
19
+ declare const ChartBox: ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => React.JSX.Element;
20
+
21
+ type BarChartCard = ChartBox & {
22
+ type?: 'BarChartCard';
23
+ categories?: string[];
24
+ index?: string;
25
+ valueFormatter?: ValueFormatter;
26
+ showLegend?: boolean;
27
+ showGridLines?: boolean;
28
+ stack?: boolean;
29
+ showAnimation?: boolean;
30
+ };
31
+ declare const BarChartCard: (props: BarChartCard) => React.JSX.Element;
32
+
33
+ type LineChartCard = ChartBox & {
34
+ type?: 'LineChartCard';
35
+ categories?: string[];
36
+ index?: string;
37
+ curveType?: CurveType;
38
+ colors?: (Color | string)[];
39
+ showLegend?: boolean;
40
+ showGridLines?: boolean;
41
+ showXAxis?: boolean;
42
+ showYAxis?: boolean;
43
+ startEndOnly?: boolean;
44
+ showTooltip?: boolean;
45
+ showAnimation?: boolean;
46
+ autoMinValue?: boolean;
47
+ valueFormatter?: ValueFormatter;
48
+ customTooltip?: React.ComponentType<CustomTooltipProps>;
49
+ };
50
+ declare const LineChartCard: (props: LineChartCard) => React.JSX.Element;
51
+
52
+ type AreaChartCard = ChartBox & {
53
+ type?: 'AreaChartCard';
54
+ categories?: string[];
55
+ index?: string;
56
+ curveType?: CurveType;
57
+ colors?: (Color | string)[];
58
+ showLegend?: boolean;
59
+ showGridLines?: boolean;
60
+ stack?: boolean;
61
+ showXAxis?: boolean;
62
+ showYAxis?: boolean;
63
+ startEndOnly?: boolean;
64
+ showTooltip?: boolean;
65
+ showAnimation?: boolean;
66
+ autoMinValue?: boolean;
67
+ valueFormatter?: ValueFormatter;
68
+ customTooltip?: React.ComponentType<CustomTooltipProps>;
69
+ };
70
+ declare const AreaChartCard: (props: AreaChartCard) => React.JSX.Element;
71
+
72
+ type DonutChartCard = ChartBox & {
73
+ type?: 'DonutChartCard';
74
+ categories?: string[];
75
+ index?: string;
76
+ valueFormatter?: ValueFormatter;
77
+ showLabel?: boolean;
78
+ variant?: 'donut' | 'pie';
79
+ showAnimation?: boolean;
80
+ };
81
+ declare const DonutChartCard: (props: DonutChartCard) => React.JSX.Element;
82
+
83
+ type CountCard = ChartBox & {
84
+ type?: 'CountCard';
85
+ summedColumnIndex?: string;
86
+ };
87
+ declare const CountCard: (props: CountCard) => React.JSX.Element;
88
+
89
+ type TableCard = ChartBox & {
90
+ type?: 'TableCard';
91
+ columnOptions?: {
92
+ [key: string]: {
93
+ label: string;
94
+ hidden: boolean;
95
+ };
96
+ };
97
+ };
98
+ declare const TableCard: (props: TableCard) => React.JSX.Element;
99
+
100
+ type KPICard = ChartBox & {
101
+ type?: 'KPICard';
102
+ categories?: string[];
103
+ index?: string;
104
+ chartType?: 'area' | 'line';
105
+ curveType?: 'linear' | 'step' | 'monotone';
106
+ metricTitle?: string;
107
+ metric?: string | number;
108
+ valueFormatter?: ValueFormatter;
109
+ loading?: boolean;
110
+ };
111
+ declare const KPICard: (props: KPICard) => React.JSX.Element;
112
+
113
+ type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;
114
+ declare const JSONMetricsView: ({ data }: {
115
+ data: JSONMetricsViewType[];
116
+ }) => React.JSX.Element;
117
+ declare const MetricsView: ({ data }: {
118
+ data: JSONMetricsViewType;
119
+ }) => React.JSX.Element;
120
+
121
+ export { JSONMetricsView, type JSONMetricsViewType, MetricsView };
package/dist/metrics.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { JSONTable } from './chunk-MPNSYZJU.mjs';
1
+ import { JSONTable } from './chunk-2B3FO5P6.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import { SkeletonBox } from './chunk-QA3E2PJT.mjs';
3
+ import { SkeletonBox } from './chunk-AFXQRBS6.mjs';
4
4
  import './chunk-K7LFG5BA.mjs';
5
- import { cn } from './chunk-2HNXZE3X.mjs';
6
- import { __spreadValues } from './chunk-R4SQKVDQ.mjs';
5
+ import { cn } from './chunk-6HA5WR5H.mjs';
6
+ import { __spreadValues } from './chunk-YOSPWY5K.mjs';
7
7
  import React8 from 'react';
8
- import { Grid, Col, BarChart, LineChart, AreaChart, DonutChart, Text } from '@tremor/react';
8
+ import { Grid, Col, Text, AreaChart, LineChart, DonutChart, BarChart } from '@tremor/react';
9
9
  import { Card } from '@nextui-org/react';
10
10
 
11
11
  var ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }) => {
@@ -216,5 +216,5 @@ var MetricsView = ({ data }) => {
216
216
  };
217
217
 
218
218
  export { JSONMetricsView, MetricsView };
219
- //# sourceMappingURL=out.js.map
219
+ //# sourceMappingURL=metrics.mjs.map
220
220
  //# sourceMappingURL=metrics.mjs.map
@@ -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\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('shadow-sm rounded-lg border dark:border-[#3e3e3e]', 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 { Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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 customTooltip?: React.ComponentType<CustomTooltipProps>;\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 customTooltip\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 customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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?: React.ComponentType<CustomTooltipProps>\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"]}
1
+ {"version":3,"sources":["../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/BarChartCard/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/JSONMetricsView/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":"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","file":"metrics.mjs","sourcesContent":["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('shadow-sm rounded-lg border dark:border-[#3e3e3e]', 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 { 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 { Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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 customTooltip?: React.ComponentType<CustomTooltipProps>;\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 customTooltip\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 customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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?: React.ComponentType<CustomTooltipProps>\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","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"]}