@xyo-network/react-payload-raw-info 2.69.7 → 2.70.3

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 (250) hide show
  1. package/dist/browser/components/Button/RawInfoButton.d.cts +3 -3
  2. package/dist/browser/components/Button/RawInfoButton.d.cts.map +1 -1
  3. package/dist/browser/components/Button/RawInfoButton.d.mts +3 -3
  4. package/dist/browser/components/Button/RawInfoButton.d.mts.map +1 -1
  5. package/dist/browser/components/Button/RawInfoButton.d.ts +3 -3
  6. package/dist/browser/components/Button/RawInfoButton.d.ts.map +1 -1
  7. package/dist/browser/components/Button/RawInfoIconButton.d.cts +15 -0
  8. package/dist/browser/components/Button/RawInfoIconButton.d.cts.map +1 -0
  9. package/dist/browser/components/Button/RawInfoIconButton.d.mts +15 -0
  10. package/dist/browser/components/Button/RawInfoIconButton.d.mts.map +1 -0
  11. package/dist/browser/components/Button/RawInfoIconButton.d.ts +15 -0
  12. package/dist/browser/components/Button/RawInfoIconButton.d.ts.map +1 -0
  13. package/dist/browser/components/Button/index.d.cts +1 -0
  14. package/dist/browser/components/Button/index.d.cts.map +1 -1
  15. package/dist/browser/components/Button/index.d.mts +1 -0
  16. package/dist/browser/components/Button/index.d.mts.map +1 -1
  17. package/dist/browser/components/Button/index.d.ts +1 -0
  18. package/dist/browser/components/Button/index.d.ts.map +1 -1
  19. package/dist/browser/components/Button/lib/IconSize.d.cts +2 -0
  20. package/dist/browser/components/Button/lib/IconSize.d.cts.map +1 -0
  21. package/dist/browser/components/Button/lib/IconSize.d.mts +2 -0
  22. package/dist/browser/components/Button/lib/IconSize.d.mts.map +1 -0
  23. package/dist/browser/components/Button/lib/IconSize.d.ts +2 -0
  24. package/dist/browser/components/Button/lib/IconSize.d.ts.map +1 -0
  25. package/dist/browser/components/Button/lib/index.d.cts +3 -0
  26. package/dist/browser/components/Button/lib/index.d.cts.map +1 -0
  27. package/dist/browser/components/Button/lib/index.d.mts +3 -0
  28. package/dist/browser/components/Button/lib/index.d.mts.map +1 -0
  29. package/dist/browser/components/Button/lib/index.d.ts +3 -0
  30. package/dist/browser/components/Button/lib/index.d.ts.map +1 -0
  31. package/dist/browser/components/Button/lib/presetIconSize.d.cts +3 -0
  32. package/dist/browser/components/Button/lib/presetIconSize.d.cts.map +1 -0
  33. package/dist/browser/components/Button/lib/presetIconSize.d.mts +3 -0
  34. package/dist/browser/components/Button/lib/presetIconSize.d.mts.map +1 -0
  35. package/dist/browser/components/Button/lib/presetIconSize.d.ts +3 -0
  36. package/dist/browser/components/Button/lib/presetIconSize.d.ts.map +1 -0
  37. package/dist/browser/components/index.d.cts +1 -3
  38. package/dist/browser/components/index.d.cts.map +1 -1
  39. package/dist/browser/components/index.d.mts +1 -3
  40. package/dist/browser/components/index.d.mts.map +1 -1
  41. package/dist/browser/components/index.d.ts +1 -3
  42. package/dist/browser/components/index.d.ts.map +1 -1
  43. package/dist/{node/components → browser/components/shared/Dialog}/PayloadCollapse.d.cts +2 -3
  44. package/dist/browser/components/shared/Dialog/PayloadCollapse.d.cts.map +1 -0
  45. package/dist/browser/components/{PayloadCollapse.d.mts → shared/Dialog/PayloadCollapse.d.mts} +2 -3
  46. package/dist/browser/components/shared/Dialog/PayloadCollapse.d.mts.map +1 -0
  47. package/dist/{node/components → browser/components/shared/Dialog}/PayloadCollapse.d.ts +2 -3
  48. package/dist/browser/components/shared/Dialog/PayloadCollapse.d.ts.map +1 -0
  49. package/dist/browser/components/{Dialog → shared/Dialog}/RawInfoDialog.d.cts +2 -1
  50. package/dist/browser/components/shared/Dialog/RawInfoDialog.d.cts.map +1 -0
  51. package/dist/{node/components → browser/components/shared}/Dialog/RawInfoDialog.d.mts +2 -1
  52. package/dist/browser/components/shared/Dialog/RawInfoDialog.d.mts.map +1 -0
  53. package/dist/{node/components → browser/components/shared}/Dialog/RawInfoDialog.d.ts +2 -1
  54. package/dist/browser/components/shared/Dialog/RawInfoDialog.d.ts.map +1 -0
  55. package/dist/browser/components/shared/Dialog/index.d.cts +3 -0
  56. package/dist/browser/components/shared/Dialog/index.d.cts.map +1 -0
  57. package/dist/browser/components/shared/Dialog/index.d.mts +3 -0
  58. package/dist/browser/components/shared/Dialog/index.d.mts.map +1 -0
  59. package/dist/browser/components/shared/Dialog/index.d.ts +3 -0
  60. package/dist/browser/components/shared/Dialog/index.d.ts.map +1 -0
  61. package/dist/browser/components/shared/JsonViewerEx.d.cts +4 -0
  62. package/dist/browser/components/shared/JsonViewerEx.d.cts.map +1 -0
  63. package/dist/browser/components/shared/JsonViewerEx.d.mts +4 -0
  64. package/dist/browser/components/shared/JsonViewerEx.d.mts.map +1 -0
  65. package/dist/browser/components/shared/JsonViewerEx.d.ts +4 -0
  66. package/dist/browser/components/shared/JsonViewerEx.d.ts.map +1 -0
  67. package/dist/browser/components/shared/index.d.cts +2 -1
  68. package/dist/browser/components/shared/index.d.cts.map +1 -1
  69. package/dist/browser/components/shared/index.d.mts +2 -1
  70. package/dist/browser/components/shared/index.d.mts.map +1 -1
  71. package/dist/browser/components/shared/index.d.ts +2 -1
  72. package/dist/browser/components/shared/index.d.ts.map +1 -1
  73. package/dist/browser/components/styled/StyledChipLabel.d.cts +1 -1
  74. package/dist/browser/components/styled/StyledChipLabel.d.mts +1 -1
  75. package/dist/browser/components/styled/StyledChipLabel.d.ts +1 -1
  76. package/dist/browser/index.cjs +70 -63
  77. package/dist/browser/index.cjs.map +1 -1
  78. package/dist/browser/index.js +69 -62
  79. package/dist/browser/index.js.map +1 -1
  80. package/dist/browser/lib/ExpansionProps.d.cts +5 -0
  81. package/dist/browser/lib/ExpansionProps.d.cts.map +1 -0
  82. package/dist/browser/lib/ExpansionProps.d.mts +5 -0
  83. package/dist/browser/lib/ExpansionProps.d.mts.map +1 -0
  84. package/dist/browser/lib/ExpansionProps.d.ts +5 -0
  85. package/dist/browser/lib/ExpansionProps.d.ts.map +1 -0
  86. package/dist/browser/lib/index.d.cts +2 -0
  87. package/dist/browser/lib/index.d.cts.map +1 -0
  88. package/dist/browser/lib/index.d.mts +2 -0
  89. package/dist/browser/lib/index.d.mts.map +1 -0
  90. package/dist/browser/lib/index.d.ts +2 -0
  91. package/dist/browser/lib/index.d.ts.map +1 -0
  92. package/dist/node/components/Button/RawInfoButton.d.cts +3 -3
  93. package/dist/node/components/Button/RawInfoButton.d.cts.map +1 -1
  94. package/dist/node/components/Button/RawInfoButton.d.mts +3 -3
  95. package/dist/node/components/Button/RawInfoButton.d.mts.map +1 -1
  96. package/dist/node/components/Button/RawInfoButton.d.ts +3 -3
  97. package/dist/node/components/Button/RawInfoButton.d.ts.map +1 -1
  98. package/dist/node/components/Button/RawInfoIconButton.d.cts +15 -0
  99. package/dist/node/components/Button/RawInfoIconButton.d.cts.map +1 -0
  100. package/dist/node/components/Button/RawInfoIconButton.d.mts +15 -0
  101. package/dist/node/components/Button/RawInfoIconButton.d.mts.map +1 -0
  102. package/dist/node/components/Button/RawInfoIconButton.d.ts +15 -0
  103. package/dist/node/components/Button/RawInfoIconButton.d.ts.map +1 -0
  104. package/dist/node/components/Button/index.d.cts +1 -0
  105. package/dist/node/components/Button/index.d.cts.map +1 -1
  106. package/dist/node/components/Button/index.d.mts +1 -0
  107. package/dist/node/components/Button/index.d.mts.map +1 -1
  108. package/dist/node/components/Button/index.d.ts +1 -0
  109. package/dist/node/components/Button/index.d.ts.map +1 -1
  110. package/dist/node/components/Button/lib/IconSize.d.cts +2 -0
  111. package/dist/node/components/Button/lib/IconSize.d.cts.map +1 -0
  112. package/dist/node/components/Button/lib/IconSize.d.mts +2 -0
  113. package/dist/node/components/Button/lib/IconSize.d.mts.map +1 -0
  114. package/dist/node/components/Button/lib/IconSize.d.ts +2 -0
  115. package/dist/node/components/Button/lib/IconSize.d.ts.map +1 -0
  116. package/dist/node/components/Button/lib/index.d.cts +3 -0
  117. package/dist/node/components/Button/lib/index.d.cts.map +1 -0
  118. package/dist/node/components/Button/lib/index.d.mts +3 -0
  119. package/dist/node/components/Button/lib/index.d.mts.map +1 -0
  120. package/dist/node/components/Button/lib/index.d.ts +3 -0
  121. package/dist/node/components/Button/lib/index.d.ts.map +1 -0
  122. package/dist/node/components/Button/lib/presetIconSize.d.cts +3 -0
  123. package/dist/node/components/Button/lib/presetIconSize.d.cts.map +1 -0
  124. package/dist/node/components/Button/lib/presetIconSize.d.mts +3 -0
  125. package/dist/node/components/Button/lib/presetIconSize.d.mts.map +1 -0
  126. package/dist/node/components/Button/lib/presetIconSize.d.ts +3 -0
  127. package/dist/node/components/Button/lib/presetIconSize.d.ts.map +1 -0
  128. package/dist/node/components/index.d.cts +1 -3
  129. package/dist/node/components/index.d.cts.map +1 -1
  130. package/dist/node/components/index.d.mts +1 -3
  131. package/dist/node/components/index.d.mts.map +1 -1
  132. package/dist/node/components/index.d.ts +1 -3
  133. package/dist/node/components/index.d.ts.map +1 -1
  134. package/dist/{browser/components → node/components/shared/Dialog}/PayloadCollapse.d.cts +2 -3
  135. package/dist/node/components/shared/Dialog/PayloadCollapse.d.cts.map +1 -0
  136. package/dist/node/components/{PayloadCollapse.d.mts → shared/Dialog/PayloadCollapse.d.mts} +2 -3
  137. package/dist/node/components/shared/Dialog/PayloadCollapse.d.mts.map +1 -0
  138. package/dist/{browser/components → node/components/shared/Dialog}/PayloadCollapse.d.ts +2 -3
  139. package/dist/node/components/shared/Dialog/PayloadCollapse.d.ts.map +1 -0
  140. package/dist/node/components/{Dialog → shared/Dialog}/RawInfoDialog.d.cts +2 -1
  141. package/dist/node/components/shared/Dialog/RawInfoDialog.d.cts.map +1 -0
  142. package/dist/{browser/components → node/components/shared}/Dialog/RawInfoDialog.d.mts +2 -1
  143. package/dist/node/components/shared/Dialog/RawInfoDialog.d.mts.map +1 -0
  144. package/dist/{browser/components → node/components/shared}/Dialog/RawInfoDialog.d.ts +2 -1
  145. package/dist/node/components/shared/Dialog/RawInfoDialog.d.ts.map +1 -0
  146. package/dist/node/components/shared/Dialog/index.d.cts +3 -0
  147. package/dist/node/components/shared/Dialog/index.d.cts.map +1 -0
  148. package/dist/node/components/shared/Dialog/index.d.mts +3 -0
  149. package/dist/node/components/shared/Dialog/index.d.mts.map +1 -0
  150. package/dist/node/components/shared/Dialog/index.d.ts +3 -0
  151. package/dist/node/components/shared/Dialog/index.d.ts.map +1 -0
  152. package/dist/node/components/shared/JsonViewerEx.d.cts +4 -0
  153. package/dist/node/components/shared/JsonViewerEx.d.cts.map +1 -0
  154. package/dist/node/components/shared/JsonViewerEx.d.mts +4 -0
  155. package/dist/node/components/shared/JsonViewerEx.d.mts.map +1 -0
  156. package/dist/node/components/shared/JsonViewerEx.d.ts +4 -0
  157. package/dist/node/components/shared/JsonViewerEx.d.ts.map +1 -0
  158. package/dist/node/components/shared/index.d.cts +2 -1
  159. package/dist/node/components/shared/index.d.cts.map +1 -1
  160. package/dist/node/components/shared/index.d.mts +2 -1
  161. package/dist/node/components/shared/index.d.mts.map +1 -1
  162. package/dist/node/components/shared/index.d.ts +2 -1
  163. package/dist/node/components/shared/index.d.ts.map +1 -1
  164. package/dist/node/components/styled/StyledChipLabel.d.cts +1 -1
  165. package/dist/node/components/styled/StyledChipLabel.d.mts +1 -1
  166. package/dist/node/components/styled/StyledChipLabel.d.ts +1 -1
  167. package/dist/node/index.cjs +72 -64
  168. package/dist/node/index.cjs.map +1 -1
  169. package/dist/node/index.js +69 -62
  170. package/dist/node/index.js.map +1 -1
  171. package/dist/node/lib/ExpansionProps.d.cts +5 -0
  172. package/dist/node/lib/ExpansionProps.d.cts.map +1 -0
  173. package/dist/node/lib/ExpansionProps.d.mts +5 -0
  174. package/dist/node/lib/ExpansionProps.d.mts.map +1 -0
  175. package/dist/node/lib/ExpansionProps.d.ts +5 -0
  176. package/dist/node/lib/ExpansionProps.d.ts.map +1 -0
  177. package/dist/node/lib/index.d.cts +2 -0
  178. package/dist/node/lib/index.d.cts.map +1 -0
  179. package/dist/node/lib/index.d.mts +2 -0
  180. package/dist/node/lib/index.d.mts.map +1 -0
  181. package/dist/node/lib/index.d.ts +2 -0
  182. package/dist/node/lib/index.d.ts.map +1 -0
  183. package/package.json +3 -3
  184. package/src/components/Button/RawInfoButton.stories.tsx +1 -0
  185. package/src/components/Button/RawInfoButton.tsx +16 -19
  186. package/src/components/{RawInfoIcon.stories.tsx → Button/RawInfoIconButton.stories.tsx} +4 -3
  187. package/src/components/{RawInfoIcon.tsx → Button/RawInfoIconButton.tsx} +18 -23
  188. package/src/components/Button/index.ts +1 -0
  189. package/src/components/Button/lib/IconSize.ts +1 -0
  190. package/src/components/Button/lib/index.ts +2 -0
  191. package/src/components/Button/lib/presetIconSize.ts +15 -0
  192. package/src/components/index.ts +1 -3
  193. package/src/components/{PayloadCollapse.tsx → shared/Dialog/PayloadCollapse.tsx} +7 -7
  194. package/src/components/{Dialog → shared/Dialog}/RawInfoDialog.tsx +12 -4
  195. package/src/components/shared/Dialog/index.ts +2 -0
  196. package/src/components/shared/JsonViewerEx.tsx +21 -0
  197. package/src/components/shared/index.ts +2 -1
  198. package/src/lib/ExpansionProps.ts +4 -0
  199. package/src/lib/index.ts +1 -0
  200. package/dist/browser/components/Dialog/RawInfoDialog.d.cts.map +0 -1
  201. package/dist/browser/components/Dialog/RawInfoDialog.d.mts.map +0 -1
  202. package/dist/browser/components/Dialog/RawInfoDialog.d.ts.map +0 -1
  203. package/dist/browser/components/Dialog/index.d.cts +0 -2
  204. package/dist/browser/components/Dialog/index.d.cts.map +0 -1
  205. package/dist/browser/components/Dialog/index.d.mts +0 -2
  206. package/dist/browser/components/Dialog/index.d.mts.map +0 -1
  207. package/dist/browser/components/Dialog/index.d.ts +0 -2
  208. package/dist/browser/components/Dialog/index.d.ts.map +0 -1
  209. package/dist/browser/components/PayloadCollapse.d.cts.map +0 -1
  210. package/dist/browser/components/PayloadCollapse.d.mts.map +0 -1
  211. package/dist/browser/components/PayloadCollapse.d.ts.map +0 -1
  212. package/dist/browser/components/RawInfoIcon.d.cts +0 -15
  213. package/dist/browser/components/RawInfoIcon.d.cts.map +0 -1
  214. package/dist/browser/components/RawInfoIcon.d.mts +0 -15
  215. package/dist/browser/components/RawInfoIcon.d.mts.map +0 -1
  216. package/dist/browser/components/RawInfoIcon.d.ts +0 -15
  217. package/dist/browser/components/RawInfoIcon.d.ts.map +0 -1
  218. package/dist/browser/components/shared/JsonViewEx.d.cts +0 -4
  219. package/dist/browser/components/shared/JsonViewEx.d.cts.map +0 -1
  220. package/dist/browser/components/shared/JsonViewEx.d.mts +0 -4
  221. package/dist/browser/components/shared/JsonViewEx.d.mts.map +0 -1
  222. package/dist/browser/components/shared/JsonViewEx.d.ts +0 -4
  223. package/dist/browser/components/shared/JsonViewEx.d.ts.map +0 -1
  224. package/dist/node/components/Dialog/RawInfoDialog.d.cts.map +0 -1
  225. package/dist/node/components/Dialog/RawInfoDialog.d.mts.map +0 -1
  226. package/dist/node/components/Dialog/RawInfoDialog.d.ts.map +0 -1
  227. package/dist/node/components/Dialog/index.d.cts +0 -2
  228. package/dist/node/components/Dialog/index.d.cts.map +0 -1
  229. package/dist/node/components/Dialog/index.d.mts +0 -2
  230. package/dist/node/components/Dialog/index.d.mts.map +0 -1
  231. package/dist/node/components/Dialog/index.d.ts +0 -2
  232. package/dist/node/components/Dialog/index.d.ts.map +0 -1
  233. package/dist/node/components/PayloadCollapse.d.cts.map +0 -1
  234. package/dist/node/components/PayloadCollapse.d.mts.map +0 -1
  235. package/dist/node/components/PayloadCollapse.d.ts.map +0 -1
  236. package/dist/node/components/RawInfoIcon.d.cts +0 -15
  237. package/dist/node/components/RawInfoIcon.d.cts.map +0 -1
  238. package/dist/node/components/RawInfoIcon.d.mts +0 -15
  239. package/dist/node/components/RawInfoIcon.d.mts.map +0 -1
  240. package/dist/node/components/RawInfoIcon.d.ts +0 -15
  241. package/dist/node/components/RawInfoIcon.d.ts.map +0 -1
  242. package/dist/node/components/shared/JsonViewEx.d.cts +0 -4
  243. package/dist/node/components/shared/JsonViewEx.d.cts.map +0 -1
  244. package/dist/node/components/shared/JsonViewEx.d.mts +0 -4
  245. package/dist/node/components/shared/JsonViewEx.d.mts.map +0 -1
  246. package/dist/node/components/shared/JsonViewEx.d.ts +0 -4
  247. package/dist/node/components/shared/JsonViewEx.d.ts.map +0 -1
  248. package/src/components/Dialog/index.ts +0 -1
  249. package/src/components/shared/JsonViewEx.tsx +0 -33
  250. /package/src/components/{Dialog → shared/Dialog}/RawInfoDialog.stories.tsx +0 -0
