@xyo-network/react-payload-details 7.4.1 → 7.5.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.
@@ -1,35 +1,35 @@
1
1
  import type { Meta } from '@storybook/react-vite';
2
2
  import { PayloadDetails } from './Details.tsx';
3
3
  declare const StorybookEntry: Meta<typeof PayloadDetails>;
4
- declare const Default: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
4
+ declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
5
5
  paper?: boolean;
6
6
  payload?: import("@xyo-network/payload-model").Payload;
7
7
  }>;
8
- declare const WithSample: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
8
+ declare const WithSample: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
9
9
  paper?: boolean;
10
10
  payload?: import("@xyo-network/payload-model").Payload;
11
11
  }>;
12
- declare const WithBuilderSample: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
12
+ declare const WithBuilderSample: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
13
13
  paper?: boolean;
14
14
  payload?: import("@xyo-network/payload-model").Payload;
15
15
  }>;
16
- declare const WithArchiveLink: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
16
+ declare const WithArchiveLink: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
17
17
  paper?: boolean;
18
18
  payload?: import("@xyo-network/payload-model").Payload;
19
19
  }>;
20
- declare const DefaultPaper: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
20
+ declare const DefaultPaper: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
21
21
  paper?: boolean;
22
22
  payload?: import("@xyo-network/payload-model").Payload;
23
23
  }>;
24
- declare const WithSamplePaper: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
24
+ declare const WithSamplePaper: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
25
25
  paper?: boolean;
26
26
  payload?: import("@xyo-network/payload-model").Payload;
27
27
  }>;
28
- declare const WithBuilderSamplePaper: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
28
+ declare const WithBuilderSamplePaper: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
29
29
  paper?: boolean;
30
30
  payload?: import("@xyo-network/payload-model").Payload;
31
31
  }>;
32
- declare const WithArchiveLinkPaper: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
32
+ declare const WithArchiveLinkPaper: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@xylabs/react-flexbox").BusyBoxProps & {
33
33
  paper?: boolean;
34
34
  payload?: import("@xyo-network/payload-model").Payload;
35
35
  }>;
@@ -1,9 +1,9 @@
1
1
  import type { Meta } from '@storybook/react-vite';
2
2
  import type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts';
3
3
  declare const StorybookEntry: Meta;
4
- declare const Default: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PayloadValidationDetailsProps>;
5
- declare const WithErrorsInToolTip: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PayloadValidationDetailsProps>;
6
- declare const SkipBody: import(".store/storybook-virtual-a067dd1507/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PayloadValidationDetailsProps>;
4
+ declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, PayloadValidationDetailsProps>;
5
+ declare const WithErrorsInToolTip: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, PayloadValidationDetailsProps>;
6
+ declare const SkipBody: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, PayloadValidationDetailsProps>;
7
7
  export { Default, SkipBody, WithErrorsInToolTip, };
8
8
  export default StorybookEntry;
9
9
  //# sourceMappingURL=ValidationDetails.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationDetails.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAEhF,QAAA,MAAM,cAAc,EAAE,IAMrB,CAAA;AAQD,QAAA,MAAM,OAAO,mKAAoB,CAAA;AAGjC,QAAA,MAAM,mBAAmB,mKAAoB,CAAA;AAW7C,QAAA,MAAM,QAAQ,mKAAoB,CAAA;AAYlC,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,mBAAmB,GACvC,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"ValidationDetails.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAEhF,QAAA,MAAM,cAAc,EAAE,IAMrB,CAAA;AAQD,QAAA,MAAM,OAAO,4HAAoB,CAAA;AAGjC,QAAA,MAAM,mBAAmB,4HAAoB,CAAA;AAW7C,QAAA,MAAM,QAAQ,4HAAoB,CAAA;AAYlC,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,mBAAmB,GACvC,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,70 +1,57 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/components/Details/DataDetails.tsx
2
5
  import { ContentCopy as ContentCopyIcon2, Visibility as VisibilityIcon } from "@mui/icons-material";
3
- import {
4
- Dialog,
5
- DialogActions,
6
- DialogContent,
7
- DialogTitle
8
- } from "@mui/material";
6
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
9
7
  import { forget } from "@xylabs/forget";
10
8
  import { ButtonEx } from "@xylabs/react-button";
11
9
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
12
10
  import { Property } from "@xyo-network/react-property";
13
11
  import { usePayloadHash } from "@xyo-network/react-shared";
14
- import { useState } from "react";
12
+ import React2, { useState } from "react";
15
13
 
16
14
  // src/components/Details/HashSourceDetails.tsx
17
15
  import { ContentCopy as ContentCopyIcon } from "@mui/icons-material";
18
- import {
19
- IconButton,
20
- Typography,
21
- useTheme
22
- } from "@mui/material";
23
- import {
24
- FlexCol,
25
- FlexGrowRow,
26
- FlexRow
27
- } from "@xylabs/react-flexbox";
16
+ import { IconButton, Typography, useTheme } from "@mui/material";
17
+ import { FlexCol, FlexGrowRow, FlexRow } from "@xylabs/react-flexbox";
28
18
  import { QuickTipButton } from "@xylabs/react-quick-tip-button";
29
19
  import { PayloadBuilder } from "@xyo-network/payload-builder";
30
- import { jsx, jsxs } from "react/jsx-runtime";
31
- var PayloadHashSourceDetails = ({
32
- noTitle = false,
33
- payload,
34
- ...props
35
- }) => {
20
+ import React from "react";
21
+ var PayloadHashSourceDetails = /* @__PURE__ */ __name(({ noTitle = false, payload, ...props }) => {
36
22
  const theme = useTheme();
37
23
  const payloadString = payload ? JSON.stringify(PayloadBuilder.hashableFields(payload), null, 2) : "";
38
- return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
39
- noTitle ? null : /* @__PURE__ */ jsxs(FlexRow, { margin: 1, justifyContent: "flex-start", children: [
40
- /* @__PURE__ */ jsx(Typography, { children: "Hash Source" }),
41
- /* @__PURE__ */ jsx(QuickTipButton, { title: "Hash Source", children: "The actual string used to generate the hash (SHA256)" })
42
- ] }),
43
- /* @__PURE__ */ jsxs(FlexRow, { children: [
44
- /* @__PURE__ */ jsx(FlexGrowRow, { background: true, border: 1, borderColor: theme.vars.palette.divider, justifyContent: "start", children: /* @__PURE__ */ jsx(
45
- Typography,
46
- {
47
- padding: 2,
48
- fontFamily: "monospace",
49
- variant: "body1",
50
- sx: { overflowWrap: "break-word", wordBreak: "break-all" },
51
- children: payloadString
52
- }
53
- ) }),
54
- /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(ContentCopyIcon, {}) })
55
- ] }),
56
- 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
57
- ] });
58
- };
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.vars.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");
59
52
 
