@xyo-network/react-payload-details 2.81.10 → 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
@@ -1,164 +0,0 @@
1
- // src/components/Details/DataDetails.tsx
2
- import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
3
- import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
4
- import { forget } from "@xylabs/forget";
5
- import { ButtonEx } from "@xylabs/react-button";
6
- import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
7
- import { Property } from "@xyo-network/react-property";
8
- import { usePayloadHash } from "@xyo-network/react-shared";
9
- import { useState } from "react";
10
-
11
- // src/components/Details/HashSourceDetails.tsx
12
- import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
13
- import { IconButton, Typography, useTheme } from "@mui/material";
14
- import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
15
- import { QuickTipButton } from "@xylabs/react-quick-tip-button";
16
- import { PayloadHasher } from "@xyo-network/hash";
17
- import { jsx, jsxs } from "react/jsx-runtime";
18
- var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
19
- const theme = useTheme();
20
- const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
21
- return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
22
- noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
23
- /* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
24
- /* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
25
- ] }),
26
- /* @__PURE__ */ jsxs(FlexRow, { children: [
27
- /* @__PURE__ */ jsx(FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ jsx(Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
28
- /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
29
- ] }),
30
- noTitle ? /* @__PURE__ */ jsx(FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
31
- ] });
32
- };
33
-
34
- // src/components/Details/DataDetails.tsx
35
- import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
36
- var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
37
- const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
38
- const [viewSourceOpen, setViewSourceOpen] = useState(false);
39
- const hash = usePayloadHash(payload);
40
- let elevation = 2;
41
- if (props.paper) {
42
- elevation += props.elevation ?? 0;
43
- }
44
- const actions = [
45
- {
46
- icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
47
- name: "View",
48
- onClick: () => setViewSourceOpen(true)
49
- },
50
- {
51
- icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
52
- name: "Copy",
53
- onClick: () => forget(navigator.clipboard.writeText(hash ?? ""))
54
- }
55
- ];
56
- const onCopy = () => {
57
- forget(navigator.clipboard.writeText(payloadString));
58
- };
59
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
60
- /* @__PURE__ */ jsx2(
61
- Property,
62
- {
63
- titleProps: { elevation },
64
- badge,
65
- size,
66
- actions,
67
- title: "Payload Hash",
68
- value: hash ?? "<Unknown>",
69
- tip: "This is the payload hash",
70
- ...props
71
- }
72
- ),
73
- /* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
74
- /* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
75
- /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
76
- /* @__PURE__ */ jsxs2(DialogActions, { children: [
77
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
78
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
79
- ] })
80
- ] })
81
- ] });
82
- };
83
-
84
- // src/components/Details/Details.tsx
85
- import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
86
- import { forwardRef } from "react";
87
-
88
- // src/components/Details/JsonDetails.tsx
89
- import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
90
- import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
91
- import { PropertyGroup } from "@xyo-network/react-property";
92
- import { jsx as jsx3 } from "react/jsx-runtime";
93
- var PayloadJsonDetails = ({ jsonViewProps, payload = {}, ...props }) => {
94
- const { breakpoints, palette } = useTheme2();
95
- const belowSm = useMediaQuery(breakpoints.down("sm"));
96
- let elevation = 2;
97
- if (props.paper) {
98
- elevation += props.elevation ?? 0;
99
- }
100
- const jsonTheme = palette.mode === "dark" ? "dark" : "light";
101
- return /* @__PURE__ */ jsx3(PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ jsx3(Paper, { square: true, variant: "elevation", style: { overflow: "hidden", padding: "16px", width: "100%" }, children: /* @__PURE__ */ jsx3(
102
- JsonViewerEx,
103
- {
104
- groupArraysAfterLength: 20,
105
- style: { backgroundColor: void 0, overflow: "hidden" },
106
- value: payload,
107
- enableClipboard: true,
108
- theme: jsonTheme,
109
- collapseStringsAfterLength: belowSm ? 24 : 32,
110
- ...jsonViewProps
111
- }
112
- ) }) });
113
- };
114
-
115
- // src/components/Details/ValidationDetails/ValidationDetails.tsx
116
- import { Typography as Typography2 } from "@mui/material";
117
- import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
118
- import { usePromise } from "@xylabs/react-promise";
119
- import { PayloadValidator } from "@xyo-network/payload-validator";
120
- import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
121
- import { SchemaProperty } from "@xyo-network/react-schema";
122
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
123
- var PayloadValidationDetails = ({ skipBody = false, value, ...props }) => {
124
- const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [value]);
125
- const bodyErrors = skipBody ? [] : validateErrors ?? [];
126
- const errors = [...bodyErrors];
127
- let elevation = 2;
128
- if (props.paper) {
129
- elevation += props.elevation ?? 0;
130
- }
131
- return /* @__PURE__ */ jsxs3(PropertyGroup2, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
132
- /* @__PURE__ */ jsx4(
133
- Property2,
134
- {
135
- titleProps: { elevation },
136
- flexGrow: 1,
137
- title: "Valid",
138
- value: errors.length === 0 ? "True" : "False",
139
- tip: errors.length > 0 ? /* @__PURE__ */ jsx4(FlexCol2, { children: errors.map((error, index) => {
140
- return /* @__PURE__ */ jsx4(Typography2, { children: error.toString() }, index);
141
- }) }) : /* @__PURE__ */ jsx4(Typography2, { children: "No Errors" })
142
- }
143
- ),
144
- value?.schema && /* @__PURE__ */ jsx4(SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
145
- ] });
146
- };
147
-
148
- // src/components/Details/Details.tsx
149
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
150
- var PayloadDetails = forwardRef(({ paper, payload, ...props }, ref) => {
151
- return /* @__PURE__ */ jsxs4(FlexCol3, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref, ...props, children: [
152
- /* @__PURE__ */ jsx5(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
153
- /* @__PURE__ */ jsx5(PayloadValidationDetails, { paper, value: payload }),
154
- /* @__PURE__ */ jsx5(PayloadJsonDetails, { paper, payload })
155
- ] });
156
- });
157
- PayloadDetails.displayName = "PayloadDetails";
158
- export {
159
- PayloadDataDetails,
160
- PayloadDetails,
161
- PayloadJsonDetails,
162
- PayloadValidationDetails
163
- };
164
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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 { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.js'\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'\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 ? null : (\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 <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 : null}\n </FlexCol>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.js'\nimport { PayloadJsonDetails } from './JsonDetails.js'\nimport { PayloadValidationDetails } from './ValidationDetails/index.js'\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'\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'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps.js'\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 <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\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":["ContentCopyIcon","PayloadHasher","jsx","jsxs","PayloadHasher","ContentCopyIcon","FlexCol","useTheme","jsx","Typography","FlexCol","Property","PropertyGroup","jsx","jsxs","jsx","jsxs","FlexCol"]}
@@ -1,164 +0,0 @@
1
- // src/components/Details/DataDetails.tsx
2
- import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
3
- import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
4
- import { forget } from "@xylabs/forget";
5
- import { ButtonEx } from "@xylabs/react-button";
6
- import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
7
- import { Property } from "@xyo-network/react-property";
8
- import { usePayloadHash } from "@xyo-network/react-shared";
9
- import { useState } from "react";
10
-
11
- // src/components/Details/HashSourceDetails.tsx
12
- import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
13
- import { IconButton, Typography, useTheme } from "@mui/material";
14
- import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
15
- import { QuickTipButton } from "@xylabs/react-quick-tip-button";
16
- import { PayloadHasher } from "@xyo-network/hash";
17
- import { jsx, jsxs } from "react/jsx-runtime";
18
- var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
19
- const theme = useTheme();
20
- const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
21
- return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
22
- noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
23
- /* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
24
- /* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
25
- ] }),
26
- /* @__PURE__ */ jsxs(FlexRow, { children: [
27
- /* @__PURE__ */ jsx(FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ jsx(Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
28
- /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
29
- ] }),
30
- noTitle ? /* @__PURE__ */ jsx(FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
31
- ] });
32
- };
33
-
34
- // src/components/Details/DataDetails.tsx
35
- import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
36
- var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
37
- const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
38
- const [viewSourceOpen, setViewSourceOpen] = useState(false);
39
- const hash = usePayloadHash(payload);
40
- let elevation = 2;
41
- if (props.paper) {
42
- elevation += props.elevation ?? 0;
43
- }
44
- const actions = [
45
- {
46
- icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
47
- name: "View",
48
- onClick: () => setViewSourceOpen(true)
49
- },
50
- {
51
- icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
52
- name: "Copy",
53
- onClick: () => forget(navigator.clipboard.writeText(hash ?? ""))
54
- }
55
- ];
56
- const onCopy = () => {
57
- forget(navigator.clipboard.writeText(payloadString));
58
- };
59
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
60
- /* @__PURE__ */ jsx2(
61
- Property,
62
- {
63
- titleProps: { elevation },
64
- badge,
65
- size,
66
- actions,
67
- title: "Payload Hash",
68
- value: hash ?? "<Unknown>",
69
- tip: "This is the payload hash",
70
- ...props
71
- }
72
- ),
73
- /* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
74
- /* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
75
- /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
76
- /* @__PURE__ */ jsxs2(DialogActions, { children: [
77
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
78
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
79
- ] })
80
- ] })
81
- ] });
82
- };
83
-
84
- // src/components/Details/Details.tsx
85
- import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
86
- import { forwardRef } from "react";
87
-
88
- // src/components/Details/JsonDetails.tsx
89
- import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
90
- import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
91
- import { PropertyGroup } from "@xyo-network/react-property";
92
- import { jsx as jsx3 } from "react/jsx-runtime";
93
- var PayloadJsonDetails = ({ jsonViewProps, payload = {}, ...props }) => {
94
- const { breakpoints, palette } = useTheme2();
95
- const belowSm = useMediaQuery(breakpoints.down("sm"));
96
- let elevation = 2;
97
- if (props.paper) {
98
- elevation += props.elevation ?? 0;
99
- }
100
- const jsonTheme = palette.mode === "dark" ? "dark" : "light";
101
- return /* @__PURE__ */ jsx3(PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ jsx3(Paper, { square: true, variant: "elevation", style: { overflow: "hidden", padding: "16px", width: "100%" }, children: /* @__PURE__ */ jsx3(
102
- JsonViewerEx,
103
- {
104
- groupArraysAfterLength: 20,
105
- style: { backgroundColor: void 0, overflow: "hidden" },
106
- value: payload,
107
- enableClipboard: true,
108
- theme: jsonTheme,
109
- collapseStringsAfterLength: belowSm ? 24 : 32,
110
- ...jsonViewProps
111
- }
112
- ) }) });
113
- };
114
-
115
- // src/components/Details/ValidationDetails/ValidationDetails.tsx
116
- import { Typography as Typography2 } from "@mui/material";
117
- import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
118
- import { usePromise } from "@xylabs/react-promise";
119
- import { PayloadValidator } from "@xyo-network/payload-validator";
120
- import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
121
- import { SchemaProperty } from "@xyo-network/react-schema";
122
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
123
- var PayloadValidationDetails = ({ skipBody = false, value, ...props }) => {
124
- const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [value]);
125
- const bodyErrors = skipBody ? [] : validateErrors ?? [];
126
- const errors = [...bodyErrors];
127
- let elevation = 2;
128
- if (props.paper) {
129
- elevation += props.elevation ?? 0;
130
- }
131
- return /* @__PURE__ */ jsxs3(PropertyGroup2, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
132
- /* @__PURE__ */ jsx4(
133
- Property2,
134
- {
135
- titleProps: { elevation },
136
- flexGrow: 1,
137
- title: "Valid",
138
- value: errors.length === 0 ? "True" : "False",
139
- tip: errors.length > 0 ? /* @__PURE__ */ jsx4(FlexCol2, { children: errors.map((error, index) => {
140
- return /* @__PURE__ */ jsx4(Typography2, { children: error.toString() }, index);
141
- }) }) : /* @__PURE__ */ jsx4(Typography2, { children: "No Errors" })
142
- }
143
- ),
144
- value?.schema && /* @__PURE__ */ jsx4(SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
145
- ] });
146
- };
147
-
148
- // src/components/Details/Details.tsx
149
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
150
- var PayloadDetails = forwardRef(({ paper, payload, ...props }, ref) => {
151
- return /* @__PURE__ */ jsxs4(FlexCol3, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref, ...props, children: [
152
- /* @__PURE__ */ jsx5(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
153
- /* @__PURE__ */ jsx5(PayloadValidationDetails, { paper, value: payload }),
154
- /* @__PURE__ */ jsx5(PayloadJsonDetails, { paper, payload })
155
- ] });
156
- });
157
- PayloadDetails.displayName = "PayloadDetails";
158
- export {
159
- PayloadDataDetails,
160
- PayloadDetails,
161
- PayloadJsonDetails,
162
- PayloadValidationDetails
163
- };
164
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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 { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.js'\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'\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 ? null : (\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 <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 : null}\n </FlexCol>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.js'\nimport { PayloadJsonDetails } from './JsonDetails.js'\nimport { PayloadValidationDetails } from './ValidationDetails/index.js'\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'\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'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps.js'\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 <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\n : <Typography>No Errors</Typography>\n }\n />\n {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}\n </PropertyGroup>\n )\n}\n"],"mappings":";AAAA,SAAS,eAAeA,kBAAiB,cAAc,sBAAsB;AAC7E,SAAS,QAAQ,eAAe,eAAe,mBAAmB;AAClE,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,iBAAAC,sBAAqB;AAE9B,SAAS,gBAA+C;AACxD,SAAmB,sBAAsB;AACzC,SAAS,gBAAgB;;;ACRzB,SAAS,eAAe,uBAAuB;AAC/C,SAAS,YAAY,YAAY,gBAAgB;AACjD,SAAuB,SAAS,aAAa,eAAe;AAC5D,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAetB,SACE,KADF;AAPD,IAAM,2BAAoE,CAAC,EAAE,UAAU,OAAO,SAAS,GAAG,MAAM,MAAM;AAC3H,QAAM,QAAQ,SAAS;AACvB,QAAM,gBAAgB,UAAU,KAAK,UAAU,cAAc,WAAW,OAAO,GAAG,MAAM,CAAC,IAAI;AAE7F,SACE,qBAAC,WAAQ,YAAW,WAAW,GAAG,OAC/B;AAAA,cAAU,OACT,qBAAC,WAAQ,QAAQ,GAAG,gBAAe,cACjC;AAAA,0BAAC,cAAW,yBAAW;AAAA,MACvB,oBAAC,kBAAe,OAAM,eAAc,kEAAoD;AAAA,OAC1F;AAAA,IAEF,qBAAC,WACC;AAAA,0BAAC,eAAY,YAAU,MAAC,QAAQ,GAAG,aAAa,MAAM,QAAQ,SAAS,gBAAe,SACpF,8BAAC,cAAW,SAAS,GAAG,YAAW,aAAY,SAAQ,SAAQ,IAAI,EAAE,cAAc,cAAc,WAAW,YAAY,GACrH,yBACH,GACF;AAAA,MACA,oBAAC,cACC,8BAAC,mBAAgB,GACnB;AAAA,OACF;AAAA,IACC,UACC,oBAAC,WAAQ,QAAQ,GAAG,gBAAe,cACjC,8BAAC,cAAW,SAAQ,SAAQ,mHAE5B,GACF,IACA;AAAA,KACJ;AAEJ;;;ADZY,SAgBR,UAhBQ,OAAAC,MAgCJ,QAAAC,aAhCI;AAbL,IAAM,qBAAwD,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,MAAM,MAAM;AAC3G,QAAM,gBAAgB,UAAU,KAAK,UAAUC,eAAc,WAAW,OAAO,GAAG,MAAM,CAAC,IAAI;AAE7F,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,OAAO,eAAe,OAAO;AAEnC,MAAI,YAAY;AAChB,MAAI,MAAM,OAAO;AACf,iBAAa,MAAM,aAAa;AAAA,EAClC;AAEA,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,MAAM,gBAAAF,KAAC,kBAAe;AAAA,MACtB,MAAM;AAAA,MACN,SAAS,MAAM,kBAAkB,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,MACE,MAAM,gBAAAA,KAACG,kBAAA,EAAgB;AAAA,MACvB,MAAM;AAAA,MACN,SAAS,MAAM,OAAO,UAAU,UAAU,UAAU,QAAQ,EAAE,CAAC;AAAA,IACjE;AAAA,EACF;AAEA,QAAM,SAAS,MAAM;AACnB,WAAO,UAAU,UAAU,UAAU,aAAa,CAAC;AAAA,EACrD;AAEA,SACE,gBAAAF,MAAA,YACE;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,UAAU;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,KAAI;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,IACA,gBAAAC,MAAC,UAAO,MAAM,gBAAgB,SAAS,MAAM,kBAAkB,KAAK,GAClE;AAAA,sBAAAD,KAAC,eAAY,yBAAW;AAAA,MACxB,gBAAAA,KAAC,iBACC,0BAAAA,KAAC,4BAAyB,SAAO,MAAC,SAAkB,GACtD;AAAA,MACA,gBAAAC,MAAC,iBACC;AAAA,wBAAAD,KAAC,YAAS,OAAM,aAAY,SAAS,QAAQ,kBAE7C;AAAA,QACA,gBAAAA,KAAC,YAAS,OAAM,aAAY,SAAS,MAAM,kBAAkB,KAAK,GAAG,mBAErE;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;;;AE1EA,SAAuB,WAAAI,gBAAe;AAEtC,SAAS,kBAAkB;;;ACF3B,SAAS,OAAO,eAAe,YAAAC,iBAAgB;AAE/C,SAAS,oBAAuC;AAChD,SAAS,qBAAyC;AAqB1C,gBAAAC,YAAA;AAdD,IAAM,qBAAwD,CAAC,EAAE,eAAe,UAAU,CAAC,GAAG,GAAG,MAAM,MAAM;AAClH,QAAM,EAAE,aAAa,QAAQ,IAAID,UAAS;AAC1C,QAAM,UAAU,cAAc,YAAY,KAAK,IAAI,CAAC;AAEpD,MAAI,YAAY;AAChB,MAAI,MAAM,OAAO;AACf,iBAAa,MAAM,aAAa;AAAA,EAClC;AAEA,QAAM,YAAY,QAAQ,SAAS,SAAS,SAAS;AAErD,SACE,gBAAAC,KAAC,iBAAc,YAAY,EAAE,UAAU,GAAG,OAAM,QAAO,KAAI,+BAA+B,GAAG,OAC3F,0BAAAA,KAAC,SAAM,QAAM,MAAC,SAAQ,aAAY,OAAO,EAAE,UAAU,UAAU,SAAS,QAAQ,OAAO,OAAO,GAC5F,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACC,wBAAwB;AAAA,MACxB,OAAO,EAAE,iBAAiB,QAAW,UAAU,SAAS;AAAA,MACxD,OAAO;AAAA,MACP,iBAAe;AAAA,MACf,OAAO;AAAA,MACP,4BAA4B,UAAU,KAAK;AAAA,MAC1C,GAAG;AAAA;AAAA,EACN,GACF,GACF;AAEJ;;;ACpCA,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,WAAAC,gBAAe;AACxB,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,SAAS,YAAAC,WAAU,iBAAAC,sBAAqB;AACxC,SAAS,sBAAsB;AAgB3B,SAUmB,OAAAC,MAVnB,QAAAC,aAAA;AAZG,IAAM,2BAAoE,CAAC,EAAE,WAAW,OAAO,OAAO,GAAG,MAAM,MAAM;AAC1H,QAAM,CAAC,cAAc,IAAI,WAAW,YAAa,QAAQ,MAAM,IAAI,iBAAiB,KAAK,EAAE,SAAS,IAAI,QAAY,CAAC,KAAK,CAAC;AAE3H,QAAM,aAAa,WAAW,CAAC,IAAK,kBAAkB,CAAC;AACvD,QAAM,SAAkB,CAAC,GAAG,UAAU;AAEtC,MAAI,YAAY;AAChB,MAAI,MAAM,OAAO;AACf,iBAAa,MAAM,aAAa;AAAA,EAClC;AAEA,SACE,gBAAAA,MAACF,gBAAA,EAAc,YAAY,EAAE,UAAU,GAAG,OAAM,cAAa,KAAI,2CAA2C,GAAG,OAC7G;AAAA,oBAAAC;AAAA,MAACF;AAAA,MAAA;AAAA,QACC,YAAY,EAAE,UAAU;AAAA,QACxB,UAAU;AAAA,QACV,OAAM;AAAA,QACN,OAAO,OAAO,WAAW,IAAI,SAAS;AAAA,QACtC,KACE,OAAO,SAAS,IACd,gBAAAE,KAACH,UAAA,EACE,iBAAO,IAAI,CAAC,OAAO,UAAU;AAC5B,iBAAO,gBAAAG,KAACJ,aAAA,EAAwB,gBAAM,SAAS,KAAvB,KAAyB;AAAA,QACnD,CAAC,GACH,IACA,gBAAAI,KAACJ,aAAA,EAAW,uBAAS;AAAA;AAAA,IAE3B;AAAA,IACC,OAAO,UAAU,gBAAAI,KAAC,kBAAe,UAAU,GAAG,YAAY,EAAE,UAAU,GAAG,OAAO,MAAM,QAAQ;AAAA,KACjG;AAEJ;;;AFtBI,SACE,OAAAE,MADF,QAAAC,aAAA;AAFG,IAAM,iBAAiB,WAAgD,CAAC,EAAE,OAAO,SAAS,GAAG,MAAM,GAAG,QAAQ;AACnH,SACE,gBAAAA,MAACC,UAAA,EAAQ,KAAK,GAAG,gBAAe,cAAa,YAAW,WAAU,WAAW,GAAG,cAAc,GAAG,KAAW,GAAG,OAC7G;AAAA,oBAAAF,KAAC,sBAAmB,OAAc,MAAK,SAAQ,OAAK,MAAC,SAAkB;AAAA,IACvE,gBAAAA,KAAC,4BAAyB,OAAc,OAAO,SAAS;AAAA,IACxD,gBAAAA,KAAC,sBAAmB,OAAc,SAAkB;AAAA,KACtD;AAEJ,CAAC;AAED,eAAe,cAAc;","names":["ContentCopyIcon","PayloadHasher","jsx","jsxs","PayloadHasher","ContentCopyIcon","FlexCol","useTheme","jsx","Typography","FlexCol","Property","PropertyGroup","jsx","jsxs","jsx","jsxs","FlexCol"]}
@@ -1,164 +0,0 @@
1
- // src/components/Details/DataDetails.tsx
2
- import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
3
- import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
4
- import { forget } from "@xylabs/forget";
5
- import { ButtonEx } from "@xylabs/react-button";
6
- import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
7
- import { Property } from "@xyo-network/react-property";
8
- import { usePayloadHash } from "@xyo-network/react-shared";
9
- import { useState } from "react";
10
-
11
- // src/components/Details/HashSourceDetails.tsx
12
- import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
13
- import { IconButton, Typography, useTheme } from "@mui/material";
14
- import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
15
- import { QuickTipButton } from "@xylabs/react-quick-tip-button";
16
- import { PayloadHasher } from "@xyo-network/hash";
17
- import { jsx, jsxs } from "react/jsx-runtime";
18
- var PayloadHashSourceDetails = ({ noTitle = false, payload, ...props }) => {
19
- const theme = useTheme();
20
- const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : "";
21
- return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
22
- noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
23
- /* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
24
- /* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
25
- ] }),
26
- /* @__PURE__ */ jsxs(FlexRow, { children: [
27
- /* @__PURE__ */ jsx(FlexGrowRow, { background: true, border: 1, borderColor: theme.palette.divider, justifyContent: "start", children: /* @__PURE__ */ jsx(Typography, { padding: 2, fontFamily: "monospace", variant: "body1", sx: { overflowWrap: "break-word", wordBreak: "break-all" }, children: payloadString }) }),
28
- /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
29
- ] }),
30
- noTitle ? /* @__PURE__ */ jsx(FlexRow, { margin: 1, justifyContent: "flex-start", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: "The actual string used to generate the hash (SHA256). This can be used to validate the hash manually." }) }) : null
31
- ] });
32
- };
33
-
34
- // src/components/Details/DataDetails.tsx
35
- import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
36
- var PayloadDataDetails = ({ size, badge, payload, ...props }) => {
37
- const payloadString = payload ? JSON.stringify(PayloadHasher2.hashFields(payload), null, 2) : "";
38
- const [viewSourceOpen, setViewSourceOpen] = useState(false);
39
- const hash = usePayloadHash(payload);
40
- let elevation = 2;
41
- if (props.paper) {
42
- elevation += props.elevation ?? 0;
43
- }
44
- const actions = [
45
- {
46
- icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
47
- name: "View",
48
- onClick: () => setViewSourceOpen(true)
49
- },
50
- {
51
- icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
52
- name: "Copy",
53
- onClick: () => forget(navigator.clipboard.writeText(hash ?? ""))
54
- }
55
- ];
56
- const onCopy = () => {
57
- forget(navigator.clipboard.writeText(payloadString));
58
- };
59
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
60
- /* @__PURE__ */ jsx2(
61
- Property,
62
- {
63
- titleProps: { elevation },
64
- badge,
65
- size,
66
- actions,
67
- title: "Payload Hash",
68
- value: hash ?? "<Unknown>",
69
- tip: "This is the payload hash",
70
- ...props
71
- }
72
- ),
73
- /* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
74
- /* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
75
- /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
76
- /* @__PURE__ */ jsxs2(DialogActions, { children: [
77
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
78
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
79
- ] })
80
- ] })
81
- ] });
82
- };
83
-
84
- // src/components/Details/Details.tsx
85
- import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
86
- import { forwardRef } from "react";
87
-
88
- // src/components/Details/JsonDetails.tsx
89
- import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
90
- import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
91
- import { PropertyGroup } from "@xyo-network/react-property";
92
- import { jsx as jsx3 } from "react/jsx-runtime";
93
- var PayloadJsonDetails = ({ jsonViewProps, payload = {}, ...props }) => {
94
- const { breakpoints, palette } = useTheme2();
95
- const belowSm = useMediaQuery(breakpoints.down("sm"));
96
- let elevation = 2;
97
- if (props.paper) {
98
- elevation += props.elevation ?? 0;
99
- }
100
- const jsonTheme = palette.mode === "dark" ? "dark" : "light";
101
- return /* @__PURE__ */ jsx3(PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ jsx3(Paper, { square: true, variant: "elevation", style: { overflow: "hidden", padding: "16px", width: "100%" }, children: /* @__PURE__ */ jsx3(
102
- JsonViewerEx,
103
- {
104
- groupArraysAfterLength: 20,
105
- style: { backgroundColor: void 0, overflow: "hidden" },
106
- value: payload,
107
- enableClipboard: true,
108
- theme: jsonTheme,
109
- collapseStringsAfterLength: belowSm ? 24 : 32,
110
- ...jsonViewProps
111
- }
112
- ) }) });
113
- };
114
-
115
- // src/components/Details/ValidationDetails/ValidationDetails.tsx
116
- import { Typography as Typography2 } from "@mui/material";
117
- import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
118
- import { usePromise } from "@xylabs/react-promise";
119
- import { PayloadValidator } from "@xyo-network/payload-validator";
120
- import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
121
- import { SchemaProperty } from "@xyo-network/react-schema";
122
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
123
- var PayloadValidationDetails = ({ skipBody = false, value, ...props }) => {
124
- const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [value]);
125
- const bodyErrors = skipBody ? [] : validateErrors ?? [];
126
- const errors = [...bodyErrors];
127
- let elevation = 2;
128
- if (props.paper) {
129
- elevation += props.elevation ?? 0;
130
- }
131
- return /* @__PURE__ */ jsxs3(PropertyGroup2, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
132
- /* @__PURE__ */ jsx4(
133
- Property2,
134
- {
135
- titleProps: { elevation },
136
- flexGrow: 1,
137
- title: "Valid",
138
- value: errors.length === 0 ? "True" : "False",
139
- tip: errors.length > 0 ? /* @__PURE__ */ jsx4(FlexCol2, { children: errors.map((error, index) => {
140
- return /* @__PURE__ */ jsx4(Typography2, { children: error.toString() }, index);
141
- }) }) : /* @__PURE__ */ jsx4(Typography2, { children: "No Errors" })
142
- }
143
- ),
144
- (value == null ? void 0 : value.schema) && /* @__PURE__ */ jsx4(SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
145
- ] });
146
- };
147
-
148
- // src/components/Details/Details.tsx
149
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
150
- var PayloadDetails = forwardRef(({ paper, payload, ...props }, ref) => {
151
- return /* @__PURE__ */ jsxs4(FlexCol3, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ref, ...props, children: [
152
- /* @__PURE__ */ jsx5(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
153
- /* @__PURE__ */ jsx5(PayloadValidationDetails, { paper, value: payload }),
154
- /* @__PURE__ */ jsx5(PayloadJsonDetails, { paper, payload })
155
- ] });
156
- });
157
- PayloadDetails.displayName = "PayloadDetails";
158
- export {
159
- PayloadDataDetails,
160
- PayloadDetails,
161
- PayloadJsonDetails,
162
- PayloadValidationDetails
163
- };
164
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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 { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.js'\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'\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 ? null : (\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 <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 : null}\n </FlexCol>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.js'\nimport { PayloadJsonDetails } from './JsonDetails.js'\nimport { PayloadValidationDetails } from './ValidationDetails/index.js'\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'\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'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps.js'\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 <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\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":["ContentCopyIcon","PayloadHasher","jsx","jsxs","PayloadHasher","ContentCopyIcon","FlexCol","useTheme","jsx","Typography","FlexCol","Property","PropertyGroup","jsx","jsxs","jsx","jsxs","FlexCol"]}