@dappworks/kit 0.5.41 → 0.5.43

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/{PromiseState-e64b3707.d.ts → PromiseState-8EAu4Zv4.d.mts} +1 -1
  2. package/dist/{StorageState-cfd942cb.d.ts → StorageState-qapaHguM.d.mts} +1 -1
  3. package/dist/aiem.d.mts +14 -15
  4. package/dist/aiem.mjs +5 -5
  5. package/dist/aiem.mjs.map +1 -1
  6. package/dist/{chunk-ISV4OEKJ.mjs → chunk-2B3FO5P6.mjs} +5 -5
  7. package/dist/chunk-2B3FO5P6.mjs.map +1 -0
  8. package/dist/{chunk-M5Y3VYMJ.mjs → chunk-6HA5WR5H.mjs} +9 -15
  9. package/dist/chunk-6HA5WR5H.mjs.map +1 -0
  10. package/dist/{chunk-FJHGIW3I.mjs → chunk-AFXQRBS6.mjs} +3 -3
  11. package/dist/chunk-AFXQRBS6.mjs.map +1 -0
  12. package/dist/chunk-GKAU4P5I.mjs +1 -1
  13. package/dist/chunk-GKAU4P5I.mjs.map +1 -1
  14. package/dist/{chunk-SL5OV6OR.mjs → chunk-GPPSD2BO.mjs} +5 -7
  15. package/dist/chunk-GPPSD2BO.mjs.map +1 -0
  16. package/dist/chunk-IMOLRP7I.mjs +1 -1
  17. package/dist/chunk-IMOLRP7I.mjs.map +1 -1
  18. package/dist/chunk-K7LFG5BA.mjs +2 -2
  19. package/dist/chunk-K7LFG5BA.mjs.map +1 -1
  20. package/dist/{chunk-3XIPR2M3.mjs → chunk-L5VZQRXB.mjs} +7 -8
  21. package/dist/chunk-L5VZQRXB.mjs.map +1 -0
  22. package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
  23. package/dist/chunk-NCGC2KDE.mjs.map +1 -0
  24. package/dist/chunk-ONVPCAMQ.mjs +1 -1
  25. package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
  26. package/dist/{chunk-C5BPNLKH.mjs → chunk-TEVYTENF.mjs} +4 -4
  27. package/dist/chunk-TEVYTENF.mjs.map +1 -0
  28. package/dist/{chunk-4F33QAJ4.mjs → chunk-WNK4WSTE.mjs} +31 -56
  29. package/dist/chunk-WNK4WSTE.mjs.map +1 -0
  30. package/dist/{chunk-IDKGZ5T4.mjs → chunk-XSGTWROT.mjs} +8 -8
  31. package/dist/chunk-XSGTWROT.mjs.map +1 -0
  32. package/dist/{chunk-R4N52NI2.mjs → chunk-YBLCIJW4.mjs} +37 -31
  33. package/dist/chunk-YBLCIJW4.mjs.map +1 -0
  34. package/dist/{chunk-6F7H4PAA.mjs → chunk-YOSPWY5K.mjs} +2 -2
  35. package/dist/chunk-YOSPWY5K.mjs.map +1 -0
  36. package/dist/dev.d.mts +1 -1
  37. package/dist/dev.mjs +6 -8
  38. package/dist/dev.mjs.map +1 -1
  39. package/dist/experimental.d.mts +4 -4
  40. package/dist/experimental.mjs +7 -9
  41. package/dist/experimental.mjs.map +1 -1
  42. package/dist/form.d.mts +6 -6
  43. package/dist/form.mjs +16 -20
  44. package/dist/form.mjs.map +1 -1
  45. package/dist/{index-38be834f.d.ts → index-CUKoRIdy.d.mts} +1 -1
  46. package/dist/index.d.mts +5 -5
  47. package/dist/index.mjs +9 -9
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/inspector.d.mts +1 -1
  50. package/dist/inspector.mjs +3 -4
  51. package/dist/inspector.mjs.map +1 -1
  52. package/dist/jsoncomponent.d.mts +5 -5
  53. package/dist/jsoncomponent.mjs +2 -2
  54. package/dist/jsoncomponent.mjs.map +1 -1
  55. package/dist/jsontable.d.mts +2 -2
  56. package/dist/jsontable.mjs +5 -5
  57. package/dist/jsontable.mjs.map +1 -1
  58. package/dist/metrics.d.mts +1 -1
  59. package/dist/metrics.mjs +6 -6
  60. package/dist/metrics.mjs.map +1 -1
  61. package/dist/plugins.d.mts +7 -7
  62. package/dist/plugins.mjs +6 -6
  63. package/dist/plugins.mjs.map +1 -1
  64. package/dist/{root-218afa4f.d.ts → root-BPMUmS6H.d.mts} +1 -1
  65. package/dist/ui.mjs +5 -6
  66. package/dist/ui.mjs.map +1 -1
  67. package/dist/utils.d.mts +105 -22
  68. package/dist/utils.mjs +4 -4
  69. package/dist/utils.mjs.map +1 -1
  70. package/dist/wallet.d.mts +6 -4
  71. package/dist/wallet.mjs +59 -17
  72. package/dist/wallet.mjs.map +1 -1
  73. package/package.json +4 -3
  74. package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
  75. package/dist/chunk-3XIPR2M3.mjs.map +0 -1
  76. package/dist/chunk-4F33QAJ4.mjs.map +0 -1
  77. package/dist/chunk-6F7H4PAA.mjs.map +0 -1
  78. package/dist/chunk-C5BPNLKH.mjs.map +0 -1
  79. package/dist/chunk-FJHGIW3I.mjs.map +0 -1
  80. package/dist/chunk-IDKGZ5T4.mjs.map +0 -1
  81. package/dist/chunk-ISV4OEKJ.mjs.map +0 -1
  82. package/dist/chunk-M5Y3VYMJ.mjs.map +0 -1
  83. package/dist/chunk-R4N52NI2.mjs.map +0 -1
  84. package/dist/chunk-SL5OV6OR.mjs.map +0 -1
  85. /package/dist/{PaginationState-c19e621a.d.ts → PaginationState-Bmrrw0ky.d.mts} +0 -0