@@ -30,9 +30,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
+ JsonViewerEx: () => JsonViewerEx,
33
34
  RawInfoButton: () => RawInfoButton,
34
35
  RawInfoDialog: () => RawInfoDialog,
35
- RawInfoIcon: () => RawInfoIcon,
36
+ RawInfoIconButton: () => RawInfoIconButton,
36
37
  RawInfoPayloadCollapse: () => RawInfoPayloadCollapse,
37
38
  StyledChipLabel: () => StyledChipLabel
38
39
  });
@@ -42,39 +43,39 @@ module.exports = __toCommonJS(src_exports);
42
43
  var import_react_button = require("@xylabs/react-button");
43
44
  var import_react = require("react");
44
45
 
45
- // src/components/Dialog/RawInfoDialog.tsx
46
- var import_material4 = require("@mui/material");
46
+ // src/components/img/index.ts
47
+ var import_xyo_color_logo = __toESM(require("./xyo-color-logo-LHR2SMEM.svg"), 1);
47
48
 
48
- // src/components/PayloadCollapse.tsx
49
+ // src/components/shared/Dialog/PayloadCollapse.tsx
49
50
  var import_material3 = require("@mui/material");
50
51
  var import_react_flexbox = require("@xylabs/react-flexbox");
51
52
  var import_react_promise = require("@xylabs/react-promise");
