@xyo-network/react-payload-details 2.81.9 → 2.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/browser/components/Details/DataDetails.d.cts +1 -0
  2. package/dist/browser/components/Details/DataDetails.d.cts.map +1 -1
  3. package/dist/browser/components/Details/DataDetails.d.mts +1 -0
  4. package/dist/browser/components/Details/DataDetails.d.mts.map +1 -1
  5. package/dist/browser/components/Details/DataDetails.d.ts +1 -0
  6. package/dist/browser/components/Details/DataDetails.d.ts.map +1 -1
  7. package/dist/browser/components/Details/Details.d.cts +3 -2
  8. package/dist/browser/components/Details/Details.d.cts.map +1 -1
  9. package/dist/browser/components/Details/Details.d.mts +3 -2
  10. package/dist/browser/components/Details/Details.d.mts.map +1 -1
  11. package/dist/browser/components/Details/Details.d.ts +3 -2
  12. package/dist/browser/components/Details/Details.d.ts.map +1 -1
  13. package/dist/browser/components/Details/HashSourceDetails.d.cts +1 -0
  14. package/dist/browser/components/Details/HashSourceDetails.d.cts.map +1 -1
  15. package/dist/browser/components/Details/HashSourceDetails.d.mts +1 -0
  16. package/dist/browser/components/Details/HashSourceDetails.d.mts.map +1 -1
  17. package/dist/browser/components/Details/HashSourceDetails.d.ts +1 -0
  18. package/dist/browser/components/Details/HashSourceDetails.d.ts.map +1 -1
  19. package/dist/browser/components/Details/JsonDetails.d.cts +1 -0
  20. package/dist/browser/components/Details/JsonDetails.d.cts.map +1 -1
  21. package/dist/browser/components/Details/JsonDetails.d.mts +1 -0
  22. package/dist/browser/components/Details/JsonDetails.d.mts.map +1 -1
  23. package/dist/browser/components/Details/JsonDetails.d.ts +1 -0
  24. package/dist/browser/components/Details/JsonDetails.d.ts.map +1 -1
  25. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.cts +2 -1
  26. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.cts.map +1 -1
  27. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.mts +2 -1
  28. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.mts.map +1 -1
  29. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.ts +2 -1
  30. package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -1
  31. package/dist/browser/components/Details/ValidationDetails/index.d.cts +2 -2
  32. package/dist/browser/components/Details/ValidationDetails/index.d.cts.map +1 -1
  33. package/dist/browser/components/Details/ValidationDetails/index.d.mts +2 -2
  34. package/dist/browser/components/Details/ValidationDetails/index.d.mts.map +1 -1
  35. package/dist/browser/components/Details/ValidationDetails/index.d.ts +2 -2
  36. package/dist/browser/components/Details/ValidationDetails/index.d.ts.map +1 -1
  37. package/dist/browser/components/Details/index.d.cts +4 -4
  38. package/dist/browser/components/Details/index.d.cts.map +1 -1
  39. package/dist/browser/components/Details/index.d.mts +4 -4
  40. package/dist/browser/components/Details/index.d.mts.map +1 -1
  41. package/dist/browser/components/Details/index.d.ts +4 -4
  42. package/dist/browser/components/Details/index.d.ts.map +1 -1
  43. package/dist/browser/components/index.d.cts +1 -1
  44. package/dist/browser/components/index.d.mts +1 -1
  45. package/dist/browser/components/index.d.ts +1 -1
  46. package/dist/browser/index.cjs +161 -90
  47. package/dist/browser/index.cjs.map +1 -1
  48. package/dist/browser/index.d.cts +1 -1
  49. package/dist/browser/index.d.mts +1 -1
  50. package/dist/browser/index.d.ts +1 -1
  51. package/dist/browser/index.mjs +227 -0
  52. package/dist/browser/index.mjs.map +1 -0
  53. package/dist/neutral/components/Details/DataDetails.d.cts +1 -0
  54. package/dist/neutral/components/Details/DataDetails.d.cts.map +1 -1
  55. package/dist/neutral/components/Details/DataDetails.d.mts +1 -0
  56. package/dist/neutral/components/Details/DataDetails.d.mts.map +1 -1
  57. package/dist/neutral/components/Details/DataDetails.d.ts +1 -0
  58. package/dist/neutral/components/Details/DataDetails.d.ts.map +1 -1
  59. package/dist/neutral/components/Details/Details.d.cts +3 -2
  60. package/dist/neutral/components/Details/Details.d.cts.map +1 -1
  61. package/dist/neutral/components/Details/Details.d.mts +3 -2
  62. package/dist/neutral/components/Details/Details.d.mts.map +1 -1
  63. package/dist/neutral/components/Details/Details.d.ts +3 -2
  64. package/dist/neutral/components/Details/Details.d.ts.map +1 -1
  65. package/dist/neutral/components/Details/HashSourceDetails.d.cts +1 -0
  66. package/dist/neutral/components/Details/HashSourceDetails.d.cts.map +1 -1
  67. package/dist/neutral/components/Details/HashSourceDetails.d.mts +1 -0
  68. package/dist/neutral/components/Details/HashSourceDetails.d.mts.map +1 -1
  69. package/dist/neutral/components/Details/HashSourceDetails.d.ts +1 -0
  70. package/dist/neutral/components/Details/HashSourceDetails.d.ts.map +1 -1
  71. package/dist/neutral/components/Details/JsonDetails.d.cts +1 -0
  72. package/dist/neutral/components/Details/JsonDetails.d.cts.map +1 -1
  73. package/dist/neutral/components/Details/JsonDetails.d.mts +1 -0
  74. package/dist/neutral/components/Details/JsonDetails.d.mts.map +1 -1
  75. package/dist/neutral/components/Details/JsonDetails.d.ts +1 -0
  76. package/dist/neutral/components/Details/JsonDetails.d.ts.map +1 -1
  77. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.cts +2 -1
  78. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.cts.map +1 -1
  79. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.mts +2 -1
  80. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.mts.map +1 -1
  81. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.ts +2 -1
  82. package/dist/neutral/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -1
  83. package/dist/neutral/components/Details/ValidationDetails/index.d.cts +2 -2
  84. package/dist/neutral/components/Details/ValidationDetails/index.d.cts.map +1 -1
  85. package/dist/neutral/components/Details/ValidationDetails/index.d.mts +2 -2
  86. package/dist/neutral/components/Details/ValidationDetails/index.d.mts.map +1 -1
  87. package/dist/neutral/components/Details/ValidationDetails/index.d.ts +2 -2
  88. package/dist/neutral/components/Details/ValidationDetails/index.d.ts.map +1 -1
  89. package/dist/neutral/components/Details/index.d.cts +4 -4
  90. package/dist/neutral/components/Details/index.d.cts.map +1 -1
  91. package/dist/neutral/components/Details/index.d.mts +4 -4
  92. package/dist/neutral/components/Details/index.d.mts.map +1 -1
  93. package/dist/neutral/components/Details/index.d.ts +4 -4
  94. package/dist/neutral/components/Details/index.d.ts.map +1 -1
  95. package/dist/neutral/components/index.d.cts +1 -1
  96. package/dist/neutral/components/index.d.mts +1 -1
  97. package/dist/neutral/components/index.d.ts +1 -1
  98. package/dist/neutral/index.cjs +161 -90
  99. package/dist/neutral/index.cjs.map +1 -1
  100. package/dist/neutral/index.d.cts +1 -1
  101. package/dist/neutral/index.d.mts +1 -1
  102. package/dist/neutral/index.d.ts +1 -1
  103. package/dist/neutral/index.mjs +227 -0
  104. package/dist/neutral/index.mjs.map +1 -0
  105. package/dist/node/components/Details/DataDetails.d.cts +1 -0
  106. package/dist/node/components/Details/DataDetails.d.cts.map +1 -1
  107. package/dist/node/components/Details/DataDetails.d.mts +1 -0
  108. package/dist/node/components/Details/DataDetails.d.mts.map +1 -1
  109. package/dist/node/components/Details/DataDetails.d.ts +1 -0
  110. package/dist/node/components/Details/DataDetails.d.ts.map +1 -1
  111. package/dist/node/components/Details/Details.d.cts +3 -2
  112. package/dist/node/components/Details/Details.d.cts.map +1 -1
  113. package/dist/node/components/Details/Details.d.mts +3 -2
  114. package/dist/node/components/Details/Details.d.mts.map +1 -1
  115. package/dist/node/components/Details/Details.d.ts +3 -2
  116. package/dist/node/components/Details/Details.d.ts.map +1 -1
  117. package/dist/node/components/Details/HashSourceDetails.d.cts +1 -0
  118. package/dist/node/components/Details/HashSourceDetails.d.cts.map +1 -1
  119. package/dist/node/components/Details/HashSourceDetails.d.mts +1 -0
  120. package/dist/node/components/Details/HashSourceDetails.d.mts.map +1 -1
  121. package/dist/node/components/Details/HashSourceDetails.d.ts +1 -0
  122. package/dist/node/components/Details/HashSourceDetails.d.ts.map +1 -1
  123. package/dist/node/components/Details/JsonDetails.d.cts +1 -0
  124. package/dist/node/components/Details/JsonDetails.d.cts.map +1 -1
  125. package/dist/node/components/Details/JsonDetails.d.mts +1 -0
  126. package/dist/node/components/Details/JsonDetails.d.mts.map +1 -1
  127. package/dist/node/components/Details/JsonDetails.d.ts +1 -0
  128. package/dist/node/components/Details/JsonDetails.d.ts.map +1 -1
  129. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.cts +2 -1
  130. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.cts.map +1 -1
  131. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.mts +2 -1
  132. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.mts.map +1 -1
  133. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.ts +2 -1
  134. package/dist/node/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -1
  135. package/dist/node/components/Details/ValidationDetails/index.d.cts +2 -2
  136. package/dist/node/components/Details/ValidationDetails/index.d.cts.map +1 -1
  137. package/dist/node/components/Details/ValidationDetails/index.d.mts +2 -2
  138. package/dist/node/components/Details/ValidationDetails/index.d.mts.map +1 -1
  139. package/dist/node/components/Details/ValidationDetails/index.d.ts +2 -2
  140. package/dist/node/components/Details/ValidationDetails/index.d.ts.map +1 -1
  141. package/dist/node/components/Details/index.d.cts +4 -4
  142. package/dist/node/components/Details/index.d.cts.map +1 -1
  143. package/dist/node/components/Details/index.d.mts +4 -4
  144. package/dist/node/components/Details/index.d.mts.map +1 -1
  145. package/dist/node/components/Details/index.d.ts +4 -4
  146. package/dist/node/components/Details/index.d.ts.map +1 -1
  147. package/dist/node/components/index.d.cts +1 -1
  148. package/dist/node/components/index.d.mts +1 -1
  149. package/dist/node/components/index.d.ts +1 -1
  150. package/dist/node/index.cjs +161 -90
  151. package/dist/node/index.cjs.map +1 -1
  152. package/dist/node/index.d.cts +1 -1
  153. package/dist/node/index.d.mts +1 -1
  154. package/dist/node/index.d.ts +1 -1
  155. package/dist/node/index.mjs +227 -0
  156. package/dist/node/index.mjs.map +1 -0
  157. package/package.json +22 -22
  158. package/src/components/Details/DataDetails.tsx +2 -2
  159. package/src/components/Details/Details.stories.tsx +3 -3
  160. package/src/components/Details/Details.tsx +4 -4
  161. package/src/components/Details/HashSourceDetails.tsx +18 -13
  162. package/src/components/Details/JsonDetails.tsx +2 -1
  163. package/src/components/Details/ValidationDetails/ValidationDetails.stories.tsx +4 -4
  164. package/src/components/Details/ValidationDetails/ValidationDetails.tsx +11 -8
  165. package/src/components/Details/ValidationDetails/index.ts +2 -2
  166. package/src/components/Details/index.ts +4 -4
  167. package/src/components/index.ts +1 -1
  168. package/src/index.ts +1 -1
  169. package/dist/browser/index.js +0 -164
  170. package/dist/browser/index.js.map +0 -1
  171. package/dist/neutral/index.js +0 -164
  172. package/dist/neutral/index.js.map +0 -1
  173. package/dist/node/index.js +0 -164
  174. package/dist/node/index.js.map +0 -1