60
53
  // src/components/Details/DataDetails.tsx
61
- import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
62
- var PayloadDataDetails = ({
63
- size,
64
- badge,
65
- payload,
66
- ...props
67
- }) => {
54
+ var PayloadDataDetails = /* @__PURE__ */ __name(({ size, badge, payload, ...props }) => {
68
55
  const payloadString = payload ? JSON.stringify(PayloadBuilder2.hashableFields(payload), null, 2) : "";
69
56
  const [viewSourceOpen, setViewSourceOpen] = useState(false);
70
57
  const hash = usePayloadHash(payload);
@@ -74,91 +61,87 @@ var PayloadDataDetails = ({
74
61
  }
75
62
  const actions = [
76
63
  {
77
- icon: /* @__PURE__ */ jsx2(VisibilityIcon, {}),
64
+ icon: /* @__PURE__ */ React2.createElement(VisibilityIcon, null),
78
65
  name: "View",
79
- onClick: () => setViewSourceOpen(true)
66
+ onClick: /* @__PURE__ */ __name(() => setViewSourceOpen(true), "onClick")
80
67
  },
81
68
  {
82
- icon: /* @__PURE__ */ jsx2(ContentCopyIcon2, {}),
69
+ icon: /* @__PURE__ */ React2.createElement(ContentCopyIcon2, null),
83
70
  name: "Copy",
84
- onClick: () => forget(navigator.clipboard.writeText(hash ?? ""))
71
+ onClick: /* @__PURE__ */ __name(() => forget(navigator.clipboard.writeText(hash ?? "")), "onClick")
85
72
  }
86
73
  ];
87
- const onCopy = () => {
74
+ const onCopy = /* @__PURE__ */ __name(() => {
88
75
  forget(navigator.clipboard.writeText(payloadString));
89
- };
90
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
91
- /* @__PURE__ */ jsx2(
92
- Property,
93
- {
94
- titleProps: { elevation },
95
- badge,
96
- size,
97
- actions,
98
- title: "Payload Hash",
99
- value: hash ?? "<Unknown>",
100
- tip: "This is the payload hash",
101
- ...props
102
- }
103
- ),
104
- /* @__PURE__ */ jsxs2(Dialog, { open: viewSourceOpen, onClose: () => setViewSourceOpen(false), children: [
105
- /* @__PURE__ */ jsx2(DialogTitle, { children: "Hash Source" }),
106
- /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(PayloadHashSourceDetails, { noTitle: true, payload }) }),
107
- /* @__PURE__ */ jsxs2(DialogActions, { children: [
108
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: onCopy, children: "Copy" }),
109
- /* @__PURE__ */ jsx2(ButtonEx, { color: "secondary", onClick: () => setViewSourceOpen(false), children: "Close" })
110
- ] })
111
- ] })
112
- ] });
113
- };
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");
114
102
 