52
53
  var import_payload_builder = require("@xyo-network/payload-builder");
53
54
  var import_react_shared = require("@xyo-network/react-shared");
54
55
 
55
- // src/components/shared/JsonViewEx.tsx
56
+ // src/components/styled/StyledChipLabel.tsx
56
57
  var import_material = require("@mui/material");
58
+ var StyledChipLabel = (0, import_material.styled)(import_material.Typography, { name: "StyledChipLabel" })(({ theme }) => ({
59
+ display: "block",
60
+ lineHeight: 1,
61
+ overflow: "hidden",
62
+ paddingRight: theme.spacing(0.95),
63
+ textOverflow: "ellipsis",
64
+ whiteSpace: "nowrap"
65
+ }));
66
+
67
+ // src/components/shared/JsonViewerEx.tsx
68
+ var import_material2 = require("@mui/material");
69
+ var import_json_viewer = require("@textea/json-viewer");
57
70
  var import_react_invertible_theme = require("@xylabs/react-invertible-theme");
58
- var import_react_json_view = __toESM(require("react-json-view"), 1);
59
71
  var import_jsx_runtime = require("react/jsx-runtime");
60
- var JsonViewEx = (props) => {
61
- const theme = (0, import_material.useTheme)();
72
+ var JsonViewerEx = (props) => {
73
+ const theme = (0, import_material2.useTheme)();
62
74
  const { darkMode } = (0, import_react_invertible_theme.useColorSchemeEx)();
63
- const onCopy = async (event) => {
64
- if (event.src) {
65
- try {
66
- const copyContent = typeof event.src === "string" ? event.src : JSON.stringify(event.src, null, 2);
67
- await navigator.clipboard.writeText(copyContent);
68
- } catch (e) {
69
- console.error("Error Copying to clipboard", e, event.src);
70
- }
71
- }
72
- };
73
75
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
- import_react_json_view.default,
76
+ import_json_viewer.JsonViewer,
75
77
  {
76
- enableClipboard: onCopy,
77
- theme: darkMode ? "tomorrow" : "summerfruit:inverted",
78
+ theme: darkMode ? "dark" : "light",
78
79
  collapseStringsAfterLength: 50,
79
80
  style: {
80
81
  background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],
@@ -86,39 +87,37 @@ var JsonViewEx = (props) => {
86
87
  );
87
88
  };
88
89
 
89
- // src/components/styled/StyledChipLabel.tsx
90
- var import_material2 = require("@mui/material");
91
- var StyledChipLabel = (0, import_material2.styled)(import_material2.Typography, { name: "StyledChipLabel" })(({ theme }) => ({
92
- display: "block",
93
- lineHeight: 1,
94
- overflow: "hidden",
95
- paddingRight: theme.spacing(0.95),
96
- textOverflow: "ellipsis",
97
- whiteSpace: "nowrap"
98
- }));
99
-
100
- // src/components/PayloadCollapse.tsx
90
+ // src/components/shared/Dialog/PayloadCollapse.tsx
101
91
  var import_jsx_runtime2 = require("react/jsx-runtime");
102
92
  var RawInfoPayloadCollapse = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {
103
93
  const [expandedJson, setExpandedJson] = (0, import_react_shared.useDataState)(defaultExpandedJson);
104
94
  const [hash] = (0, import_react_promise.usePromise)(async () => payload ? await import_payload_builder.PayloadBuilder.dataHash(payload) : void 0, [payload]);
95
+ const actionText = expandedJson ? "Hide JSON" : "Show JSON";
105
96
  const handleExpansion = () => {
106
97
  updateExpandedJson == null ? void 0 : updateExpandedJson(!expandedJson);
107
98
  setExpandedJson(!expandedJson);
108
99
  };
109
100
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
110
- payload ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexRow, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material3.Button, { onClick: handleExpansion, size: "small", variant: "outlined", children: "Show Raw JSON" }) }) : null,
101
+ payload ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexRow, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material3.Button, { onClick: handleExpansion, size: "small", variant: "outlined", children: actionText }) }) : null,
111
102
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material3.Collapse, { in: expandedJson, ...props, children: payload ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react_flexbox.FlexCol, { alignItems: "stretch", gap: 1.5, children: [
112
103
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material3.Typography, { sx: { lineHeight: 1 }, children: "Payload Hash:" }),
113
104
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material3.Chip, { label: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StyledChipLabel, { children: hash }), sx: { alignSelf: "start" } }),
114
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JsonViewEx, { src: payload })
105
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JsonViewerEx, { value: payload })
115
106
  ] }) : null })