@@ -0,0 +1,227 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/components/Details/DataDetails.tsx
5
+ import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
6
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
7
+ import { forget } from "@xylabs/forget";
8
+ import { ButtonEx } from "@xylabs/react-button";
9
+ import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
10
+ import { Property } from "@xyo-network/react-property";
11
+ import { usePayloadHash } from "@xyo-network/react-shared";
12
+ import React2, { useState } from "react";
13
+
14
+ // src/components/Details/HashSourceDetails.tsx
15
+ import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
16
+ import { IconButton, Typography, useTheme } from "@mui/material";
17
+ import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
18
+ import { QuickTipButton } from "@xylabs/react-quick-tip-button";
19
+ import { PayloadHasher } from "@xyo-network/hash";
20
+ import React from "react";
21
+ var PayloadHashSourceDetails = /* @__PURE__ */ __name(({ noTitle = false, payload, ...props }) => {
22
+ const theme = useTheme();
23
+ const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
24
+ return /* @__PURE__ */ React.createElement(FlexCol, {
25
+ alignItems: "stretch",
26
+ ...props
27
+ }, noTitle ? null : /* @__PURE__ */ React.createElement(FlexRow, {
28
+ margin: 1,
29
+ justifyContent: "flex-start"
30
+ }, /* @__PURE__ */ React.createElement(Typography, null, "Hash Source"), /* @__PURE__ */ React.createElement(QuickTipButton, {
31
+ title: "Hash Source"
32
+ }, "The actual string used to generate the hash (SHA256)")), /* @__PURE__ */ React.createElement(FlexRow, null, /* @__PURE__ */ React.createElement(FlexGrowRow, {
33
+ background: true,
34
+ border: 1,
35
+ borderColor: theme.palette.divider,
36
+ justifyContent: "start"
37
+ }, /* @__PURE__ */ React.createElement(Typography, {
38
+ padding: 2,
39
+ fontFamily: "monospace",
40
+ variant: "body1",
41
+ sx: {
42
+ overflowWrap: "break-word",
43
+ wordBreak: "break-all"
44
+ }
45
+ }, payloadString)), /* @__PURE__ */ React.createElement(IconButton, null, /* @__PURE__ */ React.createElement(ContentCopyIcon, null))), noTitle ? /* @__PURE__ */ React.createElement(FlexRow, {
46
+ margin: 1,
47
+ justifyContent: "flex-start"
48
+ }, /* @__PURE__ */ React.createElement(Typography, {
49
+ variant: "body2"
50
+ }, "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.")) : null);
51
+ }, "PayloadHashSourceDetails");
52
+
53
+ // src/components/Details/DataDetails.tsx
54
+ var PayloadDataDetails = /* @__PURE__ */ __name(({ size, badge, payload, ...props }) => {
55
+ const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
56
+ const [viewSourceOpen, setViewSourceOpen] = useState(false);
57
+ const hash = usePayloadHash(payload);
58
+ let elevation = 2;
59
+ if (props.paper) {
60
+ elevation += props.elevation ?? 0;
61
+ }
62
+ const actions = [
63
+ {
64
+ icon: /* @__PURE__ */ React2.createElement(VisibilityIcon, null),
65
+ name: "View",
66
+ onClick: /* @__PURE__ */ __name(() => setViewSourceOpen(true), "onClick")
67
+ },
68
+ {
69
+ icon: /* @__PURE__ */ React2.createElement(ContentCopyIcon2, null),
70
+ name: "Copy",
71
+ onClick: /* @__PURE__ */ __name(() => forget(navigator.clipboard.writeText(hash ?? "")), "onClick")
72
+ }
73
+ ];
74
+ const onCopy = /* @__PURE__ */ __name(() => {
75
+ forget(navigator.clipboard.writeText(payloadString));
76
+ }, "onCopy");
77
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Property, {
78
+ titleProps: {
79
+ elevation
80
+ },
81
+ badge,
82
+ size,
83
+ actions,
84
+ title: "Payload Hash",
85
+ value: hash ?? "<Unknown>",
86
+ tip: "This is the payload hash",
87
+ ...props
88
+ }), /* @__PURE__ */ React2.createElement(Dialog, {
89
+ open: viewSourceOpen,
90
+ onClose: /* @__PURE__ */ __name(() => setViewSourceOpen(false), "onClose")
91
+ }, /* @__PURE__ */ React2.createElement(DialogTitle, null, "Hash Source"), /* @__PURE__ */ React2.createElement(DialogContent, null, /* @__PURE__ */ React2.createElement(PayloadHashSourceDetails, {
92
+ noTitle: true,
93
+ payload
94
+ })), /* @__PURE__ */ React2.createElement(DialogActions, null, /* @__PURE__ */ React2.createElement(ButtonEx, {
95
+ color: "secondary",
96
+ onClick: onCopy
97
+ }, "Copy"), /* @__PURE__ */ React2.createElement(ButtonEx, {
98
+ color: "secondary",
99
+ onClick: /* @__PURE__ */ __name(() => setViewSourceOpen(false), "onClick")
100
+ }, "Close"))));
101
+ }, "PayloadDataDetails");
102
+
103
+ // src/components/Details/Details.tsx
104
+ import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
105
+ import React5, { forwardRef } from "react";
106
+
107
+ // src/components/Details/JsonDetails.tsx
108
+ import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
109
+ import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
110
+ import { PropertyGroup } from "@xyo-network/react-property";
111
+ import React3 from "react";
112
+ var PayloadJsonDetails = /* @__PURE__ */ __name(({ jsonViewProps, payload, ...props }) => {
113
+ const { breakpoints, palette } = useTheme2();
114
+ const belowSm = useMediaQuery(breakpoints.down("sm"));
115
+ let elevation = 2;
116
+ if (props.paper) {
117
+ elevation += props.elevation ?? 0;
118
+ }
119
+ const jsonTheme = palette.mode === "dark" ? "dark" : "light";
120
+ return /* @__PURE__ */ React3.createElement(PropertyGroup, {
121
+ titleProps: {
122
+ elevation
123
+ },
124
+ title: "JSON",
125
+ tip: "The raw JSON of the payload",
126
+ ...props
127
+ }, /* @__PURE__ */ React3.createElement(Paper, {
128
+ square: true,
129
+ variant: "elevation",
130
+ style: {
131
+ overflow: "hidden",
132
+ padding: "16px",
133
+ width: "100%"
134
+ }
135
+ }, /* @__PURE__ */ React3.createElement(JsonViewerEx, {
136
+ groupArraysAfterLength: 20,
137
+ style: {
138
+ backgroundColor: void 0,
139
+ overflow: "hidden"
140
+ },
141
+ value: payload,
142
+ enableClipboard: true,
143
+ theme: jsonTheme,
144
+ collapseStringsAfterLength: belowSm ? 24 : 32,
145
+ ...jsonViewProps
146
+ })));
147
+ }, "PayloadJsonDetails");
148
+
149
+ // src/components/Details/ValidationDetails/ValidationDetails.tsx
150
+ import { Typography as Typography2 } from "@mui/material";
151
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
152
+ import { usePromise } from "@xylabs/react-promise";
153
+ import { PayloadValidator } from "@xyo-network/payload-validator";
154
+ import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
155
+ import { SchemaProperty } from "@xyo-network/react-schema";
156
+ import React4 from "react";
157
+ var PayloadValidationDetails = /* @__PURE__ */ __name(({ skipBody = false, value, ...props }) => {
158
+ const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [
159
+ value
160
+ ]);
161
+ const bodyErrors = skipBody ? [] : validateErrors ?? [];
162
+ const errors = [
163
+ ...bodyErrors
164
+ ];
165
+ let elevation = 2;
166
+ if (props.paper) {
167
+ elevation += props.elevation ?? 0;
168
+ }
169
+ return /* @__PURE__ */ React4.createElement(PropertyGroup2, {
170
+ titleProps: {
171
+ elevation
172
+ },
173
+ title: "Validation",
174
+ tip: "The results from validating the payload",
175
+ ...props
176
+ }, /* @__PURE__ */ React4.createElement(Property2, {
177
+ titleProps: {
178
+ elevation
179
+ },
180
+ flexGrow: 1,
181
+ title: "Valid",
182
+ value: errors.length === 0 ? "True" : "False",
183
+ tip: errors.length > 0 ? /* @__PURE__ */ React4.createElement(FlexCol2, null, errors.map((error, index) => {
184
+ return /* @__PURE__ */ React4.createElement(Typography2, {
185
+ key: index
186
+ }, error.toString());
187
+ })) : /* @__PURE__ */ React4.createElement(Typography2, null, "No Errors")
188
+ }), (value == null ? void 0 : value.schema) && /* @__PURE__ */ React4.createElement(SchemaProperty, {
189
+ flexGrow: 1,
190
+ titleProps: {
191
+ elevation
192
+ },
193
+ value: value.schema
194
+ }));
195
+ }, "PayloadValidationDetails");
196
+
197
+ // src/components/Details/Details.tsx
198
+ var PayloadDetails = /* @__PURE__ */ forwardRef(({ paper, payload, ...props }, ref) => {
199
+ return /* @__PURE__ */ React5.createElement(FlexCol3, {
200
+ gap: 1,
201
+ justifyContent: "flex-start",
202
+ alignItems: "stretch",
203
+ marginTop: 2,
204
+ marginBottom: 8,
205
+ ref,
206
+ ...props
207
+ }, /* @__PURE__ */ React5.createElement(PayloadDataDetails, {
208
+ paper,
209
+ size: "large",
210
+ badge: true,
211
+ payload
212
+ }), /* @__PURE__ */ React5.createElement(PayloadValidationDetails, {
213
+ paper,
214
+ value: payload
215
+ }), /* @__PURE__ */ React5.createElement(PayloadJsonDetails, {
216
+ paper,
217
+ payload
218
+ }));
219
+ });
220
+ PayloadDetails.displayName = "PayloadDetails";
221
+ export {
222
+ PayloadDataDetails,
223
+ PayloadDetails,
224
+ PayloadJsonDetails,
225
+ PayloadValidationDetails
226
+ };
227
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Details/DataDetails.tsx","../../src/components/Details/HashSourceDetails.tsx","../../src/components/Details/Details.tsx","../../src/components/Details/JsonDetails.tsx","../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { forget } from '@xylabs/forget'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport React, { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.tsx'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: () => forget(navigator.clipboard.writeText(hash ?? '')),\n },\n ]\n\n const onCopy = () => {\n forget(navigator.clipboard.writeText(payloadString))\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport { IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport React from 'react'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle\n ? null\n : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography padding={2} fontFamily=\"monospace\" variant=\"body1\" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle\n ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n )\n : null}\n </FlexCol>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport React, { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.tsx'\nimport { PayloadJsonDetails } from './JsonDetails.tsx'\nimport { PayloadValidationDetails } from './ValidationDetails/index.ts'\n\nexport type WithPaper<T> = T & { paper: true }\nexport type WithoutPaper<T> = T & { paper?: false }\n\nexport type PayloadDetailsProps = FlexBoxProps & {\n paper?: boolean\n payload?: Payload\n}\n\nexport const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({ paper, payload, ...props }, ref) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} ref={ref} {...props}>\n <PayloadDataDetails paper={paper} size=\"large\" badge payload={payload} />\n <PayloadValidationDetails paper={paper} value={payload} />\n <PayloadJsonDetails paper={paper} payload={payload} />\n </FlexCol>\n )\n})\n\nPayloadDetails.displayName = 'PayloadDetails'\n","import { Paper, useMediaQuery, useTheme } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { JsonViewerEx, JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'\nimport React from 'react'\n\nexport type PayloadJsonDetailsProps = PropertyGroupProps & {\n jsonViewProps?: JsonViewerExProps\n payload?: Payload\n}\n\nexport const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload, ...props }) => {\n const { breakpoints, palette } = useTheme()\n const belowSm = useMediaQuery(breakpoints.down('sm'))\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const jsonTheme = palette.mode === 'dark' ? 'dark' : 'light'\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper square variant=\"elevation\" style={{ overflow: 'hidden', padding: '16px', width: '100%' }}>\n <JsonViewerEx\n groupArraysAfterLength={20}\n style={{ backgroundColor: undefined, overflow: 'hidden' }}\n value={payload}\n enableClipboard\n theme={jsonTheme}\n collapseStringsAfterLength={belowSm ? 24 : 32}\n {...jsonViewProps}\n />\n </Paper>\n </PropertyGroup>\n )\n}\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { Property, PropertyGroup } from '@xyo-network/react-property'\nimport { SchemaProperty } from '@xyo-network/react-schema'\nimport React from 'react'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({ skipBody = false, value, ...props }) => {\n const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])\n\n const bodyErrors = skipBody ? [] : (validateErrors ?? [])\n const errors: Error[] = [...bodyErrors]\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"Validation\" tip=\"The results from validating the payload\" {...props}>\n <Property\n titleProps={{ elevation }}\n flexGrow={1}\n title=\"Valid\"\n value={errors.length === 0 ? 'True' : 'False'}\n tip={\n errors.length > 0\n ? (\n <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\n )\n : <Typography>No Errors</Typography>\n }\n />\n {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}\n </PropertyGroup>\n )\n}\n"],"mappings":"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","names":["ContentCopy","ContentCopyIcon","Visibility","VisibilityIcon","Dialog","DialogActions","DialogContent","DialogTitle","forget","ButtonEx","PayloadHasher","Property","usePayloadHash","React","useState","ContentCopy","ContentCopyIcon","IconButton","Typography","useTheme","FlexCol","FlexGrowRow","FlexRow","QuickTipButton","PayloadHasher","React","PayloadHashSourceDetails","noTitle","payload","props","theme","useTheme","payloadString","JSON","stringify","PayloadHasher","hashFields","FlexCol","alignItems","FlexRow","margin","justifyContent","Typography","QuickTipButton","title","FlexGrowRow","background","border","borderColor","palette","divider","padding","fontFamily","variant","sx","overflowWrap","wordBreak","IconButton","ContentCopyIcon","PayloadDataDetails","size","badge","payload","props","payloadString","JSON","stringify","PayloadHasher","hashFields","viewSourceOpen","setViewSourceOpen","useState","hash","usePayloadHash","elevation","paper","actions","icon","React","VisibilityIcon","name","onClick","ContentCopyIcon","forget","navigator","clipboard","writeText","onCopy","Property","titleProps","title","value","tip","Dialog","open","onClose","DialogTitle","DialogContent","PayloadHashSourceDetails","noTitle","DialogActions","ButtonEx","color","FlexCol","React","forwardRef","Paper","useMediaQuery","useTheme","JsonViewerEx","PropertyGroup","React","PayloadJsonDetails","jsonViewProps","payload","props","breakpoints","palette","useTheme","belowSm","useMediaQuery","down","elevation","paper","jsonTheme","mode","React","PropertyGroup","titleProps","title","tip","Paper","square","variant","style","overflow","padding","width","JsonViewerEx","groupArraysAfterLength","backgroundColor","undefined","value","enableClipboard","theme","collapseStringsAfterLength","Typography","FlexCol","usePromise","PayloadValidator","Property","PropertyGroup","SchemaProperty","React","PayloadValidationDetails","skipBody","value","props","validateErrors","usePromise","PayloadValidator","validate","undefined","bodyErrors","errors","elevation","paper","React","PropertyGroup","titleProps","title","tip","Property","flexGrow","length","FlexCol","map","error","index","Typography","key","toString","schema","SchemaProperty","PayloadDetails","forwardRef","paper","payload","props","ref","React","FlexCol","gap","justifyContent","alignItems","marginTop","marginBottom","PayloadDataDetails","size","badge","PayloadValidationDetails","value","PayloadJsonDetails","displayName"]}
package/package.json CHANGED
@@ -10,25 +10,25 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/forget": "^3.6.4",
14
- "@xylabs/react-button": "^3.4.1",
15
- "@xylabs/react-flexbox": "^3.4.1",
16
- "@xylabs/react-promise": "^3.4.1",
17
- "@xylabs/react-quick-tip-button": "^3.4.1",
18
- "@xyo-network/hash": "^2.110.9",
19
- "@xyo-network/payload-model": "^2.110.9",
20
- "@xyo-network/payload-validator": "^2.110.9",
21
- "@xyo-network/react-payload-raw-info": "^2.81.9",
22
- "@xyo-network/react-property": "^2.81.9",
23
- "@xyo-network/react-schema": "^2.81.9",
24
- "@xyo-network/react-shared": "^2.81.9"
13
+ "@xylabs/forget": "^3.6.12",
14
+ "@xylabs/react-button": "^3.4.2",
15
+ "@xylabs/react-flexbox": "^3.4.2",
16
+ "@xylabs/react-promise": "^3.4.2",
17
+ "@xylabs/react-quick-tip-button": "^3.4.2",
18
+ "@xyo-network/hash": "^2.111.3",
19
+ "@xyo-network/payload-model": "^2.111.3",
20
+ "@xyo-network/payload-validator": "^2.111.3",
21
+ "@xyo-network/react-payload-raw-info": "^2.82.0",
22
+ "@xyo-network/react-property": "^2.82.0",
23
+ "@xyo-network/react-schema": "^2.82.0",
24
+ "@xyo-network/react-shared": "^2.82.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@storybook/react": "^7.6.20",
28
- "@xylabs/ts-scripts-yarn3": "^3.12.4",
29
- "@xylabs/tsconfig-react": "^3.12.4",
30
- "@xyo-network/react-storybook": "^2.81.9",
31
- "react-router-dom": "^6.25.1",
27
+ "@storybook/react": "^8.2.7",
28
+ "@xylabs/ts-scripts-yarn3": "^3.15.16",
29
+ "@xylabs/tsconfig-react": "^3.15.16",
30
+ "@xyo-network/react-storybook": "^2.82.0",
31
+ "react-router-dom": "^6.26.0",
32
32
  "typescript": "^5.5.4"