115
103
  // src/components/Details/Details.tsx
116
104
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
105
+ import React5 from "react";
117
106
 
118
107
  // src/components/Details/JsonDetails.tsx
119
- import {
120
- Paper,
121
- useMediaQuery,
122
- useTheme as useTheme2
123
- } from "@mui/material";
108
+ import { Paper, useMediaQuery, useTheme as useTheme2 } from "@mui/material";
124
109
  import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
125
110
  import { PropertyGroup } from "@xyo-network/react-property";
126
- import { jsx as jsx3 } from "react/jsx-runtime";
127
- var PayloadJsonDetails = ({
128
- jsonViewProps,
129
- payload,
130
- ...props
131
- }) => {
111
+ import React3 from "react";
112
+ var PayloadJsonDetails = /* @__PURE__ */ __name(({ jsonViewProps, payload, ...props }) => {
132
113
  const { breakpoints } = useTheme2();
133
114
  const belowSm = useMediaQuery(breakpoints.down("sm"));
134
115
  let elevation = 2;
135
116
  if (props.paper) {
136
117
  elevation += props.elevation ?? 0;
137
118
  }
138
- return /* @__PURE__ */ jsx3(PropertyGroup, { titleProps: { elevation }, title: "JSON", tip: "The raw JSON of the payload", ...props, children: /* @__PURE__ */ jsx3(
139
- Paper,
140
- {
141
- square: true,
142
- variant: "elevation",
143
- style: {
144
- overflow: "hidden",
145
- padding: "16px",
146
- width: "100%"
147
- },
148
- children: /* @__PURE__ */ jsx3(
149
- JsonViewerEx,
150
- {
151
- groupArraysAfterLength: 20,
152
- style: { overflow: "hidden" },
153
- value: payload,
154
- enableClipboard: true,
155
- collapseStringsAfterLength: belowSm ? 24 : 32,
156
- ...jsonViewProps
157
- }
158
- )
119
+ return /* @__PURE__ */ React3.createElement(PropertyGroup, {
120
+ titleProps: {
121
+ elevation
122
+ },
123
+ title: "JSON",
124
+ tip: "The raw JSON of the payload",
125
+ ...props
126
+ }, /* @__PURE__ */ React3.createElement(Paper, {
127
+ square: true,
128
+ variant: "elevation",
129
+ style: {
130
+ overflow: "hidden",
131
+ padding: "16px",
132
+ width: "100%"
159
133
  }
160
- ) });
161
- };
134
+ }, /* @__PURE__ */ React3.createElement(JsonViewerEx, {
135
+ groupArraysAfterLength: 20,
136
+ style: {
137
+ overflow: "hidden"
138
+ },
139
+ value: payload,
140
+ enableClipboard: true,
141
+ collapseStringsAfterLength: belowSm ? 24 : 32,
142
+ ...jsonViewProps
143
+ })));
144
+ }, "PayloadJsonDetails");
162
145
 
163
146
  // src/components/Details/ValidationDetails/ValidationDetails.tsx
164
147
  import { Typography as Typography2 } from "@mui/material";
@@ -167,49 +150,69 @@ import { usePromise } from "@xylabs/react-promise";
167
150
  import { PayloadValidator } from "@xyo-network/payload-validator";
168
151
  import { Property as Property2, PropertyGroup as PropertyGroup2 } from "@xyo-network/react-property";
169
152
  import { SchemaProperty } from "@xyo-network/react-schema";
170
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
171
- var PayloadValidationDetails = ({
172
- skipBody = false,
173
- value,
174
- ...props
175
- }) => {
176
- const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [value]);
153
+ import React4 from "react";
154
+ var PayloadValidationDetails = /* @__PURE__ */ __name(({ skipBody = false, value, ...props }) => {
155
+ const [validateErrors] = usePromise(async () => value ? await new PayloadValidator(value).validate() : void 0, [
156
+ value
157
+ ]);
177
158
  const bodyErrors = skipBody ? [] : validateErrors ?? [];
178
- const errors = [...bodyErrors];
159
+ const errors = [
160
+ ...bodyErrors
161
+ ];
179
162
  let elevation = 2;
180
163
  if (props.paper) {
181
164
  elevation += props.elevation ?? 0;
182
165
  }
183
- return /* @__PURE__ */ jsxs3(PropertyGroup2, { titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload", ...props, children: [
184
- /* @__PURE__ */ jsx4(
185
- Property2,
186
- {
187
- titleProps: { elevation },
188
- flexGrow: 1,
189
- title: "Valid",
190
- value: errors.length === 0 ? "True" : "False",
191
- tip: errors.length > 0 ? /* @__PURE__ */ jsx4(FlexCol2, { children: errors.map((error, index) => {
192
- return /* @__PURE__ */ jsx4(Typography2, { children: error.toString() }, index);
193
- }) }) : /* @__PURE__ */ jsx4(Typography2, { children: "No Errors" })
194
- }
195
- ),
196
- value?.schema && /* @__PURE__ */ jsx4(SchemaProperty, { flexGrow: 1, titleProps: { elevation }, value: value.schema })
197
- ] });
198
- };
166
+ return /* @__PURE__ */ React4.createElement(PropertyGroup2, {
167
+ titleProps: {
168
+ elevation
169
+ },
170
+ title: "Validation",
171
+ tip: "The results from validating the payload",
172
+ ...props
173
+ }, /* @__PURE__ */ React4.createElement(Property2, {
174
+ titleProps: {
175
+ elevation
176
+ },
177
+ flexGrow: 1,
178
+ title: "Valid",
179
+ value: errors.length === 0 ? "True" : "False",
180
+ tip: errors.length > 0 ? /* @__PURE__ */ React4.createElement(FlexCol2, null, errors.map((error, index) => {
181
+ return /* @__PURE__ */ React4.createElement(Typography2, {
182
+ key: index
183
+ }, error.toString());
184
+ })) : /* @__PURE__ */ React4.createElement(Typography2, null, "No Errors")
185
+ }), value?.schema && /* @__PURE__ */ React4.createElement(SchemaProperty, {
186
+ flexGrow: 1,
187
+ titleProps: {
188
+ elevation
189
+ },
190
+ value: value.schema
191
+ }));
192
+ }, "PayloadValidationDetails");
199
193
 