116
107
  ] });
117
108
  };
118
109
 
119
- // src/components/Dialog/RawInfoDialog.tsx
110
+ // src/components/shared/Dialog/RawInfoDialog.tsx
111
+ var import_material4 = require("@mui/material");
120
112
  var import_jsx_runtime3 = require("react/jsx-runtime");
121
- var RawInfoDialog = ({ dialogContent, onCloseCallback, payload, ...props }) => {
113
+ var RawInfoDialog = ({
114
+ defaultExpandedJson,
115
+ dialogContent,
116
+ onCloseCallback,
117
+ payload,
118
+ updateExpandedJson,
119
+ ...props
120
+ }) => {
122
121
  const onDialogClick = (event) => {
123
122
  event.stopPropagation();
124
123
  };
@@ -128,18 +127,14 @@ var RawInfoDialog = ({ dialogContent, onCloseCallback, payload, ...props }) => {
128
127
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material4.DialogTitle, { children: "Raw Data" }),
129
128
  /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_material4.DialogContent, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
130
129
  dialogContent,
131
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RawInfoPayloadCollapse, { payload })
130
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RawInfoPayloadCollapse, { defaultExpandedJson, payload, updateExpandedJson })
132
131
  ] }),
133
132
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material4.DialogActions, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material4.Button, { variant: "contained", onClick: () => onCloseCallback == null ? void 0 : onCloseCallback(), children: "Close" }) })
134
133
  ] }) })
135
134
  );
136
135
  };
137
136
 
138
- // src/components/img/index.ts
139
- var import_xyo_color_logo = __toESM(require("./xyo-color-logo-LHR2SMEM.svg"), 1);
140
-
141
- // src/components/Button/RawInfoButton.tsx
142
- var import_jsx_runtime4 = require("react/jsx-runtime");
137
+ // src/components/Button/lib/presetIconSize.ts
143
138
  var presetIconSizeValue = (size) => {
144
139
  switch (size) {
145
140
  case "small": {
@@ -153,7 +148,11 @@ var presetIconSizeValue = (size) => {
153
148
  }
154
149
  }
155
150
  };
151
+
152
+ // src/components/Button/RawInfoButton.tsx
153
+ var import_jsx_runtime4 = require("react/jsx-runtime");
156
154
  var RawInfoButton = ({
155
+ defaultExpandedJson = true,
157
156
  dialogContent,
158
157
  iconOnly,
159
158
  iconSize = 24,
@@ -161,6 +160,7 @@ var RawInfoButton = ({
161
160
  children,
162
161
  payload,
163
162
  presetIconSize,
163
+ updateExpandedJson,
164
164
  ...props
165
165
  }) => {
166
166
  const [open, setOpen] = (0, import_react.useState)(false);
@@ -186,31 +186,28 @@ var RawInfoButton = ({
186
186
  children: children ?? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: "Data" })
187
187
  }
188
188
  ),
189
- iconOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(RawInfoDialog, { payload, onCloseCallback: onCloseCallBackWrapped, dialogContent, open })
189
+ iconOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
190
+ RawInfoDialog,
191
+ {
192
+ defaultExpandedJson,
193
+ payload,
194
+ onCloseCallback: onCloseCallBackWrapped,
195
+ dialogContent,
196
+ open,
197
+ updateExpandedJson
198
+ }
199
+ )
190
200
  ] });
191
201
  };
192
202
 
193
- // src/components/RawInfoIcon.tsx
203
+ // src/components/Button/RawInfoIconButton.tsx
194
204
  var import_material5 = require("@mui/material");
195
205
  var import_react2 = require("react");
196
206
  var import_jsx_runtime5 = require("react/jsx-runtime");
197
- var presetIconSizeValue2 = (size) => {
198
- switch (size) {
199
- case "small": {
200
- return 16;
201
- }
202
- case "medium": {
203
- return 32;
204
- }
205
- case "large": {
206
- return 48;
207
- }
208
- }
209
- };
210
- var RawInfoIcon = (0, import_react2.forwardRef)(
211
- ({ dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, ...props }, ref) => {
207
+ var RawInfoIconButton = (0, import_react2.forwardRef)(
208
+ ({ defaultExpandedJson, dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, updateExpandedJson, ...props }, ref) => {
212
209
  const [open, setOpen] = (0, import_react2.useState)(false);
213
- const size = presetIconSizeValue2(presetIconSize);
210
+ const size = presetIconSizeValue(presetIconSize);
214
211
  const handleClick = (event) => {
215
212
  event.stopPropagation();
216
213
  setOpen(true);
@@ -221,16 +218,27 @@ var RawInfoIcon = (0, import_react2.forwardRef)(
221
218
  };
222
219
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
223
220
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.IconButton, { onClick: handleClick, ref, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", { src: import_xyo_color_logo.default, height: size ?? iconSize, width: size ?? iconSize }) }),
224
- iconOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RawInfoDialog, { payload, onCloseCallback: onCloseCallBackWrapped, dialogContent, open })
221
+ iconOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
222
+ RawInfoDialog,
223
+ {
224
+ defaultExpandedJson,
225
+ payload,
226
+ onCloseCallback: onCloseCallBackWrapped,
227
+ dialogContent,
228
+ open,
229
+ updateExpandedJson
230
+ }
231
+ )
225
232
  ] });
226
233
  }
227
234
  );
228
- RawInfoIcon.displayName = "RawInfoIcon";
235
+ RawInfoIconButton.displayName = "RawInfoIcon";
229
236
  // Annotate the CommonJS export names for ESM import in node:
230
237
  0 && (module.exports = {
238
+ JsonViewerEx,
231
239
  RawInfoButton,
232
240
  RawInfoDialog,
233
- RawInfoIcon,
241
+ RawInfoIconButton,
234
242
  RawInfoPayloadCollapse,
235
243
  StyledChipLabel
236
244
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/Button/RawInfoButton.tsx","../../src/components/Dialog/RawInfoDialog.tsx","../../src/components/PayloadCollapse.tsx","../../src/components/shared/JsonViewEx.tsx","../../src/components/styled/StyledChipLabel.tsx","../../src/components/img/index.ts","../../src/components/RawInfoIcon.tsx"],"sourcesContent":["export * from './components'\n","import { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { Payload, WithSchema } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { RawInfoDialog } from '../Dialog'\nimport { xyoColorLogo } from '../img'\n\ntype IconSize = 'small' | 'medium' | 'large'\n\nconst presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n\nexport interface RawInfoButtonProps extends ButtonExProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload<WithSchema> | null\n presetIconSize?: IconSize\n}\n\nexport const RawInfoButton: React.FC<RawInfoButtonProps> = ({\n dialogContent,\n iconOnly,\n iconSize = 24,\n onCloseCallback,\n children,\n payload,\n presetIconSize,\n ...props\n}) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <span>\n <ButtonEx\n variant=\"outlined\"\n size=\"small\"\n startIcon={<img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />}\n onClick={handleClick}\n disabled={iconOnly ? false : !payload}\n {...props}\n >\n {children ?? <span>Data</span>}\n </ButtonEx>\n {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}\n </span>\n )\n}\n","import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport { RawInfoPayloadCollapse } from '../PayloadCollapse'\n\nexport interface RawInfoDialogProps extends DialogProps {\n dialogContent?: ReactNode\n onCloseCallback?: () => void\n payload?: Payload | null\n}\n\nexport const RawInfoDialog: React.FC<RawInfoDialogProps> = ({ dialogContent, onCloseCallback, payload, ...props }) => {\n const onDialogClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n event.stopPropagation()\n }\n\n return (\n // Wrapping in a span so we can catch click events and prevent them from propagating outside the component\n <span onClick={onDialogClick}>\n <Dialog fullWidth maxWidth=\"lg\" onClose={() => onCloseCallback?.()} {...props}>\n <DialogTitle>Raw Data</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {dialogContent}\n <RawInfoPayloadCollapse payload={payload} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => onCloseCallback?.()}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n </span>\n )\n}\n","import { Button, Chip, Collapse, CollapseProps, Typography } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useDataState } from '@xyo-network/react-shared'\n\nimport { JsonViewEx } from './shared'\nimport { StyledChipLabel } from './styled'\n\nexport interface RawInfoPayloadCollapse extends CollapseProps {\n defaultExpandedJson?: boolean\n payload?: Payload | null\n updateExpandedJson?: (expanded: boolean) => void\n}\n\nexport const RawInfoPayloadCollapse: React.FC<RawInfoPayloadCollapse> = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {\n const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson)\n const [hash] = usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])\n\n const handleExpansion = () => {\n updateExpandedJson?.(!expandedJson)\n setExpandedJson(!expandedJson)\n }\n\n return (\n <>\n {payload ?\n <FlexRow>\n <Button onClick={handleExpansion} size=\"small\" variant=\"outlined\">\n Show Raw JSON\n </Button>\n </FlexRow>\n : null}\n <Collapse in={expandedJson} {...props}>\n {payload ?\n <FlexCol alignItems=\"stretch\" gap={1.5}>\n <Typography sx={{ lineHeight: 1 }}>Payload Hash:</Typography>\n <Chip label={<StyledChipLabel>{hash}</StyledChipLabel>} sx={{ alignSelf: 'start' }} />\n <JsonViewEx src={payload} />\n </FlexCol>\n : null}\n </Collapse>\n </>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { useColorSchemeEx } from '@xylabs/react-invertible-theme'\nimport JsonView, { OnCopyProps, ReactJsonViewProps } from 'react-json-view'\n\nexport const JsonViewEx: React.FC<ReactJsonViewProps> = (props) => {\n const theme = useTheme()\n const { darkMode } = useColorSchemeEx()\n\n const onCopy = async (event: OnCopyProps) => {\n if (event.src) {\n try {\n const copyContent = typeof event.src === 'string' ? event.src : JSON.stringify(event.src, null, 2)\n await navigator.clipboard.writeText(copyContent)\n } catch (e) {\n console.error('Error Copying to clipboard', e, event.src)\n }\n }\n }\n\n return (\n <JsonView\n enableClipboard={onCopy}\n theme={darkMode ? 'tomorrow' : 'summerfruit:inverted'}\n collapseStringsAfterLength={50}\n style={{\n background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n }}\n {...props}\n />\n )\n}\n","import { styled, Typography } from '@mui/material'\n\nexport const StyledChipLabel = styled(Typography, { name: 'StyledChipLabel' })(({ theme }) => ({\n display: 'block',\n lineHeight: 1,\n overflow: 'hidden',\n paddingRight: theme.spacing(0.95),\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}))\n","export { default as xyoColorLogo } from './xyo-color-logo.svg'\n","import { IconButton, IconButtonProps } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef, MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { RawInfoDialog } from './Dialog'\nimport { xyoColorLogo } from './img'\n\ntype IconSize = 'small' | 'medium' | 'large'\n\nconst presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n\nexport interface RawInfoIconProps extends IconButtonProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload\n presetIconSize?: IconSize\n}\n\nexport const RawInfoIcon = forwardRef<HTMLButtonElement, RawInfoIconProps>(\n ({ dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, ...props }, ref) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <>\n <IconButton onClick={handleClick} ref={ref} {...props}>\n <img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />\n </IconButton>\n {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}\n </>\n )\n },\n)\n\nRawInfoIcon.displayName = 'RawInfoIcon'\n"],"mappings":"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","names":["import_material","import_material","JsonView","import_material","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_material","import_react","import_jsx_runtime","presetIconSizeValue"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/Button/RawInfoButton.tsx","../../src/components/img/index.ts","../../src/components/shared/Dialog/PayloadCollapse.tsx","../../src/components/styled/StyledChipLabel.tsx","../../src/components/shared/JsonViewerEx.tsx","../../src/components/shared/Dialog/RawInfoDialog.tsx","../../src/components/Button/lib/presetIconSize.ts","../../src/components/Button/RawInfoIconButton.tsx"],"sourcesContent":["export * from './components'\n","import { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { Payload, WithSchema } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { ExpansionProps } from '../../lib'\nimport { xyoColorLogo } from '../img'\nimport { RawInfoDialog } from '../shared'\nimport { IconSize, presetIconSizeValue } from './lib'\n\nexport interface RawInfoButtonProps extends ButtonExProps, ExpansionProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload<WithSchema> | null\n presetIconSize?: IconSize\n}\n\nexport const RawInfoButton: React.FC<RawInfoButtonProps> = ({\n defaultExpandedJson = true,\n dialogContent,\n iconOnly,\n iconSize = 24,\n onCloseCallback,\n children,\n payload,\n presetIconSize,\n updateExpandedJson,\n ...props\n}) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <span>\n <ButtonEx\n variant=\"outlined\"\n size=\"small\"\n startIcon={<img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />}\n onClick={handleClick}\n disabled={iconOnly ? false : !payload}\n {...props}\n >\n {children ?? <span>Data</span>}\n </ButtonEx>\n {iconOnly ? null : (\n <RawInfoDialog\n defaultExpandedJson={defaultExpandedJson}\n payload={payload}\n onCloseCallback={onCloseCallBackWrapped}\n dialogContent={dialogContent}\n open={open}\n updateExpandedJson={updateExpandedJson}\n />\n )}\n </span>\n )\n}\n","export { default as xyoColorLogo } from './xyo-color-logo.svg'\n","import { Button, Chip, Collapse, CollapseProps, Typography } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useDataState } from '@xyo-network/react-shared'\n\nimport { ExpansionProps } from '../../../lib'\nimport { StyledChipLabel } from '../../styled'\nimport { JsonViewerEx } from '../JsonViewerEx'\n\nexport interface RawInfoPayloadCollapse extends CollapseProps, ExpansionProps {\n payload?: Payload | null\n}\n\nexport const RawInfoPayloadCollapse: React.FC<RawInfoPayloadCollapse> = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {\n const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson)\n const [hash] = usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])\n const actionText = expandedJson ? 'Hide JSON' : 'Show JSON'\n\n const handleExpansion = () => {\n updateExpandedJson?.(!expandedJson)\n setExpandedJson(!expandedJson)\n }\n\n return (\n <>\n {payload ?\n <FlexRow>\n <Button onClick={handleExpansion} size=\"small\" variant=\"outlined\">\n {actionText}\n </Button>\n </FlexRow>\n : null}\n <Collapse in={expandedJson} {...props}>\n {payload ?\n <FlexCol alignItems=\"stretch\" gap={1.5}>\n <Typography sx={{ lineHeight: 1 }}>Payload Hash:</Typography>\n <Chip label={<StyledChipLabel>{hash}</StyledChipLabel>} sx={{ alignSelf: 'start' }} />\n <JsonViewerEx value={payload} />\n </FlexCol>\n : null}\n </Collapse>\n </>\n )\n}\n","import { styled, Typography } from '@mui/material'\n\nexport const StyledChipLabel = styled(Typography, { name: 'StyledChipLabel' })(({ theme }) => ({\n display: 'block',\n lineHeight: 1,\n overflow: 'hidden',\n paddingRight: theme.spacing(0.95),\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}))\n","import { useTheme } from '@mui/material'\nimport { JsonViewer, JsonViewerProps } from '@textea/json-viewer'\nimport { useColorSchemeEx } from '@xylabs/react-invertible-theme'\n\nexport const JsonViewerEx: React.FC<JsonViewerProps> = (props) => {\n const theme = useTheme()\n const { darkMode } = useColorSchemeEx()\n\n return (\n <JsonViewer\n theme={darkMode ? 'dark' : 'light'}\n collapseStringsAfterLength={50}\n style={{\n background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n }}\n {...props}\n />\n )\n}\n","import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport { ExpansionProps } from '../../../lib'\nimport { RawInfoPayloadCollapse } from './PayloadCollapse'\n\nexport interface RawInfoDialogProps extends DialogProps, ExpansionProps {\n dialogContent?: ReactNode\n onCloseCallback?: () => void\n payload?: Payload | null\n}\n\nexport const RawInfoDialog: React.FC<RawInfoDialogProps> = ({\n defaultExpandedJson,\n dialogContent,\n onCloseCallback,\n payload,\n updateExpandedJson,\n ...props\n}) => {\n const onDialogClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n event.stopPropagation()\n }\n\n return (\n // Wrapping in a span so we can catch click events and prevent them from propagating outside the component\n <span onClick={onDialogClick}>\n <Dialog fullWidth maxWidth=\"lg\" onClose={() => onCloseCallback?.()} {...props}>\n <DialogTitle>Raw Data</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {dialogContent}\n <RawInfoPayloadCollapse defaultExpandedJson={defaultExpandedJson} payload={payload} updateExpandedJson={updateExpandedJson} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => onCloseCallback?.()}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n </span>\n )\n}\n","import { IconSize } from './IconSize'\n\nexport const presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n","import { IconButton, IconButtonProps } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef, MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { ExpansionProps } from '../../lib'\nimport { xyoColorLogo } from '../img'\nimport { RawInfoDialog } from '../shared'\nimport { IconSize, presetIconSizeValue } from './lib'\n\nexport interface RawInfoIconProps extends IconButtonProps, ExpansionProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload\n presetIconSize?: IconSize\n}\n\nexport const RawInfoIconButton = forwardRef<HTMLButtonElement, RawInfoIconProps>(\n ({ defaultExpandedJson, dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, updateExpandedJson, ...props }, ref) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <>\n <IconButton onClick={handleClick} ref={ref} {...props}>\n <img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />\n </IconButton>\n {iconOnly ? null : (\n <RawInfoDialog\n defaultExpandedJson={defaultExpandedJson}\n payload={payload}\n onCloseCallback={onCloseCallBackWrapped}\n dialogContent={dialogContent}\n open={open}\n updateExpandedJson={updateExpandedJson}\n />\n )}\n </>\n )\n },\n)\n\nRawInfoIconButton.displayName = 'RawInfoIcon'\n"],"mappings":"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","names":["import_material","import_material","import_jsx_runtime","import_material","import_jsx_runtime","import_jsx_runtime","import_material","import_react","import_jsx_runtime"]}
@@ -2,39 +2,39 @@
2
2
  import { ButtonEx } from "@xylabs/react-button";