33
33
  },
34
34
  "peerDependencies": {
@@ -47,7 +47,7 @@
47
47
  "node": {
48
48
  "import": {
49
49
  "types": "./dist/node/index.d.mts",
50
- "default": "./dist/node/index.js"
50
+ "default": "./dist/node/index.mjs"
51
51
  },
52
52
  "require": {
53
53
  "types": "./dist/node/index.d.cts",
@@ -57,19 +57,19 @@
57
57
  "browser": {
58
58
  "import": {
59
59
  "types": "./dist/browser/index.d.mts",
60
- "default": "./dist/browser/index.js"
60
+ "default": "./dist/browser/index.mjs"
61
61
  },
62
62
  "require": {
63
63
  "types": "./dist/browser/index.d.cts",
64
64
  "default": "./dist/browser/index.cjs"
65
65
  }
66
66
  },
67
- "default": "./dist/browser/index.js"
67
+ "default": "./dist/browser/index.mjs"
68
68
  },
69
69
  "./package.json": "./package.json"
70
70
  },
71
71
  "main": "dist/browser/index.cjs",
72
- "module": "dist/browser/index.js",
72
+ "module": "dist/browser/index.mjs",
73
73
  "homepage": "https://xyo.network",
74
74
  "keywords": [
75
75
  "xyo",
@@ -91,6 +91,6 @@
91
91
  },
92
92
  "sideEffects": false,
93
93
  "types": "dist/browser/index.d.ts",
94
- "version": "2.81.9",
94
+ "version": "2.82.0",
95
95
  "type": "module"
96
96
  }