200
194
  // src/components/Details/Details.tsx
201
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
202
- var PayloadDetails = ({
203
- paper,
204
- payload,
205
- ...props
206
- }) => {
207
- return /* @__PURE__ */ jsxs4(FlexCol3, { gap: 1, justifyContent: "flex-start", alignItems: "stretch", marginTop: 2, marginBottom: 8, ...props, children: [
208
- /* @__PURE__ */ jsx5(PayloadDataDetails, { paper, size: "large", badge: true, payload }),
209
- /* @__PURE__ */ jsx5(PayloadValidationDetails, { paper, value: payload }),
210
- /* @__PURE__ */ jsx5(PayloadJsonDetails, { paper, payload })
211
- ] });
212
- };
195
+ var PayloadDetails = /* @__PURE__ */ __name(({ paper, payload, ...props }) => {
196
+ return /* @__PURE__ */ React5.createElement(FlexCol3, {
197
+ gap: 1,
198
+ justifyContent: "flex-start",
199
+ alignItems: "stretch",
200
+ marginTop: 2,
201
+ marginBottom: 8,
202
+ ...props
203
+ }, /* @__PURE__ */ React5.createElement(PayloadDataDetails, {
204
+ paper,
205
+ size: "large",
206
+ badge: true,
207
+ payload
208
+ }), /* @__PURE__ */ React5.createElement(PayloadValidationDetails, {
209
+ paper,
210
+ value: payload
211
+ }), /* @__PURE__ */ React5.createElement(PayloadJsonDetails, {
212
+ paper,
213
+ payload
214
+ }));
215
+ }, "PayloadDetails");
213
216
  PayloadDetails.displayName = "PayloadDetails";