@@ -1,3 +1,3 @@
1
1
  type ThemeType = "default" | "primary";
2
2
 
3
- export { ThemeType as T };
3
+ export type { ThemeType as T };
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { R as RootStore, E as EventMap, S as Store } from './root-218afa4f.js';
2
- export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-218afa4f.js';
3
- export { P as PromiseState } from './PromiseState-e64b3707.js';
4
- export { P as PromiseHook, S as StorageState } from './StorageState-cfd942cb.js';
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
5
  import BigNumber from 'bignumber.js';
6
- export { P as PaginationState } from './PaginationState-c19e621a.js';
6
+ export { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
7
7
  import React from 'react';
8
8
  import 'typed-emitter';
9
9
  import 'events';
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
- export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-4F33QAJ4.mjs';
2
- export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-SL5OV6OR.mjs';
3
- import './chunk-3XIPR2M3.mjs';
4
- import './chunk-2N4HH4ZF.mjs';
5
- import './chunk-C5BPNLKH.mjs';
1
+ export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-WNK4WSTE.mjs';
2
+ export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-GPPSD2BO.mjs';
3
+ import './chunk-L5VZQRXB.mjs';
4
+ import './chunk-NCGC2KDE.mjs';
5
+ import './chunk-TEVYTENF.mjs';
6
6
  import './chunk-IMOLRP7I.mjs';
7
7
  import './chunk-GKAU4P5I.mjs';
8
- export { RootStore, rootStore, useStore } from './chunk-IDKGZ5T4.mjs';
9
- import './chunk-R4N52NI2.mjs';
8
+ export { RootStore, rootStore, useStore } from './chunk-XSGTWROT.mjs';
9
+ import './chunk-YBLCIJW4.mjs';
10
10
  export { PaginationState } from './chunk-ONVPCAMQ.mjs';
11
11
  import './chunk-K7LFG5BA.mjs';
12
- import './chunk-6F7H4PAA.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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { S as Store } from './root-218afa4f.js';
2
+ import { S as Store } from './root-BPMUmS6H.mjs';
3
3
  import 'typed-emitter';
4
4
 
5
5
  declare class DevInspectorPlugin implements Store {
@@ -1,4 +1,4 @@
1
- import './chunk-6F7H4PAA.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"]}
@@ -4,11 +4,11 @@ declare const COMPONENTS: {
4
4
  Card: <T extends Record<string, any>>({ jsondata }: {
5
5
  jsondata: JSONDataType<T>;
6
6
  }) => React.JSX.Element;
7
- CardList: <T extends Record<string, any>>({ jsondata }: {
8
- jsondata: JSONDataType<T>;
7
+ CardList: <T_1 extends Record<string, any>>({ jsondata }: {
8
+ jsondata: JSONDataType<T_1>;
9
9
  }) => React.JSX.Element;
10
- Nav: <T extends Record<string, any>>({ jsondata }: {
11
- jsondata: JSONDataType<T>;
10
+ Nav: <T_2 extends Record<string, any>>({ jsondata }: {
11
+ jsondata: JSONDataType<T_2>;
12
12
  }) => React.JSX.Element;
13
13
  };
14
14
  type JSONDataType<T extends Record<string, any>> = Array<T> | T;
@@ -19,4 +19,4 @@ interface JSONComponentProps<T extends Record<string, any>> {
19
19
  }
20
20
  declare const JSONComponent: <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => React.JSX.Element;
21
21
 
22
- export { JSONComponent, JSONComponentProps, JSONDataType };
22
+ export { JSONComponent, type JSONComponentProps, type JSONDataType };
@@ -1,4 +1,4 @@
1
- import './chunk-6F7H4PAA.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"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SpinnerProps, PaginationProps } from '@nextui-org/react';
3
- import { P as PaginationState } from './PaginationState-c19e621a.js';
3
+ import { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
4
4
 
5
5
  type TableClassNames = {
6
6
  table?: string;
@@ -123,4 +123,4 @@ interface JSONTableProps<T extends Record<string, any>> {
123
123
  }
124
124
  declare const JSONTable: <T extends Record<string, any>>(props: JSONTableProps<T>) => React.JSX.Element;
125
125
 
126
- export { CardOptions, CollapsedTableConfig, ColumnOptions, HeaderKeys, JSONTable, LoadingOptions, SortingUIOptions };
126
+ export { type CardOptions, type CollapsedTableConfig, type ColumnOptions, type HeaderKeys, JSONTable, type LoadingOptions, type SortingUIOptions };
@@ -1,8 +1,8 @@
1
- export { JSONTable } from './chunk-ISV4OEKJ.mjs';
1
+ export { JSONTable } from './chunk-2B3FO5P6.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import './chunk-FJHGIW3I.mjs';
3
+ import './chunk-AFXQRBS6.mjs';
4
4
  import './chunk-K7LFG5BA.mjs';
5
- import './chunk-M5Y3VYMJ.mjs';
6
- import './chunk-6F7H4PAA.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"}
@@ -118,4 +118,4 @@ declare const MetricsView: ({ data }: {
118
118
  data: JSONMetricsViewType;
119
119
  }) => React.JSX.Element;
120
120
 
121
- export { JSONMetricsView, JSONMetricsViewType, MetricsView };
121
+ export { JSONMetricsView, type JSONMetricsViewType, MetricsView };
package/dist/metrics.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { JSONTable } from './chunk-ISV4OEKJ.mjs';
1
+ import { JSONTable } from './chunk-2B3FO5P6.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import { SkeletonBox } from './chunk-FJHGIW3I.mjs';
3
+ import { SkeletonBox } from './chunk-AFXQRBS6.mjs';
4
4
  import './chunk-K7LFG5BA.mjs';
5
- import { cn } from './chunk-M5Y3VYMJ.mjs';
6
- import { __spreadValues } from './chunk-6F7H4PAA.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"]}
@@ -1,9 +1,9 @@
1
- import { S as Store } from './root-218afa4f.js';
1
+ import { S as Store } from './root-BPMUmS6H.mjs';
2
2
  import React from 'react';
3
3
  import { SlotsToClasses, ModalSlots, ButtonProps, SpinnerProps } from '@nextui-org/react';
4
- import { T as ThemeType } from './index-38be834f.js';
4
+ import { T as ThemeType } from './index-CUKoRIdy.mjs';
5
5
  import * as react_hot_toast from 'react-hot-toast';
6
- import { P as PromiseState } from './PromiseState-e64b3707.js';
6
+ import { P as PromiseState } from './PromiseState-8EAu4Zv4.mjs';
7
7
  import 'typed-emitter';
8
8
  import 'events';
9
9
 
@@ -30,10 +30,10 @@ declare class ConfirmStore implements Store {
30
30
  declare class ToastPlugin implements Store {
31
31
  sid: string;
32
32
  provider: () => React.JSX.Element;
33
- success: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
34
- error: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
35
- loading: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
36
- custom: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
33
+ success: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
34
+ error: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
35
+ loading: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
36
+ custom: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
37
37
  dismiss: (toastId?: string, toasterId?: string) => void;
38
38
  remove: (toastId?: string, toasterId?: string) => void;
39
39
  promise: <T>(promise: Promise<T> | (() => Promise<T>), msgs: {
package/dist/plugins.mjs CHANGED
@@ -1,12 +1,12 @@
1
- import { DialogStore } from './chunk-C5BPNLKH.mjs';
2
- export { DialogStore } from './chunk-C5BPNLKH.mjs';
1
+ import { DialogStore } from './chunk-TEVYTENF.mjs';
2
+ export { DialogStore } from './chunk-TEVYTENF.mjs';
3
3
  import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
4
4
  export { ToastPlugin } from './chunk-IMOLRP7I.mjs';
5
5
  import { getStyle } from './chunk-GKAU4P5I.mjs';
6
- import { useStore, RootStore } from './chunk-IDKGZ5T4.mjs';
6
+ import { useStore, RootStore } from './chunk-XSGTWROT.mjs';
7
7
  import './chunk-K7LFG5BA.mjs';
8
- import { cn } from './chunk-M5Y3VYMJ.mjs';
9
- import { __spreadProps, __spreadValues } from './chunk-6F7H4PAA.mjs';
8
+ import { cn } from './chunk-6HA5WR5H.mjs';
9
+ import { __spreadProps, __spreadValues } from './chunk-YOSPWY5K.mjs';
10
10
  import { makeAutoObservable, makeObservable } from 'mobx';
11
11
  import React3 from 'react';
12
12
  import { observer } from 'mobx-react-lite';
@@ -314,5 +314,5 @@ var PromiseStateGroup = class {
314
314
  };
315
315
 
316
316
  export { ConfirmStore, PromiseStateGroup };
317
- //# sourceMappingURL=out.js.map
317
+ //# sourceMappingURL=plugins.mjs.map
318
318
  //# sourceMappingURL=plugins.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../module/Confirm/index.tsx","../module/Confirm/Provider.tsx","../module/PromiseStateGroup/index.tsx","../module/PromiseStateGroup/ui.tsx"],"names":["React","observer"],"mappings":"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","sourcesContent":["import { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable } from \"mobx\";\nimport Provider from \"./Provider\";\nimport React from \"react\";\nimport { ButtonProps, ModalSlots, SlotsToClasses } from \"@nextui-org/react\";\nimport { getStyle, ThemeType } from \"../../themes\";\n\nexport class ConfirmStore implements Store {\n sid = 'ConfirmStore';\n provider = () => <Provider />;\n\n isOpen: boolean = false;\n title?: string = '';\n description?: string = '';\n size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl' = 'md';\n className: string = '';\n classNames?: SlotsToClasses<ModalSlots>;\n theme: ThemeType = \"default\";\n cancelBtnProps?: ButtonProps = {}\n okBtnProps?: ButtonProps = {}\n\n constructor() {\n makeAutoObservable(this);\n }\n\n toggleOpen(val: boolean) {\n this.isOpen = val;\n }\n\n onOk() { }\n\n onCancel() { }\n\n show(confirmProps: Partial<ConfirmStore>) {\n const modalStyle = getStyle(confirmProps?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...confirmProps?.classNames\n }\n Object.assign(this, confirmProps, { classNames });\n\n this.toggleOpen(true);\n }\n\n close() {\n this.isOpen = false;\n this.title = '';\n this.description = '';\n this.size = 'md';\n this.cancelBtnProps = {}\n this.okBtnProps = {}\n }\n}\n","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@nextui-org/react';\nimport { useStore } from \"../../store\";\nimport { ConfirmStore } from \".\";\n\nconst ConfirmModal = observer(() => {\n const rootStore = useStore();\n const confirmStore = rootStore.get(ConfirmStore);\n const { isOpen, title, description, size, className, classNames, cancelBtnProps, okBtnProps } = confirmStore;\n return (\n <Modal\n isOpen={isOpen}\n size={size}\n className={className}\n classNames={classNames}\n onOpenChange={(open: boolean) => {\n if (!open) {\n confirmStore.close();\n }\n }}\n >\n <ModalContent className=\"max-h-screen overflow-auto\">\n {() => (\n <>\n {title && <ModalHeader className=\"flex flex-col gap-1\">{title}</ModalHeader>}\n <ModalBody>\n <div>{description}</div>\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"primary\"\n variant=\"flat\"\n size=\"sm\"\n children=\"Cancel\"\n {...cancelBtnProps}\n onClick={() => {\n confirmStore.close();\n confirmStore.onCancel();\n }}\n />\n <Button\n color=\"primary\"\n size=\"sm\"\n children=\"Apply\"\n {...okBtnProps}\n onPress={() => {\n confirmStore.close();\n confirmStore.onOk();\n }}\n />\n </ModalFooter>\n </>\n )}\n </ModalContent>\n </Modal>\n );\n});\n\nexport default ConfirmModal;","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { DialogStore } from '../Dialog';\nimport { DialogContentUI, DialogContentUIProps, GroupOptions, StepUI, StepUIProps } from './ui';\nimport { makeObservable } from 'mobx';\nimport { ToastPlugin } from '../Toast/Toast';\nimport { RootStore } from '../../store';\n\nexport class PromiseStateGroup {\n group: PromiseState<any, any>[] = [];\n groupOptions: GroupOptions = [];\n currentCallStepNo = 1;\n\n constructor({ group, groupOptions = [] }: { group: PromiseState<any, any>[]; groupOptions: GroupOptions }) {\n group.forEach((p) => {\n Object.assign(p, {\n autoAlert: false,\n value: p.defaultValue,\n errMsg: '',\n });\n });\n Object.assign(this, {\n group,\n groupOptions\n });\n makeObservable(this, {\n currentCallStepNo: true,\n });\n }\n\n async call() {\n let result: any[] = [];\n let errMsg: string = '';\n for (let i = 0; i < this.group.length; i++) {\n this.currentCallStepNo = i + 1;\n const promiseState = this.group[i];\n if (promiseState) {\n try {\n const options = this.groupOptions[i];\n const args = options?.args || [];\n const data = await promiseState.call(...args);\n result.push(data);\n } catch (e) {\n errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n break;\n }\n }\n }\n return {\n result,\n errMsg,\n };\n }\n\n async callWithDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps,\n successMsg?: string,\n autoClose: boolean = true\n ) {\n this.showDialog(dialogOptions, dialogContentOptions);\n const {\n result,\n errMsg,\n } = await this.call()\n if (errMsg) {\n RootStore.Get(ToastPlugin).error(errMsg)\n this.closeDialog()\n return {\n result,\n errMsg,\n }\n }\n if (successMsg) {\n RootStore.Get(ToastPlugin).success(successMsg)\n }\n if (autoClose) {\n this.closeDialog()\n }\n return {\n result,\n errMsg,\n }\n }\n\n showDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps) {\n DialogStore.show({\n title: '',\n size: 'md',\n isDismissable: false,\n content:\n <DialogContentUI\n group={this.group}\n groupOptions={this.groupOptions}\n {...dialogContentOptions}\n />,\n ...dialogOptions,\n });\n return this;\n }\n\n\n\n closeDialog() {\n DialogStore.close();\n }\n\n async stepCall(stepNo: number) {\n const index = stepNo - 1;\n if (index < 0 || index >= this.group.length) {\n return {\n result: null,\n errMsg: 'Invalid step number',\n };\n }\n\n const prePromiseState = this.group[index - 1];\n if (prePromiseState && prePromiseState.errMsg) {\n return {\n result: null,\n errMsg: prePromiseState.errMsg,\n };\n }\n\n this.currentCallStepNo = stepNo;\n\n const promiseState = this.group[index];\n if (promiseState && !promiseState.loading.value) {\n const options = this.groupOptions[index];\n const args = options?.args || [];\n try {\n const result = await promiseState.call(...args);\n return {\n result,\n errMsg: '',\n };\n } catch (e) {\n let errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n return {\n result: null,\n errMsg,\n };\n }\n }\n }\n\n onNext() {\n if (this.currentCallStepNo < this.group.length) {\n this.currentCallStepNo += 1;\n }\n }\n\n onPrevious() {\n if (this.currentCallStepNo > 1) {\n\n // reset value and errMsg of the current promiseState\n const index = this.currentCallStepNo - 1;\n const promiseState = this.group[index];\n if (promiseState) {\n promiseState.value = '';\n promiseState.errMsg = '';\n }\n\n // go to the previous step\n this.currentCallStepNo -= 1;\n }\n }\n\n render(props?: StepUIProps) {\n return (\n <StepUI\n group={this.group}\n groupOptions={this.groupOptions}\n currentCallStepNo={this.currentCallStepNo}\n {...props}\n />\n )\n }\n}\n","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { Spinner, SpinnerProps } from '@nextui-org/react';\nimport { Check, X } from 'lucide-react';\nimport { observer } from 'mobx-react-lite';\nimport { cn } from '../../lib/utils';\n\nexport type GroupOptions = {\n args?: any[];\n title: React.ReactNode;\n}[];\n\n\nexport type DialogContentUIProps = {\n className?: string;\n itemClassName?: string;\n numberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const DialogContentUI = observer(({\n group,\n groupOptions,\n className,\n itemClassName,\n numberClassName,\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n} & DialogContentUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div key={index} className={cn(\"w-full flex items-center justify-between\", itemClassName)}>\n <div className='flex items-center justify-between'>\n <div className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2', numberClassName)}>{no}</div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n\nexport type StepUIProps = {\n className?: string;\n itemClassName?: string;\n activatedItemClassName?: string;\n numberClassName?: string;\n activatedNumberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const StepUI = observer(({\n group,\n groupOptions,\n currentCallStepNo,\n className,\n itemClassName,\n activatedItemClassName = '',\n numberClassName,\n activatedNumberClassName = '',\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n currentCallStepNo?: number;\n} & StepUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div\n key={index}\n className={cn(\"w-full flex items-center justify-between text-[#909091] dark:text-[#6b6c6c]\",\n no <= currentCallStepNo ? `text-[#000] dark:text-[#fff] ${activatedItemClassName}` : '',\n itemClassName\n )}\n >\n <div className='flex items-center justify-between'>\n <div\n className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#909091] dark:border-[#6b6c6c] mr-2',\n no <= currentCallStepNo ? `border-[#000] dark:border-[#fff] ${activatedNumberClassName}` : '',\n numberClassName\n )}\n >\n {no}\n </div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && no <= currentCallStepNo && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n"]}
1
+ {"version":3,"sources":["../module/Confirm/Provider.tsx","../module/Confirm/index.tsx","../module/PromiseStateGroup/ui.tsx","../module/PromiseStateGroup/index.tsx"],"names":["React","observer"],"mappings":"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","file":"plugins.mjs","sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@nextui-org/react';\nimport { useStore } from \"../../store\";\nimport { ConfirmStore } from \".\";\n\nconst ConfirmModal = observer(() => {\n const rootStore = useStore();\n const confirmStore = rootStore.get(ConfirmStore);\n const { isOpen, title, description, size, className, classNames, cancelBtnProps, okBtnProps } = confirmStore;\n return (\n <Modal\n isOpen={isOpen}\n size={size}\n className={className}\n classNames={classNames}\n onOpenChange={(open: boolean) => {\n if (!open) {\n confirmStore.close();\n }\n }}\n >\n <ModalContent className=\"max-h-screen overflow-auto\">\n {() => (\n <>\n {title && <ModalHeader className=\"flex flex-col gap-1\">{title}</ModalHeader>}\n <ModalBody>\n <div>{description}</div>\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"primary\"\n variant=\"flat\"\n size=\"sm\"\n children=\"Cancel\"\n {...cancelBtnProps}\n onClick={() => {\n confirmStore.close();\n confirmStore.onCancel();\n }}\n />\n <Button\n color=\"primary\"\n size=\"sm\"\n children=\"Apply\"\n {...okBtnProps}\n onPress={() => {\n confirmStore.close();\n confirmStore.onOk();\n }}\n />\n </ModalFooter>\n </>\n )}\n </ModalContent>\n </Modal>\n );\n});\n\nexport default ConfirmModal;","import { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable } from \"mobx\";\nimport Provider from \"./Provider\";\nimport React from \"react\";\nimport { ButtonProps, ModalSlots, SlotsToClasses } from \"@nextui-org/react\";\nimport { getStyle, ThemeType } from \"../../themes\";\n\nexport class ConfirmStore implements Store {\n sid = 'ConfirmStore';\n provider = () => <Provider />;\n\n isOpen: boolean = false;\n title?: string = '';\n description?: string = '';\n size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl' = 'md';\n className: string = '';\n classNames?: SlotsToClasses<ModalSlots>;\n theme: ThemeType = \"default\";\n cancelBtnProps?: ButtonProps = {}\n okBtnProps?: ButtonProps = {}\n\n constructor() {\n makeAutoObservable(this);\n }\n\n toggleOpen(val: boolean) {\n this.isOpen = val;\n }\n\n onOk() { }\n\n onCancel() { }\n\n show(confirmProps: Partial<ConfirmStore>) {\n const modalStyle = getStyle(confirmProps?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...confirmProps?.classNames\n }\n Object.assign(this, confirmProps, { classNames });\n\n this.toggleOpen(true);\n }\n\n close() {\n this.isOpen = false;\n this.title = '';\n this.description = '';\n this.size = 'md';\n this.cancelBtnProps = {}\n this.okBtnProps = {}\n }\n}\n","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { Spinner, SpinnerProps } from '@nextui-org/react';\nimport { Check, X } from 'lucide-react';\nimport { observer } from 'mobx-react-lite';\nimport { cn } from '../../lib/utils';\n\nexport type GroupOptions = {\n args?: any[];\n title: React.ReactNode;\n}[];\n\n\nexport type DialogContentUIProps = {\n className?: string;\n itemClassName?: string;\n numberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const DialogContentUI = observer(({\n group,\n groupOptions,\n className,\n itemClassName,\n numberClassName,\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n} & DialogContentUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div key={index} className={cn(\"w-full flex items-center justify-between\", itemClassName)}>\n <div className='flex items-center justify-between'>\n <div className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2', numberClassName)}>{no}</div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n\nexport type StepUIProps = {\n className?: string;\n itemClassName?: string;\n activatedItemClassName?: string;\n numberClassName?: string;\n activatedNumberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const StepUI = observer(({\n group,\n groupOptions,\n currentCallStepNo,\n className,\n itemClassName,\n activatedItemClassName = '',\n numberClassName,\n activatedNumberClassName = '',\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n currentCallStepNo?: number;\n} & StepUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div\n key={index}\n className={cn(\"w-full flex items-center justify-between text-[#909091] dark:text-[#6b6c6c]\",\n no <= currentCallStepNo ? `text-[#000] dark:text-[#fff] ${activatedItemClassName}` : '',\n itemClassName\n )}\n >\n <div className='flex items-center justify-between'>\n <div\n className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#909091] dark:border-[#6b6c6c] mr-2',\n no <= currentCallStepNo ? `border-[#000] dark:border-[#fff] ${activatedNumberClassName}` : '',\n numberClassName\n )}\n >\n {no}\n </div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && no <= currentCallStepNo && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { DialogStore } from '../Dialog';\nimport { DialogContentUI, DialogContentUIProps, GroupOptions, StepUI, StepUIProps } from './ui';\nimport { makeObservable } from 'mobx';\nimport { ToastPlugin } from '../Toast/Toast';\nimport { RootStore } from '../../store';\n\nexport class PromiseStateGroup {\n group: PromiseState<any, any>[] = [];\n groupOptions: GroupOptions = [];\n currentCallStepNo = 1;\n\n constructor({ group, groupOptions = [] }: { group: PromiseState<any, any>[]; groupOptions: GroupOptions }) {\n group.forEach((p) => {\n Object.assign(p, {\n autoAlert: false,\n value: p.defaultValue,\n errMsg: '',\n });\n });\n Object.assign(this, {\n group,\n groupOptions\n });\n makeObservable(this, {\n currentCallStepNo: true,\n });\n }\n\n async call() {\n let result: any[] = [];\n let errMsg: string = '';\n for (let i = 0; i < this.group.length; i++) {\n this.currentCallStepNo = i + 1;\n const promiseState = this.group[i];\n if (promiseState) {\n try {\n const options = this.groupOptions[i];\n const args = options?.args || [];\n const data = await promiseState.call(...args);\n result.push(data);\n } catch (e) {\n errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n break;\n }\n }\n }\n return {\n result,\n errMsg,\n };\n }\n\n async callWithDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps,\n successMsg?: string,\n autoClose: boolean = true\n ) {\n this.showDialog(dialogOptions, dialogContentOptions);\n const {\n result,\n errMsg,\n } = await this.call()\n if (errMsg) {\n RootStore.Get(ToastPlugin).error(errMsg)\n this.closeDialog()\n return {\n result,\n errMsg,\n }\n }\n if (successMsg) {\n RootStore.Get(ToastPlugin).success(successMsg)\n }\n if (autoClose) {\n this.closeDialog()\n }\n return {\n result,\n errMsg,\n }\n }\n\n showDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps) {\n DialogStore.show({\n title: '',\n size: 'md',\n isDismissable: false,\n content:\n <DialogContentUI\n group={this.group}\n groupOptions={this.groupOptions}\n {...dialogContentOptions}\n />,\n ...dialogOptions,\n });\n return this;\n }\n\n\n\n closeDialog() {\n DialogStore.close();\n }\n\n async stepCall(stepNo: number) {\n const index = stepNo - 1;\n if (index < 0 || index >= this.group.length) {\n return {\n result: null,\n errMsg: 'Invalid step number',\n };\n }\n\n const prePromiseState = this.group[index - 1];\n if (prePromiseState && prePromiseState.errMsg) {\n return {\n result: null,\n errMsg: prePromiseState.errMsg,\n };\n }\n\n this.currentCallStepNo = stepNo;\n\n const promiseState = this.group[index];\n if (promiseState && !promiseState.loading.value) {\n const options = this.groupOptions[index];\n const args = options?.args || [];\n try {\n const result = await promiseState.call(...args);\n return {\n result,\n errMsg: '',\n };\n } catch (e) {\n let errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n return {\n result: null,\n errMsg,\n };\n }\n }\n }\n\n onNext() {\n if (this.currentCallStepNo < this.group.length) {\n this.currentCallStepNo += 1;\n }\n }\n\n onPrevious() {\n if (this.currentCallStepNo > 1) {\n\n // reset value and errMsg of the current promiseState\n const index = this.currentCallStepNo - 1;\n const promiseState = this.group[index];\n if (promiseState) {\n promiseState.value = '';\n promiseState.errMsg = '';\n }\n\n // go to the previous step\n this.currentCallStepNo -= 1;\n }\n }\n\n render(props?: StepUIProps) {\n return (\n <StepUI\n group={this.group}\n groupOptions={this.groupOptions}\n currentCallStepNo={this.currentCallStepNo}\n {...props}\n />\n )\n }\n}\n"]}
@@ -108,4 +108,4 @@ declare class RootStore<T extends EventMap = any> {
108
108
  }, ann?: any): T;
109
109
  }
110
110
 
111
- 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 };
111
+ 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 };
package/dist/ui.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { SkeletonBox } from './chunk-FJHGIW3I.mjs';
2
- import { cn } from './chunk-M5Y3VYMJ.mjs';
3
- import './chunk-6F7H4PAA.mjs';
1
+ export { SkeletonBox } from './chunk-AFXQRBS6.mjs';
2
+ import { cn } from './chunk-6HA5WR5H.mjs';
3
+ import './chunk-YOSPWY5K.mjs';
4
4
  import React, { useState, useEffect } from 'react';
5
5
  import { Card } from '@nextui-org/react';
6
6
  import copyToClipboard from 'copy-to-clipboard';
@@ -38,8 +38,7 @@ var Copy = ({
38
38
  );
39
39
  };
40
40
  function JSONHighlight({ jsonStr, className }) {
41
- if (!jsonStr)
42
- return null;
41
+ if (!jsonStr) return null;
43
42
  jsonStr = jsonStr.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
44
43
  const str = jsonStr.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function(match) {
45
44
  let cls = "text-blue-500";
@@ -60,5 +59,5 @@ function JSONHighlight({ jsonStr, className }) {
60
59
  }
61
60
 
62
61
  export { Copy, JSONHighlight, PanelCard };
63
- //# sourceMappingURL=out.js.map
62
+ //# sourceMappingURL=ui.mjs.map
64
63
  //# sourceMappingURL=ui.mjs.map
package/dist/ui.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/Common/PanelCard/index.tsx","../components/Common/Copy/index.tsx","../components/Common/JSONHighlight/index.tsx"],"names":["React"],"mappings":";;;;;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,YAAY;AAEd,IAAM,YAAY,CAAC,EAAE,WAAW,OAAO,QAAQ,MAAkF;AACtI,SACE,oCAAC,QAAK,WAAW,GAAG,2DAA2D,SAAS,KACtF,oCAAC,OAAE,WAAU,gDAA8C,KAAM,GACjE,oCAAC,SAAI,WAAW,GAAG,2EAA2E,KAAI,OAAQ,CAC5G;AAEJ;;;ACXA,OAAOA,UAAS,WAAW,gBAAgB;AAC3C,OAAO,qBAAqB;AAC5B,SAAS,QAAQ,UAAU,iBAAiB;AAGrC,IAAM,OAAO,CAAC;AAAA,EACnB,YAAY;AAAA,EACZ;AAAA,EACA,WAAW;AAAA,EACX,gBAAgB;AAClB,MAKM;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,YAAM,QAAQ,WAAW,MAAM;AAC7B,kBAAU,KAAK;AAAA,MACjB,GAAG,GAAI;AACP,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACX,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,2DAA2D,SAAS;AAAA,MAClF,SAAS,CAAC,MAAM;AACd,UAAE,eAAe;AACjB,wBAAgB,KAAK;AACrB,kBAAU,IAAI;AAAA,MAChB;AAAA;AAAA,IACC,SAAS,gBAAAA,OAAA,cAAC,aAAU,MAAM,UAAU,WAAW,eAAe,IAAK,gBAAAA,OAAA,cAAC,YAAS,MAAM,UAAU,WAAW,eAAe;AAAA,EAC1H;AAEJ;;;ACpCA,OAAOA,YAAW;AAGX,SAAS,cAAc,EAAE,SAAS,UAAU,GAA4C;AAC7F,MAAI,CAAC;AAAS,WAAO;AACrB,YAAU,QAAQ,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,MAAM,MAAM;AACnF,QAAM,MAAM,QAAQ,QAAQ,0GAA0G,SAAU,OAAO;AAErJ,QAAI,MAAM;AACV,QAAI,KAAK,KAAK,KAAK,GAAG;AACpB,UAAI,KAAK,KAAK,KAAK,GAAG;AAEpB,cAAM;AAAA,MACR,OAAO;AAEL,cAAM;AAAA,MACR;AAAA,IACF,WAAW,aAAa,KAAK,KAAK,GAAG;AAEnC,YAAM;AAAA,IACR,WAAW,OAAO,KAAK,KAAK,GAAG;AAE7B,YAAM;AAAA,IACR;AACA,WAAO,gBAAgB,GAAG,KAAK,KAAK;AAAA,EACtC,CAAC;AAED,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,0CAA0C,SAAS,GAAG,yBAAyB,EAAE,QAAQ,IAAI,GAAG;AAEvH","sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card } from '@nextui-org/react';\n\nexport const PanelCard = ({ className, title, content }: { className?: string; title: React.ReactNode; content?: React.ReactNode; }) => {\n return (\n <Card className={cn('flex flex-col justify-between border-none p-4 shadow-sm', className)}>\n <p className=\"text-[#6B7280] dark:text-[#cecdcd] text-sm\">{title}</p>\n <div className={cn('mt-2 break-all text-[#374151] dark:text-[#cecdcd] text-base font-semibold')}>{content}</div>\n </Card>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport copyToClipboard from \"copy-to-clipboard\";\nimport { Copy as CopyIcon, CopyCheck } from \"lucide-react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport const Copy = ({\n className = '',\n value,\n iconSize = 20,\n iconClassName = ''\n}: {\n className?: string;\n value: string;\n iconSize?: number,\n iconClassName?: string\n}) => {\n const [copied, setCopied] = useState(false);\n useEffect(() => {\n if (copied) {\n const timer = setTimeout(() => {\n setCopied(false);\n }, 2000);\n return () => clearTimeout(timer);\n }\n }, [copied]);\n return (\n <button\n className={cn(\"rounded-sm p-1 hover:bg-gray-300 dark:hover:bg-gray-600\", className)}\n onClick={(e) => {\n e.preventDefault();\n copyToClipboard(value);\n setCopied(true);\n }}>\n {copied ? <CopyCheck size={iconSize} className={iconClassName} /> : <CopyIcon size={iconSize} className={iconClassName} />}\n </button>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport function JSONHighlight({ jsonStr, className }: { jsonStr: string, className?: string }) {\n if (!jsonStr) return null;\n jsonStr = jsonStr.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n const str = jsonStr.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function (match) {\n // number\n let cls = 'text-blue-500';\n if (/^\"/.test(match)) {\n if (/:$/.test(match)) {\n // key\n cls = 'text-gray-700 dark:text-gray-400';\n } else {\n // string\n cls = 'text-green-600';\n }\n } else if (/true|false/.test(match)) {\n // boolean\n cls = 'text-purple-500';\n } else if (/null/.test(match)) {\n // null\n cls = 'text-red-400';\n }\n return `<span class=\"${cls}\">${match}</span>`;\n });\n\n return (\n <pre className={cn('w-full overflow-auto text-xs font-bold', className)} dangerouslySetInnerHTML={{ __html: str }} />\n )\n}\n"]}
1
+ {"version":3,"sources":["../components/Common/PanelCard/index.tsx","../components/Common/Copy/index.tsx","../components/Common/JSONHighlight/index.tsx"],"names":["React","CopyIcon"],"mappings":"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","file":"ui.mjs","sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card } from '@nextui-org/react';\n\nexport const PanelCard = ({ className, title, content }: { className?: string; title: React.ReactNode; content?: React.ReactNode; }) => {\n return (\n <Card className={cn('flex flex-col justify-between border-none p-4 shadow-sm', className)}>\n <p className=\"text-[#6B7280] dark:text-[#cecdcd] text-sm\">{title}</p>\n <div className={cn('mt-2 break-all text-[#374151] dark:text-[#cecdcd] text-base font-semibold')}>{content}</div>\n </Card>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport copyToClipboard from \"copy-to-clipboard\";\nimport { Copy as CopyIcon, CopyCheck } from \"lucide-react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport const Copy = ({\n className = '',\n value,\n iconSize = 20,\n iconClassName = ''\n}: {\n className?: string;\n value: string;\n iconSize?: number,\n iconClassName?: string\n}) => {\n const [copied, setCopied] = useState(false);\n useEffect(() => {\n if (copied) {\n const timer = setTimeout(() => {\n setCopied(false);\n }, 2000);\n return () => clearTimeout(timer);\n }\n }, [copied]);\n return (\n <button\n className={cn(\"rounded-sm p-1 hover:bg-gray-300 dark:hover:bg-gray-600\", className)}\n onClick={(e) => {\n e.preventDefault();\n copyToClipboard(value);\n setCopied(true);\n }}>\n {copied ? <CopyCheck size={iconSize} className={iconClassName} /> : <CopyIcon size={iconSize} className={iconClassName} />}\n </button>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport function JSONHighlight({ jsonStr, className }: { jsonStr: string, className?: string }) {\n if (!jsonStr) return null;\n jsonStr = jsonStr.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n const str = jsonStr.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function (match) {\n // number\n let cls = 'text-blue-500';\n if (/^\"/.test(match)) {\n if (/:$/.test(match)) {\n // key\n cls = 'text-gray-700 dark:text-gray-400';\n } else {\n // string\n cls = 'text-green-600';\n }\n } else if (/true|false/.test(match)) {\n // boolean\n cls = 'text-purple-500';\n } else if (/null/.test(match)) {\n // null\n cls = 'text-red-400';\n }\n return `<span class=\"${cls}\">${match}</span>`;\n });\n\n return (\n <pre className={cn('w-full overflow-auto text-xs font-bold', className)} dangerouslySetInnerHTML={{ __html: str }} />\n )\n}\n"]}