3
3
  import { useState } from "react";
4
4
 
5
- // src/components/Dialog/RawInfoDialog.tsx
6
- import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
5
+ // src/components/img/index.ts
6
+ import { default as default2 } from "./xyo-color-logo-LHR2SMEM.svg";
7
7
 
8
- // src/components/PayloadCollapse.tsx
8
+ // src/components/shared/Dialog/PayloadCollapse.tsx
9
9
  import { Button, Chip, Collapse, Typography as Typography2 } from "@mui/material";
10
10
  import { FlexCol, FlexRow } from "@xylabs/react-flexbox";
11
11
  import { usePromise } from "@xylabs/react-promise";
12
12
  import { PayloadBuilder } from "@xyo-network/payload-builder";
13
13
  import { useDataState } from "@xyo-network/react-shared";
14
14
 
15
- // src/components/shared/JsonViewEx.tsx
15
+ // src/components/styled/StyledChipLabel.tsx
16
+ import { styled, Typography } from "@mui/material";
17
+ var StyledChipLabel = styled(Typography, { name: "StyledChipLabel" })(({ theme }) => ({
18
+ display: "block",
19
+ lineHeight: 1,
20
+ overflow: "hidden",
21
+ paddingRight: theme.spacing(0.95),
22
+ textOverflow: "ellipsis",
23
+ whiteSpace: "nowrap"
24
+ }));
25
+
26
+ // src/components/shared/JsonViewerEx.tsx
16
27
  import { useTheme } from "@mui/material";
28
+ import { JsonViewer } from "@textea/json-viewer";
17
29
  import { useColorSchemeEx } from "@xylabs/react-invertible-theme";
18
- import JsonView from "react-json-view";
19
30
  import { jsx } from "react/jsx-runtime";
20
- var JsonViewEx = (props) => {
31
+ var JsonViewerEx = (props) => {
21
32
  const theme = useTheme();
22
33
  const { darkMode } = useColorSchemeEx();
23
- const onCopy = async (event) => {
24
- if (event.src) {
25
- try {
26
- const copyContent = typeof event.src === "string" ? event.src : JSON.stringify(event.src, null, 2);
27
- await navigator.clipboard.writeText(copyContent);
28
- } catch (e) {
29
- console.error("Error Copying to clipboard", e, event.src);
30
- }
31
- }
32
- };
33
34
  return /* @__PURE__ */ jsx(
34
- JsonView,
35
+ JsonViewer,
35
36
  {
36
- enableClipboard: onCopy,
37
- theme: darkMode ? "tomorrow" : "summerfruit:inverted",
37
+ theme: darkMode ? "dark" : "light",
38
38
  collapseStringsAfterLength: 50,
39
39
  style: {
40
40
  background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],
@@ -46,39 +46,37 @@ var JsonViewEx = (props) => {
46
46
  );
47
47
  };
48
48
 
49
- // src/components/styled/StyledChipLabel.tsx
50
- import { styled, Typography } from "@mui/material";
51
- var StyledChipLabel = styled(Typography, { name: "StyledChipLabel" })(({ theme }) => ({
52
- display: "block",
53
- lineHeight: 1,
54
- overflow: "hidden",
55
- paddingRight: theme.spacing(0.95),
56
- textOverflow: "ellipsis",
57
- whiteSpace: "nowrap"
58
- }));
59
-
60
- // src/components/PayloadCollapse.tsx
49
+ // src/components/shared/Dialog/PayloadCollapse.tsx
61
50
  import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
62
51
  var RawInfoPayloadCollapse = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {
63
52
  const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson);
64
53
  const [hash] = usePromise(async () => payload ? await PayloadBuilder.dataHash(payload) : void 0, [payload]);
54
+ const actionText = expandedJson ? "Hide JSON" : "Show JSON";
65
55
  const handleExpansion = () => {
66
56
  updateExpandedJson == null ? void 0 : updateExpandedJson(!expandedJson);
67
57
  setExpandedJson(!expandedJson);
68
58
  };
69
59
  return /* @__PURE__ */ jsxs(Fragment, { children: [
70
- payload ? /* @__PURE__ */ jsx2(FlexRow, { children: /* @__PURE__ */ jsx2(Button, { onClick: handleExpansion, size: "small", variant: "outlined", children: "Show Raw JSON" }) }) : null,
60
+ payload ? /* @__PURE__ */ jsx2(FlexRow, { children: /* @__PURE__ */ jsx2(Button, { onClick: handleExpansion, size: "small", variant: "outlined", children: actionText }) }) : null,
71
61
  /* @__PURE__ */ jsx2(Collapse, { in: expandedJson, ...props, children: payload ? /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", gap: 1.5, children: [
72
62
  /* @__PURE__ */ jsx2(Typography2, { sx: { lineHeight: 1 }, children: "Payload Hash:" }),
73
63
  /* @__PURE__ */ jsx2(Chip, { label: /* @__PURE__ */ jsx2(StyledChipLabel, { children: hash }), sx: { alignSelf: "start" } }),
74
- /* @__PURE__ */ jsx2(JsonViewEx, { src: payload })
64
+ /* @__PURE__ */ jsx2(JsonViewerEx, { value: payload })
75
65
  ] }) : null })
76
66
  ] });
77
67
  };
78
68
 
79
- // src/components/Dialog/RawInfoDialog.tsx
69
+ // src/components/shared/Dialog/RawInfoDialog.tsx
70
+ import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
80
71
  import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
81
- var RawInfoDialog = ({ dialogContent, onCloseCallback, payload, ...props }) => {
72
+ var RawInfoDialog = ({
73
+ defaultExpandedJson,
74
+ dialogContent,
75
+ onCloseCallback,
76
+ payload,
77
+ updateExpandedJson,
78
+ ...props
79
+ }) => {
82
80
  const onDialogClick = (event) => {
83
81
  event.stopPropagation();
84
82
  };
@@ -88,18 +86,14 @@ var RawInfoDialog = ({ dialogContent, onCloseCallback, payload, ...props }) => {
88
86
  /* @__PURE__ */ jsx3(DialogTitle, { children: "Raw Data" }),
89
87
  /* @__PURE__ */ jsxs2(DialogContent, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
90
88
  dialogContent,
91
- /* @__PURE__ */ jsx3(RawInfoPayloadCollapse, { payload })
89
+ /* @__PURE__ */ jsx3(RawInfoPayloadCollapse, { defaultExpandedJson, payload, updateExpandedJson })
92
90
  ] }),
93
91
  /* @__PURE__ */ jsx3(DialogActions, { children: /* @__PURE__ */ jsx3(Button2, { variant: "contained", onClick: () => onCloseCallback == null ? void 0 : onCloseCallback(), children: "Close" }) })
94
92
  ] }) })
95
93
  );
96
94
  };
97
95
 
98
- // src/components/img/index.ts
99
- import { default as default2 } from "./xyo-color-logo-LHR2SMEM.svg";
100
-
101
- // src/components/Button/RawInfoButton.tsx
102
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
96
+ // src/components/Button/lib/presetIconSize.ts
103
97
  var presetIconSizeValue = (size) => {
104
98
  switch (size) {
105
99
  case "small": {
@@ -113,7 +107,11 @@ var presetIconSizeValue = (size) => {
113
107
  }
114
108
  }
115
109
  };
110
+
111
+ // src/components/Button/RawInfoButton.tsx
112
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
116
113
  var RawInfoButton = ({
114
+ defaultExpandedJson = true,
117
115
  dialogContent,
118
116
  iconOnly,
119
117
  iconSize = 24,
@@ -121,6 +119,7 @@ var RawInfoButton = ({
121
119
  children,
122
120
  payload,
123
121
  presetIconSize,
122
+ updateExpandedJson,
124
123
  ...props
125
124
  }) => {
126
125
  const [open, setOpen] = useState(false);
@@ -146,31 +145,28 @@ var RawInfoButton = ({
146
145
  children: children ?? /* @__PURE__ */ jsx4("span", { children: "Data" })
147
146
  }
148
147
  ),
149
- iconOnly ? null : /* @__PURE__ */ jsx4(RawInfoDialog, { payload, onCloseCallback: onCloseCallBackWrapped, dialogContent, open })
148
+ iconOnly ? null : /* @__PURE__ */ jsx4(
149
+ RawInfoDialog,
150
+ {
151
+ defaultExpandedJson,
152
+ payload,
153
+ onCloseCallback: onCloseCallBackWrapped,
154
+ dialogContent,
155
+ open,
156
+ updateExpandedJson
157
+ }
158
+ )
150
159
  ] });
151
160
  };