214
217
  export {
215
218
  PayloadDataDetails,
@@ -1 +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 {\n Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport { forget } from '@xylabs/forget'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { Property } from '@xyo-network/react-property'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport { 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> = ({\n size, badge, payload, ...props\n}) => {\n const payloadString = payload ? JSON.stringify(PayloadBuilder.hashableFields(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 {\n IconButton, Typography, useTheme,\n} from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport {\n FlexCol, FlexGrowRow, FlexRow,\n} from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { 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> = ({\n noTitle = false, payload, ...props\n}) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadBuilder.hashableFields(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.vars.palette.divider} justifyContent=\"start\">\n <Typography\n padding={2}\n fontFamily=\"monospace\"\n variant=\"body1\"\n sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}\n >\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Payload } from '@xyo-network/payload-model'\nimport React 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: React.FC<PayloadDetailsProps> = ({\n paper, payload, ...props\n}) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} {...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 {\n Paper, useMediaQuery, useTheme,\n} from '@mui/material'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport type { PropertyGroupProps } from '@xyo-network/react-property'\nimport { PropertyGroup } 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> = ({\n jsonViewProps, payload, ...props\n}) => {\n const { breakpoints } = 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 return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper\n square\n variant=\"elevation\"\n style={{\n overflow: 'hidden', padding: '16px', width: '100%',\n }}\n >\n <JsonViewerEx\n groupArraysAfterLength={20}\n style={{ overflow: 'hidden' }}\n value={payload}\n enableClipboard\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 type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({\n skipBody = false, value, ...props\n}) => {\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":["ContentCopyIcon","PayloadBuilder","jsx","jsxs","PayloadBuilder","ContentCopyIcon","FlexCol","useTheme","jsx","Typography","FlexCol","Property","PropertyGroup","jsx","jsxs","jsx","jsxs","FlexCol"]}
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 {\n Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport { forget } from '@xylabs/forget'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { Property } from '@xyo-network/react-property'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport { 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> = ({\n size, badge, payload, ...props\n}) => {\n const payloadString = payload ? JSON.stringify(PayloadBuilder.hashableFields(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 {\n IconButton, Typography, useTheme,\n} from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport {\n FlexCol, FlexGrowRow, FlexRow,\n} from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { 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> = ({\n noTitle = false, payload, ...props\n}) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadBuilder.hashableFields(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.vars.palette.divider} justifyContent=\"start\">\n <Typography\n padding={2}\n fontFamily=\"monospace\"\n variant=\"body1\"\n sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}\n >\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Payload } from '@xyo-network/payload-model'\nimport React 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: React.FC<PayloadDetailsProps> = ({\n paper, payload, ...props\n}) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} {...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 {\n Paper, useMediaQuery, useTheme,\n} from '@mui/material'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport type { PropertyGroupProps } from '@xyo-network/react-property'\nimport { PropertyGroup } 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> = ({\n jsonViewProps, payload, ...props\n}) => {\n const { breakpoints } = 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 return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper\n square\n variant=\"elevation\"\n style={{\n overflow: 'hidden', padding: '16px', width: '100%',\n }}\n >\n <JsonViewerEx\n groupArraysAfterLength={20}\n style={{ overflow: 'hidden' }}\n value={payload}\n enableClipboard\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 type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({\n skipBody = false, value, ...props\n}) => {\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":";;;;AAAA,SAASA,eAAeC,kBAAiBC,cAAcC,sBAAsB;AAC7E,SACEC,QAAQC,eAAeC,eAAeC,mBACjC;AACP,SAASC,cAAc;AACvB,SAASC,gBAAgB;AACzB,SAASC,kBAAAA,uBAAsB;AAG/B,SAASC,gBAAgB;AAEzB,SAASC,sBAAsB;AAC/B,OAAOC,UAASC,gBAAgB;;;ACZhC,SAASC,eAAeC,uBAAuB;AAC/C,SACEC,YAAYC,YAAYC,gBACnB;AAEP,SACEC,SAASC,aAAaC,eACjB;AACP,SAASC,sBAAsB;AAC/B,SAASC,sBAAsB;AAE/B,OAAOC,WAAW;AAOX,IAAMC,2BAAoE,wBAAC,EAChFC,UAAU,OAAOC,SAAS,GAAGC,MAAAA,MAC9B;AACC,QAAMC,QAAQC,SAAAA;AACd,QAAMC,gBAAgBJ,UAAUK,KAAKC,UAAUC,eAAeC,eAAeR,OAAAA,GAAU,MAAM,CAAA,IAAK;AAElG,SACE,sBAAA,cAACS,SAAAA;IAAQC,YAAW;IAAW,GAAGT;KAC/BF,UACG,OAEE,sBAAA,cAACY,SAAAA;IAAQC,QAAQ;IAAGC,gBAAe;KACjC,sBAAA,cAACC,YAAAA,MAAW,aAAA,GACZ,sBAAA,cAACC,gBAAAA;IAAeC,OAAM;KAAc,sDAAA,CAAA,GAG5C,sBAAA,cAACL,SAAAA,MACC,sBAAA,cAACM,aAAAA;IAAYC,YAAAA;IAAWC,QAAQ;IAAGC,aAAalB,MAAMmB,KAAKC,QAAQC;IAASV,gBAAe;KACzF,sBAAA,cAACC,YAAAA;IACCU,SAAS;IACTC,YAAW;IACXC,SAAQ;IACRC,IAAI;MAAEC,cAAc;MAAcC,WAAW;IAAY;KAExDzB,aAAAA,CAAAA,GAGL,sBAAA,cAAC0B,YAAAA,MACC,sBAAA,cAACC,iBAAAA,IAAAA,CAAAA,CAAAA,GAGJhC,UAEK,sBAAA,cAACY,SAAAA;IAAQC,QAAQ;IAAGC,gBAAe;KACjC,sBAAA,cAACC,YAAAA;IAAWY,SAAQ;KAAQ,uGAAA,CAAA,IAKhC,IAAA;AAGV,GA1CiF;;;ADI1E,IAAMM,qBAAwD,wBAAC,EACpEC,MAAMC,OAAOC,SAAS,GAAGC,MAAAA,MAC1B;AACC,QAAMC,gBAAgBF,UAAUG,KAAKC,UAAUC,gBAAeC,eAAeN,OAAAA,GAAU,MAAM,CAAA,IAAK;AAElG,QAAM,CAACO,gBAAgBC,iBAAAA,IAAqBC,SAAS,KAAA;AACrD,QAAMC,OAAOC,eAAeX,OAAAA;AAE5B,MAAIY,YAAY;AAChB,MAAIX,MAAMY,OAAO;AACfD,iBAAaX,MAAMW,aAAa;EAClC;AAEA,QAAME,UAA4B;IAChC;MACEC,MAAM,gBAAAC,OAAA,cAACC,gBAAAA,IAAAA;MACPC,MAAM;MACNC,SAAS,6BAAMX,kBAAkB,IAAA,GAAxB;IACX;IACA;MACEO,MAAM,gBAAAC,OAAA,cAACI,kBAAAA,IAAAA;MACPF,MAAM;MACNC,SAAS,6BAAME,OAAOC,UAAUC,UAAUC,UAAUd,QAAQ,EAAA,CAAA,GAAnD;IACX;;AAGF,QAAMe,SAAS,6BAAA;AACbJ,WAAOC,UAAUC,UAAUC,UAAUtB,aAAAA,CAAAA;EACvC,GAFe;AAIf,SACE,gBAAAc,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACU,UAAAA;IACCC,YAAY;MAAEf;IAAU;IACxBb;IACAD;IACAgB;IACAc,OAAM;IACNC,OAAOnB,QAAQ;IACfoB,KAAI;IACH,GAAG7B;MAEN,gBAAAe,OAAA,cAACe,QAAAA;IAAOC,MAAMzB;IAAgB0B,SAAS,6BAAMzB,kBAAkB,KAAA,GAAxB;KACrC,gBAAAQ,OAAA,cAACkB,aAAAA,MAAY,aAAA,GACb,gBAAAlB,OAAA,cAACmB,eAAAA,MACC,gBAAAnB,OAAA,cAACoB,0BAAAA;IAAyBC,SAAAA;IAAQrC;OAEpC,gBAAAgB,OAAA,cAACsB,eAAAA,MACC,gBAAAtB,OAAA,cAACuB,UAAAA;IAASC,OAAM;IAAYrB,SAASM;KAAQ,MAAA,GAG7C,gBAAAT,OAAA,cAACuB,UAAAA;IAASC,OAAM;IAAYrB,SAAS,6BAAMX,kBAAkB,KAAA,GAAxB;KAAgC,OAAA,CAAA,CAAA,CAAA;AAO/E,GA1DqE;;;AErBrE,SAASiC,WAAAA,gBAAe;AAExB,OAAOC,YAAW;;;ACHlB,SACEC,OAAOC,eAAeC,YAAAA,iBACjB;AAGP,SAASC,oBAAoB;AAE7B,SAASC,qBAAqB;AAC9B,OAAOC,YAAW;AAOX,IAAMC,qBAAwD,wBAAC,EACpEC,eAAeC,SAAS,GAAGC,MAAAA,MAC5B;AACC,QAAM,EAAEC,YAAW,IAAKC,UAAAA;AACxB,QAAMC,UAAUC,cAAcH,YAAYI,KAAK,IAAA,CAAA;AAE/C,MAAIC,YAAY;AAChB,MAAIN,MAAMO,OAAO;AACfD,iBAAaN,MAAMM,aAAa;EAClC;AAEA,SACE,gBAAAE,OAAA,cAACC,eAAAA;IAAcC,YAAY;MAAEJ;IAAU;IAAGK,OAAM;IAAOC,KAAI;IAA+B,GAAGZ;KAC3F,gBAAAQ,OAAA,cAACK,OAAAA;IACCC,QAAAA;IACAC,SAAQ;IACRC,OAAO;MACLC,UAAU;MAAUC,SAAS;MAAQC,OAAO;IAC9C;KAEA,gBAAAX,OAAA,cAACY,cAAAA;IACCC,wBAAwB;IACxBL,OAAO;MAAEC,UAAU;IAAS;IAC5BK,OAAOvB;IACPwB,iBAAAA;IACAC,4BAA4BrB,UAAU,KAAK;IAC1C,GAAGL;;AAKd,GA/BqE;;;ACfrE,SAAS2B,cAAAA,mBAAkB;AAC3B,SAASC,WAAAA,gBAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;AACjC,SAASC,YAAAA,WAAUC,iBAAAA,sBAAqB;AACxC,SAASC,sBAAsB;AAC/B,OAAOC,YAAW;AAIX,IAAMC,2BAAoE,wBAAC,EAChFC,WAAW,OAAOC,OAAO,GAAGC,MAAAA,MAC7B;AACC,QAAM,CAACC,cAAAA,IAAkBC,WAAW,YAAaH,QAAQ,MAAM,IAAII,iBAAiBJ,KAAAA,EAAOK,SAAQ,IAAKC,QAAY;IAACN;GAAM;AAE3H,QAAMO,aAAaR,WAAW,CAAA,IAAMG,kBAAkB,CAAA;AACtD,QAAMM,SAAkB;OAAID;;AAE5B,MAAIE,YAAY;AAChB,MAAIR,MAAMS,OAAO;AACfD,iBAAaR,MAAMQ,aAAa;EAClC;AAEA,SACE,gBAAAE,OAAA,cAACC,gBAAAA;IAAcC,YAAY;MAAEJ;IAAU;IAAGK,OAAM;IAAaC,KAAI;IAA2C,GAAGd;KAC7G,gBAAAU,OAAA,cAACK,WAAAA;IACCH,YAAY;MAAEJ;IAAU;IACxBQ,UAAU;IACVH,OAAM;IACNd,OAAOQ,OAAOU,WAAW,IAAI,SAAS;IACtCH,KACEP,OAAOU,SAAS,IAEV,gBAAAP,OAAA,cAACQ,UAAAA,MACEX,OAAOY,IAAI,CAACC,OAAOC,UAAAA;AAClB,aAAO,gBAAAX,OAAA,cAACY,aAAAA;QAAWC,KAAKF;SAAQD,MAAMI,SAAQ,CAAA;IAChD,CAAA,CAAA,IAGJ,gBAAAd,OAAA,cAACY,aAAAA,MAAW,WAAA;MAGnBvB,OAAO0B,UAAU,gBAAAf,OAAA,cAACgB,gBAAAA;IAAeV,UAAU;IAAGJ,YAAY;MAAEJ;IAAU;IAAGT,OAAOA,MAAM0B;;AAG7F,GAnCiF;;;AFO1E,IAAME,iBAAgD,wBAAC,EAC5DC,OAAOC,SAAS,GAAGC,MAAAA,MACpB;AACC,SACE,gBAAAC,OAAA,cAACC,UAAAA;IAAQC,KAAK;IAAGC,gBAAe;IAAaC,YAAW;IAAUC,WAAW;IAAGC,cAAc;IAAI,GAAGP;KACnG,gBAAAC,OAAA,cAACO,oBAAAA;IAAmBV;IAAcW,MAAK;IAAQC,OAAAA;IAAMX;MACrD,gBAAAE,OAAA,cAACU,0BAAAA;IAAyBb;IAAcc,OAAOb;MAC/C,gBAAAE,OAAA,cAACY,oBAAAA;IAAmBf;IAAcC;;AAGxC,GAV6D;AAY7DF,eAAeiB,cAAc;","names":["ContentCopy","ContentCopyIcon","Visibility","VisibilityIcon","Dialog","DialogActions","DialogContent","DialogTitle","forget","ButtonEx","PayloadBuilder","Property","usePayloadHash","React","useState","ContentCopy","ContentCopyIcon","IconButton","Typography","useTheme","FlexCol","FlexGrowRow","FlexRow","QuickTipButton","PayloadBuilder","React","PayloadHashSourceDetails","noTitle","payload","props","theme","useTheme","payloadString","JSON","stringify","PayloadBuilder","hashableFields","FlexCol","alignItems","FlexRow","margin","justifyContent","Typography","QuickTipButton","title","FlexGrowRow","background","border","borderColor","vars","palette","divider","padding","fontFamily","variant","sx","overflowWrap","wordBreak","IconButton","ContentCopyIcon","PayloadDataDetails","size","badge","payload","props","payloadString","JSON","stringify","PayloadBuilder","hashableFields","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","Paper","useMediaQuery","useTheme","JsonViewerEx","PropertyGroup","React","PayloadJsonDetails","jsonViewProps","payload","props","breakpoints","useTheme","belowSm","useMediaQuery","down","elevation","paper","React","PropertyGroup","titleProps","title","tip","Paper","square","variant","style","overflow","padding","width","JsonViewerEx","groupArraysAfterLength","value","enableClipboard","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","paper","payload","props","React","FlexCol","gap","justifyContent","alignItems","marginTop","marginBottom","PayloadDataDetails","size","badge","PayloadValidationDetails","value","PayloadJsonDetails","displayName"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-payload-details",
3
- "version": "7.4.1",
3
+ "version": "7.5.0",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,37 +43,37 @@
43
43
  "src"
44
44
  ],
45
45
  "dependencies": {
46
- "@xylabs/forget": "~5.0.50",
47
- "@xylabs/react-button": "~7.1.8",
48
- "@xylabs/react-flexbox": "~7.1.8",
49
- "@xylabs/react-promise": "~7.1.8",
50
- "@xylabs/react-quick-tip-button": "~7.1.8",
51
- "@xyo-network/payload-builder": "~5.2.17",
52
- "@xyo-network/payload-model": "~5.2.17",
53
- "@xyo-network/payload-validator": "~5.2.17",
54
- "@xyo-network/react-payload-raw-info": "^7.4.1",
55
- "@xyo-network/react-property": "^7.4.1",
56
- "@xyo-network/react-schema": "^7.4.1",
57
- "@xyo-network/react-shared": "^7.4.1"
46
+ "@xylabs/forget": "~5.0.64",
47
+ "@xylabs/react-button": "~7.1.9",
48
+ "@xylabs/react-flexbox": "~7.1.9",
49
+ "@xylabs/react-promise": "~7.1.9",
50
+ "@xylabs/react-quick-tip-button": "~7.1.9",
51
+ "@xyo-network/payload-builder": "~5.3.2",
52
+ "@xyo-network/payload-model": "~5.3.2",
53
+ "@xyo-network/payload-validator": "~5.3.2",
54
+ "@xyo-network/react-payload-raw-info": "7.5.0",
55
+ "@xyo-network/react-property": "7.5.0",
56
+ "@xyo-network/react-schema": "7.5.0",
57
+ "@xyo-network/react-shared": "7.5.0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@emotion/react": "~11.14.0",
61
61
  "@emotion/styled": "~11.14.1",
62
- "@mui/icons-material": "~7.3.6",
63
- "@mui/material": "~7.3.6",
64
- "@storybook/react-vite": "~10.1.4",
65
- "@types/react": "^19.2.7",
66
- "@xylabs/ts-scripts-yarn3": "~7.2.8",
67
- "@xylabs/tsconfig": "~7.2.8",
68
- "@xylabs/tsconfig-dom": "~7.2.8",
69
- "@xylabs/tsconfig-react": "~7.2.8",
70
- "@xyo-network/react-storybook": "^7.4.1",
71
- "react": "^19.2.1",
72
- "react-dom": "^19.2.1",
73
- "react-router-dom": "^7.10.0",
74
- "storybook": "~10.1.4",
62
+ "@mui/icons-material": "~7.3.7",
63
+ "@mui/material": "~7.3.7",
64
+ "@storybook/react-vite": "~10.2.1",
65
+ "@types/react": "^19.2.10",
66
+ "@xylabs/ts-scripts-yarn3": "~7.3.2",
67
+ "@xylabs/tsconfig": "~7.3.2",
68
+ "@xylabs/tsconfig-dom": "~7.3.2",
69
+ "@xylabs/tsconfig-react": "~7.3.2",
70
+ "@xyo-network/react-storybook": "7.5.0",
71
+ "react": "^19.2.4",
72
+ "react-dom": "^19.2.4",
73
+ "react-router-dom": "^7.13.0",
74
+ "storybook": "~10.2.1",
75
75
  "typescript": "^5.9.3",
76
- "vite": "~7.2.6"
76
+ "vite": "~7.3.1"
77
77
  },
78
78
  "peerDependencies": {
79
79
  "@emotion/react": "~11",
@@ -87,4 +87,4 @@
87
87
  "access": "public"
88
88
  },
89
89
  "docs": "dist/docs.json"
90
- }
90
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Meta, StoryFn } from '@storybook/react-vite'
2
- import type { Payload } from '@xyo-network/payload-model'
2
+ import { asSchema, type Payload } from '@xyo-network/payload-model'
3
3
  import { sampleIdPayload } from '@xyo-network/react-storybook'
4
4
  import React from 'react'
5
5
  import { BrowserRouter } from 'react-router-dom'
@@ -44,7 +44,7 @@ SkipBody.args = {
44
44
  value: {
45
45
  _hash: '44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a',
46
46
  _timestamp: Date.now(),
47
- schema: 'network.xyo.test',
47
+ schema: asSchema('network.xyo.test', true),
48
48
  } as Payload,
49
49
  }
50
50