@@ -6,9 +6,9 @@ import { PayloadHasher } from '@xyo-network/hash'
6
6
  import { Payload } from '@xyo-network/payload-model'
7
7
  import { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'
8
8
  import { SizeProp, usePayloadHash } from '@xyo-network/react-shared'
9
- import { useState } from 'react'
9
+ import React, { useState } from 'react'
10
10
 
11
- import { PayloadHashSourceDetails } from './HashSourceDetails.js'
11
+ import { PayloadHashSourceDetails } from './HashSourceDetails.tsx'
12
12
 
13
13
  export type PayloadDataDetailsProps = PropertyProps & {
14
14
  badge?: boolean
@@ -1,8 +1,9 @@
1
1
  import { Meta, StoryFn } from '@storybook/react'
2
2
  import { sampleIdPayload, samplePayloadFromBuilder } from '@xyo-network/react-storybook'
3
+ import React from 'react'
3
4
  import { BrowserRouter, Route, Routes } from 'react-router-dom'
4
5
 
5
- import { PayloadDetails } from './Details.js'
6
+ import { PayloadDetails } from './Details.tsx'
6
7
 
7
8
  const StorybookEntry = {
8
9
  argTypes: {},
@@ -15,7 +16,7 @@ const StorybookEntry = {
15
16
  title: 'payload/Details',
16
17
  } as Meta<typeof PayloadDetails>
17
18
 
18
- const Template: StoryFn<typeof PayloadDetails> = (args) => (
19
+ const Template: StoryFn<typeof PayloadDetails> = args => (
19
20
  <BrowserRouter>
20
21
  <Routes>
21
22
  <Route path="temp" element={<h1>Successfully navigated to archivePath</h1>} />
@@ -50,5 +51,4 @@ WithArchiveLinkPaper.args = { paper: true, payload: samplePayloadFromBuilder }
50
51
 
51
52
  export { Default, DefaultPaper, WithArchiveLink, WithArchiveLinkPaper, WithBuilderSample, WithBuilderSamplePaper, WithSample, WithSamplePaper }
52
53
 
53
- // eslint-disable-next-line import/no-default-export
54
54
  export default StorybookEntry
@@ -1,10 +1,10 @@
1
1
  import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
2
2
  import { Payload } from '@xyo-network/payload-model'
3
- import { forwardRef } from 'react'
3
+ import React, { forwardRef } from 'react'
4
4
 
5
- import { PayloadDataDetails } from './DataDetails.js'
6
- import { PayloadJsonDetails } from './JsonDetails.js'
7
- import { PayloadValidationDetails } from './ValidationDetails/index.js'
5
+ import { PayloadDataDetails } from './DataDetails.tsx'
6
+ import { PayloadJsonDetails } from './JsonDetails.tsx'
7
+ import { PayloadValidationDetails } from './ValidationDetails/index.ts'
8
8
 
9
9
  export type WithPaper<T> = T & { paper: true }
10
10
  export type WithoutPaper<T> = T & { paper?: false }
@@ -4,6 +4,7 @@ import { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexb
4
4
  import { QuickTipButton } from '@xylabs/react-quick-tip-button'
5
5
  import { PayloadHasher } from '@xyo-network/hash'
6
6
  import { Payload } from '@xyo-network/payload-model'
7
+ import React from 'react'
7
8
 
8
9
  export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
9
10
  noTitle?: boolean
@@ -16,12 +17,14 @@ export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> =
16
17
 
17
18
  return (
18
19
  <FlexCol alignItems="stretch" {...props}>
19
- {noTitle ? null : (
20
- <FlexRow margin={1} justifyContent="flex-start">
21
- <Typography>Hash Source</Typography>
22
- <QuickTipButton title="Hash Source">The actual string used to generate the hash (SHA256)</QuickTipButton>
23
- </FlexRow>
24
- )}
20
+ {noTitle
21
+ ? null
22
+ : (
23
+ <FlexRow margin={1} justifyContent="flex-start">
24
+ <Typography>Hash Source</Typography>
25
+ <QuickTipButton title="Hash Source">The actual string used to generate the hash (SHA256)</QuickTipButton>
26
+ </FlexRow>
27
+ )}
25
28
  <FlexRow>
26
29
  <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent="start">
27
30
  <Typography padding={2} fontFamily="monospace" variant="body1" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>
@@ -32,13 +35,15 @@ export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> =
32
35
  <ContentCopyIcon />
33
36
  </IconButton>
34
37
  </FlexRow>
35
- {noTitle ?
36
- <FlexRow margin={1} justifyContent="flex-start">
37
- <Typography variant="body2">
38
- The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.
39
- </Typography>
40
- </FlexRow>
41
- : null}
38
+ {noTitle
39
+ ? (
40
+ <FlexRow margin={1} justifyContent="flex-start">
41
+ <Typography variant="body2">
42
+ The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.
43
+ </Typography>
44
+ </FlexRow>
45
+ )
46
+ : null}
42
47
  </FlexCol>
43
48
  )
44
49
  }
@@ -2,13 +2,14 @@ import { Paper, useMediaQuery, useTheme } from '@mui/material'
2
2
  import { Payload } from '@xyo-network/payload-model'
3
3
  import { JsonViewerEx, JsonViewerExProps } from '@xyo-network/react-payload-raw-info'
4
4
  import { PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'
5
+ import React from 'react'
5
6
 
6
7
  export type PayloadJsonDetailsProps = PropertyGroupProps & {
7
8
  jsonViewProps?: JsonViewerExProps
8
9
  payload?: Payload
9
10
  }
10
11
 
11
- export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload = {}, ...props }) => {
12
+ export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload, ...props }) => {
12
13
  const { breakpoints, palette } = useTheme()
13
14
  const belowSm = useMediaQuery(breakpoints.down('sm'))
14
15
 
@@ -1,11 +1,12 @@
1
1
  import { Meta, StoryFn } from '@storybook/react'
2
2
  import { Payload } from '@xyo-network/payload-model'
3
3
  import { sampleIdPayload } from '@xyo-network/react-storybook'
4
+ import React from 'react'
4
5
  import { BrowserRouter } from 'react-router-dom'
5
6
 
6
- import { PayloadDetails } from '../Details.js'
7
- import { PayloadValidationDetails } from './ValidationDetails.js'
8
- import { PayloadValidationDetailsProps } from './ValidationDetailsProps.js'
7
+ import { PayloadDetails } from '../Details.tsx'
8
+ import { PayloadValidationDetails } from './ValidationDetails.tsx'
9
+ import { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
9
10
 
10
11
  const StorybookEntry: Meta = {
11
12
  argTypes: {},
@@ -57,5 +58,4 @@ SkipBody.args = {
57
58
 
58
59
  export { Default, SkipBody, WithErrorsInToolTip }
59
60
 
60
- // eslint-disable-next-line import/no-default-export
61
61
  export default StorybookEntry
@@ -4,8 +4,9 @@ import { usePromise } from '@xylabs/react-promise'
4
4
  import { PayloadValidator } from '@xyo-network/payload-validator'
5
5
  import { Property, PropertyGroup } from '@xyo-network/react-property'
6
6
  import { SchemaProperty } from '@xyo-network/react-schema'
7
+ import React from 'react'
7
8
 
8
- import { PayloadValidationDetailsProps } from './ValidationDetailsProps.js'
9
+ import { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
9
10
 
10
11
  export const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({ skipBody = false, value, ...props }) => {
11
12
  const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])
@@ -26,13 +27,15 @@ export const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> =
26
27
  title="Valid"
27
28
  value={errors.length === 0 ? 'True' : 'False'}
28
29
  tip={
29
- errors.length > 0 ?
30
- <FlexCol>
31
- {errors.map((error, index) => {
32
- return <Typography key={index}>{error.toString()}</Typography>
33
- })}
34
- </FlexCol>
35
- : <Typography>No Errors</Typography>
30
+ errors.length > 0
31
+ ? (
32
+ <FlexCol>
33
+ {errors.map((error, index) => {
34
+ return <Typography key={index}>{error.toString()}</Typography>
35
+ })}
36
+ </FlexCol>
37
+ )
38
+ : <Typography>No Errors</Typography>
36
39
  }
37
40
  />
38
41
  {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}
@@ -1,2 +1,2 @@
1
- export * from './ValidationDetails.js'
2
- export * from './ValidationDetailsProps.js'
1
+ export * from './ValidationDetails.tsx'
2
+ export * from './ValidationDetailsProps.ts'
@@ -1,4 +1,4 @@
1
- export * from './DataDetails.js'
2
- export * from './Details.js'
3
- export * from './JsonDetails.js'
4
- export * from './ValidationDetails/index.js'
1
+ export * from './DataDetails.tsx'
2
+ export * from './Details.tsx'
3
+ export * from './JsonDetails.tsx'
4
+ export * from './ValidationDetails/index.ts'
@@ -1 +1 @@
1
- export * from './Details/index.js'
1
+ export * from './Details/index.ts'
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './components/index.js'
1
+ export * from './components/index.ts'