152
161
 
153
- // src/components/RawInfoIcon.tsx
162
+ // src/components/Button/RawInfoIconButton.tsx
154
163
  import { IconButton } from "@mui/material";
155
164
  import { forwardRef, useState as useState2 } from "react";
156
165
  import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
157
- var presetIconSizeValue2 = (size) => {
158
- switch (size) {
159
- case "small": {
160
- return 16;
161
- }
162
- case "medium": {
163
- return 32;
164
- }
165
- case "large": {
166
- return 48;
167
- }
168
- }
169
- };
170
- var RawInfoIcon = forwardRef(
171
- ({ dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, ...props }, ref) => {
166
+ var RawInfoIconButton = forwardRef(
167
+ ({ defaultExpandedJson, dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, updateExpandedJson, ...props }, ref) => {
172
168
  const [open, setOpen] = useState2(false);
173
- const size = presetIconSizeValue2(presetIconSize);
169
+ const size = presetIconSizeValue(presetIconSize);
174
170
  const handleClick = (event) => {
175
171
  event.stopPropagation();
176
172
  setOpen(true);
@@ -181,15 +177,26 @@ var RawInfoIcon = forwardRef(
181
177
  };
182
178
  return /* @__PURE__ */ jsxs4(Fragment2, { children: [
183
179
  /* @__PURE__ */ jsx5(IconButton, { onClick: handleClick, ref, ...props, children: /* @__PURE__ */ jsx5("img", { src: default2, height: size ?? iconSize, width: size ?? iconSize }) }),
184
- iconOnly ? null : /* @__PURE__ */ jsx5(RawInfoDialog, { payload, onCloseCallback: onCloseCallBackWrapped, dialogContent, open })
180
+ iconOnly ? null : /* @__PURE__ */ jsx5(
181
+ RawInfoDialog,
182
+ {
183
+ defaultExpandedJson,
184
+ payload,
185
+ onCloseCallback: onCloseCallBackWrapped,
186
+ dialogContent,
187
+ open,
188
+ updateExpandedJson
189
+ }
190
+ )
185
191
  ] });
186
192
  }
187
193
  );
188
- RawInfoIcon.displayName = "RawInfoIcon";
194
+ RawInfoIconButton.displayName = "RawInfoIcon";
189
195
  export {
196
+ JsonViewerEx,
190
197
  RawInfoButton,
191
198
  RawInfoDialog,
192
- RawInfoIcon,
199
+ RawInfoIconButton,
193
200
  RawInfoPayloadCollapse,
194
201
  StyledChipLabel
195
202
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Button/RawInfoButton.tsx","../../src/components/Dialog/RawInfoDialog.tsx","../../src/components/PayloadCollapse.tsx","../../src/components/shared/JsonViewEx.tsx","../../src/components/styled/StyledChipLabel.tsx","../../src/components/img/index.ts","../../src/components/RawInfoIcon.tsx"],"sourcesContent":["import { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { Payload, WithSchema } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { RawInfoDialog } from '../Dialog'\nimport { xyoColorLogo } from '../img'\n\ntype IconSize = 'small' | 'medium' | 'large'\n\nconst presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n\nexport interface RawInfoButtonProps extends ButtonExProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload<WithSchema> | null\n presetIconSize?: IconSize\n}\n\nexport const RawInfoButton: React.FC<RawInfoButtonProps> = ({\n dialogContent,\n iconOnly,\n iconSize = 24,\n onCloseCallback,\n children,\n payload,\n presetIconSize,\n ...props\n}) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <span>\n <ButtonEx\n variant=\"outlined\"\n size=\"small\"\n startIcon={<img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />}\n onClick={handleClick}\n disabled={iconOnly ? false : !payload}\n {...props}\n >\n {children ?? <span>Data</span>}\n </ButtonEx>\n {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}\n </span>\n )\n}\n","import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport { RawInfoPayloadCollapse } from '../PayloadCollapse'\n\nexport interface RawInfoDialogProps extends DialogProps {\n dialogContent?: ReactNode\n onCloseCallback?: () => void\n payload?: Payload | null\n}\n\nexport const RawInfoDialog: React.FC<RawInfoDialogProps> = ({ dialogContent, onCloseCallback, payload, ...props }) => {\n const onDialogClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n event.stopPropagation()\n }\n\n return (\n // Wrapping in a span so we can catch click events and prevent them from propagating outside the component\n <span onClick={onDialogClick}>\n <Dialog fullWidth maxWidth=\"lg\" onClose={() => onCloseCallback?.()} {...props}>\n <DialogTitle>Raw Data</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {dialogContent}\n <RawInfoPayloadCollapse payload={payload} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => onCloseCallback?.()}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n </span>\n )\n}\n","import { Button, Chip, Collapse, CollapseProps, Typography } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useDataState } from '@xyo-network/react-shared'\n\nimport { JsonViewEx } from './shared'\nimport { StyledChipLabel } from './styled'\n\nexport interface RawInfoPayloadCollapse extends CollapseProps {\n defaultExpandedJson?: boolean\n payload?: Payload | null\n updateExpandedJson?: (expanded: boolean) => void\n}\n\nexport const RawInfoPayloadCollapse: React.FC<RawInfoPayloadCollapse> = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {\n const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson)\n const [hash] = usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])\n\n const handleExpansion = () => {\n updateExpandedJson?.(!expandedJson)\n setExpandedJson(!expandedJson)\n }\n\n return (\n <>\n {payload ?\n <FlexRow>\n <Button onClick={handleExpansion} size=\"small\" variant=\"outlined\">\n Show Raw JSON\n </Button>\n </FlexRow>\n : null}\n <Collapse in={expandedJson} {...props}>\n {payload ?\n <FlexCol alignItems=\"stretch\" gap={1.5}>\n <Typography sx={{ lineHeight: 1 }}>Payload Hash:</Typography>\n <Chip label={<StyledChipLabel>{hash}</StyledChipLabel>} sx={{ alignSelf: 'start' }} />\n <JsonViewEx src={payload} />\n </FlexCol>\n : null}\n </Collapse>\n </>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { useColorSchemeEx } from '@xylabs/react-invertible-theme'\nimport JsonView, { OnCopyProps, ReactJsonViewProps } from 'react-json-view'\n\nexport const JsonViewEx: React.FC<ReactJsonViewProps> = (props) => {\n const theme = useTheme()\n const { darkMode } = useColorSchemeEx()\n\n const onCopy = async (event: OnCopyProps) => {\n if (event.src) {\n try {\n const copyContent = typeof event.src === 'string' ? event.src : JSON.stringify(event.src, null, 2)\n await navigator.clipboard.writeText(copyContent)\n } catch (e) {\n console.error('Error Copying to clipboard', e, event.src)\n }\n }\n }\n\n return (\n <JsonView\n enableClipboard={onCopy}\n theme={darkMode ? 'tomorrow' : 'summerfruit:inverted'}\n collapseStringsAfterLength={50}\n style={{\n background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n }}\n {...props}\n />\n )\n}\n","import { styled, Typography } from '@mui/material'\n\nexport const StyledChipLabel = styled(Typography, { name: 'StyledChipLabel' })(({ theme }) => ({\n display: 'block',\n lineHeight: 1,\n overflow: 'hidden',\n paddingRight: theme.spacing(0.95),\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}))\n","export { default as xyoColorLogo } from './xyo-color-logo.svg'\n","import { IconButton, IconButtonProps } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef, MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { RawInfoDialog } from './Dialog'\nimport { xyoColorLogo } from './img'\n\ntype IconSize = 'small' | 'medium' | 'large'\n\nconst presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n\nexport interface RawInfoIconProps extends IconButtonProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload\n presetIconSize?: IconSize\n}\n\nexport const RawInfoIcon = forwardRef<HTMLButtonElement, RawInfoIconProps>(\n ({ dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, ...props }, ref) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <>\n <IconButton onClick={handleClick} ref={ref} {...props}>\n <img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />\n </IconButton>\n {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}\n </>\n )\n },\n)\n\nRawInfoIcon.displayName = 'RawInfoIcon'\n"],"mappings":"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","names":["Button","Typography","jsx","Typography","jsx","jsxs","Button","default","jsx","jsxs","default","useState","Fragment","jsx","jsxs","presetIconSizeValue","useState","default"]}
1
+ {"version":3,"sources":["../../src/components/Button/RawInfoButton.tsx","../../src/components/img/index.ts","../../src/components/shared/Dialog/PayloadCollapse.tsx","../../src/components/styled/StyledChipLabel.tsx","../../src/components/shared/JsonViewerEx.tsx","../../src/components/shared/Dialog/RawInfoDialog.tsx","../../src/components/Button/lib/presetIconSize.ts","../../src/components/Button/RawInfoIconButton.tsx"],"sourcesContent":["import { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { Payload, WithSchema } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { ExpansionProps } from '../../lib'\nimport { xyoColorLogo } from '../img'\nimport { RawInfoDialog } from '../shared'\nimport { IconSize, presetIconSizeValue } from './lib'\n\nexport interface RawInfoButtonProps extends ButtonExProps, ExpansionProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload<WithSchema> | null\n presetIconSize?: IconSize\n}\n\nexport const RawInfoButton: React.FC<RawInfoButtonProps> = ({\n defaultExpandedJson = true,\n dialogContent,\n iconOnly,\n iconSize = 24,\n onCloseCallback,\n children,\n payload,\n presetIconSize,\n updateExpandedJson,\n ...props\n}) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <span>\n <ButtonEx\n variant=\"outlined\"\n size=\"small\"\n startIcon={<img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />}\n onClick={handleClick}\n disabled={iconOnly ? false : !payload}\n {...props}\n >\n {children ?? <span>Data</span>}\n </ButtonEx>\n {iconOnly ? null : (\n <RawInfoDialog\n defaultExpandedJson={defaultExpandedJson}\n payload={payload}\n onCloseCallback={onCloseCallBackWrapped}\n dialogContent={dialogContent}\n open={open}\n updateExpandedJson={updateExpandedJson}\n />\n )}\n </span>\n )\n}\n","export { default as xyoColorLogo } from './xyo-color-logo.svg'\n","import { Button, Chip, Collapse, CollapseProps, Typography } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useDataState } from '@xyo-network/react-shared'\n\nimport { ExpansionProps } from '../../../lib'\nimport { StyledChipLabel } from '../../styled'\nimport { JsonViewerEx } from '../JsonViewerEx'\n\nexport interface RawInfoPayloadCollapse extends CollapseProps, ExpansionProps {\n payload?: Payload | null\n}\n\nexport const RawInfoPayloadCollapse: React.FC<RawInfoPayloadCollapse> = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {\n const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson)\n const [hash] = usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])\n const actionText = expandedJson ? 'Hide JSON' : 'Show JSON'\n\n const handleExpansion = () => {\n updateExpandedJson?.(!expandedJson)\n setExpandedJson(!expandedJson)\n }\n\n return (\n <>\n {payload ?\n <FlexRow>\n <Button onClick={handleExpansion} size=\"small\" variant=\"outlined\">\n {actionText}\n </Button>\n </FlexRow>\n : null}\n <Collapse in={expandedJson} {...props}>\n {payload ?\n <FlexCol alignItems=\"stretch\" gap={1.5}>\n <Typography sx={{ lineHeight: 1 }}>Payload Hash:</Typography>\n <Chip label={<StyledChipLabel>{hash}</StyledChipLabel>} sx={{ alignSelf: 'start' }} />\n <JsonViewerEx value={payload} />\n </FlexCol>\n : null}\n </Collapse>\n </>\n )\n}\n","import { styled, Typography } from '@mui/material'\n\nexport const StyledChipLabel = styled(Typography, { name: 'StyledChipLabel' })(({ theme }) => ({\n display: 'block',\n lineHeight: 1,\n overflow: 'hidden',\n paddingRight: theme.spacing(0.95),\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}))\n","import { useTheme } from '@mui/material'\nimport { JsonViewer, JsonViewerProps } from '@textea/json-viewer'\nimport { useColorSchemeEx } from '@xylabs/react-invertible-theme'\n\nexport const JsonViewerEx: React.FC<JsonViewerProps> = (props) => {\n const theme = useTheme()\n const { darkMode } = useColorSchemeEx()\n\n return (\n <JsonViewer\n theme={darkMode ? 'dark' : 'light'}\n collapseStringsAfterLength={50}\n style={{\n background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n }}\n {...props}\n />\n )\n}\n","import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport { ExpansionProps } from '../../../lib'\nimport { RawInfoPayloadCollapse } from './PayloadCollapse'\n\nexport interface RawInfoDialogProps extends DialogProps, ExpansionProps {\n dialogContent?: ReactNode\n onCloseCallback?: () => void\n payload?: Payload | null\n}\n\nexport const RawInfoDialog: React.FC<RawInfoDialogProps> = ({\n defaultExpandedJson,\n dialogContent,\n onCloseCallback,\n payload,\n updateExpandedJson,\n ...props\n}) => {\n const onDialogClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n event.stopPropagation()\n }\n\n return (\n // Wrapping in a span so we can catch click events and prevent them from propagating outside the component\n <span onClick={onDialogClick}>\n <Dialog fullWidth maxWidth=\"lg\" onClose={() => onCloseCallback?.()} {...props}>\n <DialogTitle>Raw Data</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {dialogContent}\n <RawInfoPayloadCollapse defaultExpandedJson={defaultExpandedJson} payload={payload} updateExpandedJson={updateExpandedJson} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => onCloseCallback?.()}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n </span>\n )\n}\n","import { IconSize } from './IconSize'\n\nexport const presetIconSizeValue = (size?: IconSize) => {\n switch (size) {\n case 'small': {\n return 16\n }\n case 'medium': {\n return 32\n }\n case 'large': {\n return 48\n }\n }\n}\n","import { IconButton, IconButtonProps } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { forwardRef, MouseEventHandler, ReactNode, useState } from 'react'\n\nimport { ExpansionProps } from '../../lib'\nimport { xyoColorLogo } from '../img'\nimport { RawInfoDialog } from '../shared'\nimport { IconSize, presetIconSizeValue } from './lib'\n\nexport interface RawInfoIconProps extends IconButtonProps, ExpansionProps {\n dialogContent?: ReactNode\n iconOnly?: boolean\n iconSize?: number\n onCloseCallback?: () => void\n payload?: Payload\n presetIconSize?: IconSize\n}\n\nexport const RawInfoIconButton = forwardRef<HTMLButtonElement, RawInfoIconProps>(\n ({ defaultExpandedJson, dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, updateExpandedJson, ...props }, ref) => {\n const [open, setOpen] = useState(false)\n const size = presetIconSizeValue(presetIconSize)\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n event.stopPropagation()\n setOpen(true)\n }\n\n const onCloseCallBackWrapped = () => {\n setOpen(false)\n onCloseCallback?.()\n }\n\n return (\n <>\n <IconButton onClick={handleClick} ref={ref} {...props}>\n <img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />\n </IconButton>\n {iconOnly ? null : (\n <RawInfoDialog\n defaultExpandedJson={defaultExpandedJson}\n payload={payload}\n onCloseCallback={onCloseCallBackWrapped}\n dialogContent={dialogContent}\n open={open}\n updateExpandedJson={updateExpandedJson}\n />\n )}\n </>\n )\n },\n)\n\nRawInfoIconButton.displayName = 'RawInfoIcon'\n"],"mappings":"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","names":["default","Typography","jsx","Typography","Button","jsx","jsxs","Button","jsx","jsxs","default","useState","Fragment","jsx","jsxs","useState","default"]}
@@ -0,0 +1,5 @@
1
+ export interface ExpansionProps {
2
+ defaultExpandedJson?: boolean;
3
+ updateExpandedJson?: (expanded: boolean) => void;
4
+ }
5
+ //# sourceMappingURL=ExpansionProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpansionProps.d.ts","sourceRoot":"","sources":["../../../src/lib/ExpansionProps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD"}
@@ -0,0 +1,5 @@
1
+ export interface ExpansionProps {
2
+ defaultExpandedJson?: boolean;
3
+ updateExpandedJson?: (expanded: boolean) => void;
4
+ }
5
+ //# sourceMappingURL=ExpansionProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpansionProps.d.ts","sourceRoot":"","sources":["../../../src/lib/ExpansionProps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD"}
@@ -0,0 +1,5 @@
1
+ export interface ExpansionProps {
2
+ defaultExpandedJson?: boolean;
3
+ updateExpandedJson?: (expanded: boolean) => void;
4
+ }
5
+ //# sourceMappingURL=ExpansionProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpansionProps.d.ts","sourceRoot":"","sources":["../../../src/lib/ExpansionProps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD"}
@@ -0,0 +1,2 @@
1
+ export * from './ExpansionProps';
2
+ //# sourceMappingURL=index.d.ts.map