@xyo-network/react-payload-raw-info 2.69.5

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 (188) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +13 -0
  3. package/dist/browser/components/Button/RawInfoButton.d.cts +15 -0
  4. package/dist/browser/components/Button/RawInfoButton.d.cts.map +1 -0
  5. package/dist/browser/components/Button/RawInfoButton.d.mts +15 -0
  6. package/dist/browser/components/Button/RawInfoButton.d.mts.map +1 -0
  7. package/dist/browser/components/Button/RawInfoButton.d.ts +15 -0
  8. package/dist/browser/components/Button/RawInfoButton.d.ts.map +1 -0
  9. package/dist/browser/components/Button/index.d.cts +2 -0
  10. package/dist/browser/components/Button/index.d.cts.map +1 -0
  11. package/dist/browser/components/Button/index.d.mts +2 -0
  12. package/dist/browser/components/Button/index.d.mts.map +1 -0
  13. package/dist/browser/components/Button/index.d.ts +2 -0
  14. package/dist/browser/components/Button/index.d.ts.map +1 -0
  15. package/dist/browser/components/Dialog/RawInfoDialog.d.cts +10 -0
  16. package/dist/browser/components/Dialog/RawInfoDialog.d.cts.map +1 -0
  17. package/dist/browser/components/Dialog/RawInfoDialog.d.mts +10 -0
  18. package/dist/browser/components/Dialog/RawInfoDialog.d.mts.map +1 -0
  19. package/dist/browser/components/Dialog/RawInfoDialog.d.ts +10 -0
  20. package/dist/browser/components/Dialog/RawInfoDialog.d.ts.map +1 -0
  21. package/dist/browser/components/Dialog/index.d.cts +2 -0
  22. package/dist/browser/components/Dialog/index.d.cts.map +1 -0
  23. package/dist/browser/components/Dialog/index.d.mts +2 -0
  24. package/dist/browser/components/Dialog/index.d.mts.map +1 -0
  25. package/dist/browser/components/Dialog/index.d.ts +2 -0
  26. package/dist/browser/components/Dialog/index.d.ts.map +1 -0
  27. package/dist/browser/components/PayloadCollapse.d.cts +10 -0
  28. package/dist/browser/components/PayloadCollapse.d.cts.map +1 -0
  29. package/dist/browser/components/PayloadCollapse.d.mts +10 -0
  30. package/dist/browser/components/PayloadCollapse.d.mts.map +1 -0
  31. package/dist/browser/components/PayloadCollapse.d.ts +10 -0
  32. package/dist/browser/components/PayloadCollapse.d.ts.map +1 -0
  33. package/dist/browser/components/RawInfoIcon.d.cts +15 -0
  34. package/dist/browser/components/RawInfoIcon.d.cts.map +1 -0
  35. package/dist/browser/components/RawInfoIcon.d.mts +15 -0
  36. package/dist/browser/components/RawInfoIcon.d.mts.map +1 -0
  37. package/dist/browser/components/RawInfoIcon.d.ts +15 -0
  38. package/dist/browser/components/RawInfoIcon.d.ts.map +1 -0
  39. package/dist/browser/components/img/index.d.cts +2 -0
  40. package/dist/browser/components/img/index.d.cts.map +1 -0
  41. package/dist/browser/components/img/index.d.mts +2 -0
  42. package/dist/browser/components/img/index.d.mts.map +1 -0
  43. package/dist/browser/components/img/index.d.ts +2 -0
  44. package/dist/browser/components/img/index.d.ts.map +1 -0
  45. package/dist/browser/components/index.d.cts +6 -0
  46. package/dist/browser/components/index.d.cts.map +1 -0
  47. package/dist/browser/components/index.d.mts +6 -0
  48. package/dist/browser/components/index.d.mts.map +1 -0
  49. package/dist/browser/components/index.d.ts +6 -0
  50. package/dist/browser/components/index.d.ts.map +1 -0
  51. package/dist/browser/components/shared/JsonViewEx.d.cts +4 -0
  52. package/dist/browser/components/shared/JsonViewEx.d.cts.map +1 -0
  53. package/dist/browser/components/shared/JsonViewEx.d.mts +4 -0
  54. package/dist/browser/components/shared/JsonViewEx.d.mts.map +1 -0
  55. package/dist/browser/components/shared/JsonViewEx.d.ts +4 -0
  56. package/dist/browser/components/shared/JsonViewEx.d.ts.map +1 -0
  57. package/dist/browser/components/shared/index.d.cts +2 -0
  58. package/dist/browser/components/shared/index.d.cts.map +1 -0
  59. package/dist/browser/components/shared/index.d.mts +2 -0
  60. package/dist/browser/components/shared/index.d.mts.map +1 -0
  61. package/dist/browser/components/shared/index.d.ts +2 -0
  62. package/dist/browser/components/shared/index.d.ts.map +1 -0
  63. package/dist/browser/components/styled/StyledChipLabel.d.cts +5 -0
  64. package/dist/browser/components/styled/StyledChipLabel.d.cts.map +1 -0
  65. package/dist/browser/components/styled/StyledChipLabel.d.mts +5 -0
  66. package/dist/browser/components/styled/StyledChipLabel.d.mts.map +1 -0
  67. package/dist/browser/components/styled/StyledChipLabel.d.ts +5 -0
  68. package/dist/browser/components/styled/StyledChipLabel.d.ts.map +1 -0
  69. package/dist/browser/components/styled/index.d.cts +2 -0
  70. package/dist/browser/components/styled/index.d.cts.map +1 -0
  71. package/dist/browser/components/styled/index.d.mts +2 -0
  72. package/dist/browser/components/styled/index.d.mts.map +1 -0
  73. package/dist/browser/components/styled/index.d.ts +2 -0
  74. package/dist/browser/components/styled/index.d.ts.map +1 -0
  75. package/dist/browser/index.cjs +233 -0
  76. package/dist/browser/index.cjs.map +1 -0
  77. package/dist/browser/index.d.cts +2 -0
  78. package/dist/browser/index.d.cts.map +1 -0
  79. package/dist/browser/index.d.mts +2 -0
  80. package/dist/browser/index.d.mts.map +1 -0
  81. package/dist/browser/index.d.ts +2 -0
  82. package/dist/browser/index.d.ts.map +1 -0
  83. package/dist/browser/index.js +200 -0
  84. package/dist/browser/index.js.map +1 -0
  85. package/dist/browser/xyo-color-logo-LHR2SMEM.svg +1 -0
  86. package/dist/node/components/Button/RawInfoButton.d.cts +15 -0
  87. package/dist/node/components/Button/RawInfoButton.d.cts.map +1 -0
  88. package/dist/node/components/Button/RawInfoButton.d.mts +15 -0
  89. package/dist/node/components/Button/RawInfoButton.d.mts.map +1 -0
  90. package/dist/node/components/Button/RawInfoButton.d.ts +15 -0
  91. package/dist/node/components/Button/RawInfoButton.d.ts.map +1 -0
  92. package/dist/node/components/Button/index.d.cts +2 -0
  93. package/dist/node/components/Button/index.d.cts.map +1 -0
  94. package/dist/node/components/Button/index.d.mts +2 -0
  95. package/dist/node/components/Button/index.d.mts.map +1 -0
  96. package/dist/node/components/Button/index.d.ts +2 -0
  97. package/dist/node/components/Button/index.d.ts.map +1 -0
  98. package/dist/node/components/Dialog/RawInfoDialog.d.cts +10 -0
  99. package/dist/node/components/Dialog/RawInfoDialog.d.cts.map +1 -0
  100. package/dist/node/components/Dialog/RawInfoDialog.d.mts +10 -0
  101. package/dist/node/components/Dialog/RawInfoDialog.d.mts.map +1 -0
  102. package/dist/node/components/Dialog/RawInfoDialog.d.ts +10 -0
  103. package/dist/node/components/Dialog/RawInfoDialog.d.ts.map +1 -0
  104. package/dist/node/components/Dialog/index.d.cts +2 -0
  105. package/dist/node/components/Dialog/index.d.cts.map +1 -0
  106. package/dist/node/components/Dialog/index.d.mts +2 -0
  107. package/dist/node/components/Dialog/index.d.mts.map +1 -0
  108. package/dist/node/components/Dialog/index.d.ts +2 -0
  109. package/dist/node/components/Dialog/index.d.ts.map +1 -0
  110. package/dist/node/components/PayloadCollapse.d.cts +10 -0
  111. package/dist/node/components/PayloadCollapse.d.cts.map +1 -0
  112. package/dist/node/components/PayloadCollapse.d.mts +10 -0
  113. package/dist/node/components/PayloadCollapse.d.mts.map +1 -0
  114. package/dist/node/components/PayloadCollapse.d.ts +10 -0
  115. package/dist/node/components/PayloadCollapse.d.ts.map +1 -0
  116. package/dist/node/components/RawInfoIcon.d.cts +15 -0
  117. package/dist/node/components/RawInfoIcon.d.cts.map +1 -0
  118. package/dist/node/components/RawInfoIcon.d.mts +15 -0
  119. package/dist/node/components/RawInfoIcon.d.mts.map +1 -0
  120. package/dist/node/components/RawInfoIcon.d.ts +15 -0
  121. package/dist/node/components/RawInfoIcon.d.ts.map +1 -0
  122. package/dist/node/components/img/index.d.cts +2 -0
  123. package/dist/node/components/img/index.d.cts.map +1 -0
  124. package/dist/node/components/img/index.d.mts +2 -0
  125. package/dist/node/components/img/index.d.mts.map +1 -0
  126. package/dist/node/components/img/index.d.ts +2 -0
  127. package/dist/node/components/img/index.d.ts.map +1 -0
  128. package/dist/node/components/index.d.cts +6 -0
  129. package/dist/node/components/index.d.cts.map +1 -0
  130. package/dist/node/components/index.d.mts +6 -0
  131. package/dist/node/components/index.d.mts.map +1 -0
  132. package/dist/node/components/index.d.ts +6 -0
  133. package/dist/node/components/index.d.ts.map +1 -0
  134. package/dist/node/components/shared/JsonViewEx.d.cts +4 -0
  135. package/dist/node/components/shared/JsonViewEx.d.cts.map +1 -0
  136. package/dist/node/components/shared/JsonViewEx.d.mts +4 -0
  137. package/dist/node/components/shared/JsonViewEx.d.mts.map +1 -0
  138. package/dist/node/components/shared/JsonViewEx.d.ts +4 -0
  139. package/dist/node/components/shared/JsonViewEx.d.ts.map +1 -0
  140. package/dist/node/components/shared/index.d.cts +2 -0
  141. package/dist/node/components/shared/index.d.cts.map +1 -0
  142. package/dist/node/components/shared/index.d.mts +2 -0
  143. package/dist/node/components/shared/index.d.mts.map +1 -0
  144. package/dist/node/components/shared/index.d.ts +2 -0
  145. package/dist/node/components/shared/index.d.ts.map +1 -0
  146. package/dist/node/components/styled/StyledChipLabel.d.cts +5 -0
  147. package/dist/node/components/styled/StyledChipLabel.d.cts.map +1 -0
  148. package/dist/node/components/styled/StyledChipLabel.d.mts +5 -0
  149. package/dist/node/components/styled/StyledChipLabel.d.mts.map +1 -0
  150. package/dist/node/components/styled/StyledChipLabel.d.ts +5 -0
  151. package/dist/node/components/styled/StyledChipLabel.d.ts.map +1 -0
  152. package/dist/node/components/styled/index.d.cts +2 -0
  153. package/dist/node/components/styled/index.d.cts.map +1 -0
  154. package/dist/node/components/styled/index.d.mts +2 -0
  155. package/dist/node/components/styled/index.d.mts.map +1 -0
  156. package/dist/node/components/styled/index.d.ts +2 -0
  157. package/dist/node/components/styled/index.d.ts.map +1 -0
  158. package/dist/node/index.cjs +241 -0
  159. package/dist/node/index.cjs.map +1 -0
  160. package/dist/node/index.d.cts +2 -0
  161. package/dist/node/index.d.cts.map +1 -0
  162. package/dist/node/index.d.mts +2 -0
  163. package/dist/node/index.d.mts.map +1 -0
  164. package/dist/node/index.d.ts +2 -0
  165. package/dist/node/index.d.ts.map +1 -0
  166. package/dist/node/index.js +200 -0
  167. package/dist/node/index.js.map +1 -0
  168. package/dist/node/xyo-color-logo-LHR2SMEM.svg +1 -0
  169. package/package.json +88 -0
  170. package/src/components/Button/RawInfoButton.stories.tsx +27 -0
  171. package/src/components/Button/RawInfoButton.tsx +71 -0
  172. package/src/components/Button/index.ts +1 -0
  173. package/src/components/Dialog/RawInfoDialog.stories.tsx +28 -0
  174. package/src/components/Dialog/RawInfoDialog.tsx +35 -0
  175. package/src/components/Dialog/index.ts +1 -0
  176. package/src/components/PayloadCollapse.tsx +46 -0
  177. package/src/components/RawInfoIcon.stories.tsx +27 -0
  178. package/src/components/RawInfoIcon.tsx +59 -0
  179. package/src/components/img/index.ts +1 -0
  180. package/src/components/img/xyo-color-logo.svg +1 -0
  181. package/src/components/index.ts +5 -0
  182. package/src/components/shared/JsonViewEx.tsx +38 -0
  183. package/src/components/shared/index.ts +1 -0
  184. package/src/components/styled/StyledChipLabel.tsx +10 -0
  185. package/src/components/styled/index.ts +1 -0
  186. package/src/index.ts +1 -0
  187. package/src/types/images.d.ts +5 -0
  188. package/typedoc.json +5 -0
@@ -0,0 +1,71 @@
1
+ import { ButtonEx, ButtonExProps } from '@xylabs/react-button'
2
+ import { Payload, WithSchema } from '@xyo-network/payload-model'
3
+ import { MouseEventHandler, ReactNode, useState } from 'react'
4
+
5
+ import { RawInfoDialog } from '../Dialog'
6
+ import { xyoColorLogo } from '../img'
7
+
8
+ type IconSize = 'small' | 'medium' | 'large'
9
+
10
+ const presetIconSizeValue = (size?: IconSize) => {
11
+ switch (size) {
12
+ case 'small': {
13
+ return 16
14
+ }
15
+ case 'medium': {
16
+ return 32
17
+ }
18
+ case 'large': {
19
+ return 48
20
+ }
21
+ }
22
+ }
23
+
24
+ export interface RawInfoButtonProps extends ButtonExProps {
25
+ dialogContent?: ReactNode
26
+ iconOnly?: boolean
27
+ iconSize?: number
28
+ onCloseCallback?: () => void
29
+ payload?: Payload<WithSchema> | null
30
+ presetIconSize?: IconSize
31
+ }
32
+
33
+ export const RawInfoButton: React.FC<RawInfoButtonProps> = ({
34
+ dialogContent,
35
+ iconOnly,
36
+ iconSize = 24,
37
+ onCloseCallback,
38
+ children,
39
+ payload,
40
+ presetIconSize,
41
+ ...props
42
+ }) => {
43
+ const [open, setOpen] = useState(false)
44
+ const size = presetIconSizeValue(presetIconSize)
45
+
46
+ const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {
47
+ event.stopPropagation()
48
+ setOpen(true)
49
+ }
50
+
51
+ const onCloseCallBackWrapped = () => {
52
+ setOpen(false)
53
+ onCloseCallback?.()
54
+ }
55
+
56
+ return (
57
+ <span>
58
+ <ButtonEx
59
+ variant="outlined"
60
+ size="small"
61
+ startIcon={<img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />}
62
+ onClick={handleClick}
63
+ disabled={iconOnly ? false : !payload}
64
+ {...props}
65
+ >
66
+ {children ?? <span>Data</span>}
67
+ </ButtonEx>
68
+ {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}
69
+ </span>
70
+ )
71
+ }
@@ -0,0 +1 @@
1
+ export * from './RawInfoButton'
@@ -0,0 +1,28 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { FlexCol } from "@xylabs/react-flexbox";
3
+ import { Payload } from "@xyo-network/payload-model";
4
+ import { RawInfoDialog } from "./RawInfoDialog";
5
+
6
+ type TestPayload = Payload<{ id: string, type: string, schema: string }, 'network.xyo.test'>
7
+ const TestPayload: TestPayload = {
8
+ id: '123',
9
+ type: 'test',
10
+ schema: 'network.xyo.test',
11
+ }
12
+
13
+ export default {
14
+ title: 'payload/RawInfoDialog',
15
+ component: RawInfoDialog,
16
+ } as Meta
17
+
18
+ const Template: StoryFn<typeof RawInfoDialog> = (args) => <FlexCol><RawInfoDialog {...args} /></FlexCol>
19
+
20
+ const Default = Template.bind({})
21
+ const WithPayload = Template.bind({})
22
+ WithPayload.args = {
23
+ dialogContent: 'This is a test',
24
+ open: true,
25
+ payload: TestPayload
26
+ }
27
+
28
+ export { Default, WithPayload };
@@ -0,0 +1,35 @@
1
+ import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'
2
+ import { Payload } from '@xyo-network/payload-model'
3
+ import { MouseEventHandler, ReactNode } from 'react'
4
+
5
+ import { RawInfoPayloadCollapse } from '../PayloadCollapse'
6
+
7
+ export interface RawInfoDialogProps extends DialogProps {
8
+ dialogContent?: ReactNode
9
+ onCloseCallback?: () => void
10
+ payload?: Payload | null
11
+ }
12
+
13
+ export const RawInfoDialog: React.FC<RawInfoDialogProps> = ({ dialogContent, onCloseCallback, payload, ...props }) => {
14
+ const onDialogClick: MouseEventHandler<HTMLSpanElement> = (event) => {
15
+ event.stopPropagation()
16
+ }
17
+
18
+ return (
19
+ // Wrapping in a span so we can catch click events and prevent them from propagating outside the component
20
+ <span onClick={onDialogClick}>
21
+ <Dialog fullWidth maxWidth="lg" onClose={() => onCloseCallback?.()} {...props}>
22
+ <DialogTitle>Raw Data</DialogTitle>
23
+ <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
24
+ {dialogContent}
25
+ <RawInfoPayloadCollapse payload={payload} />
26
+ </DialogContent>
27
+ <DialogActions>
28
+ <Button variant="contained" onClick={() => onCloseCallback?.()}>
29
+ Close
30
+ </Button>
31
+ </DialogActions>
32
+ </Dialog>
33
+ </span>
34
+ )
35
+ }
@@ -0,0 +1 @@
1
+ export * from './RawInfoDialog'
@@ -0,0 +1,46 @@
1
+ import { Button, Chip, Collapse, CollapseProps, Typography } from '@mui/material'
2
+ import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
3
+ import { usePromise } from '@xylabs/react-promise'
4
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
5
+ import { Payload } from '@xyo-network/payload-model'
6
+ import { useDataState } from '@xyo-network/react-shared'
7
+
8
+ import { JsonViewEx } from './shared'
9
+ import { StyledChipLabel } from './styled'
10
+
11
+ export interface RawInfoPayloadCollapse extends CollapseProps {
12
+ defaultExpandedJson?: boolean
13
+ payload?: Payload | null
14
+ updateExpandedJson?: (expanded: boolean) => void
15
+ }
16
+
17
+ export const RawInfoPayloadCollapse: React.FC<RawInfoPayloadCollapse> = ({ defaultExpandedJson, payload, updateExpandedJson, ...props }) => {
18
+ const [expandedJson, setExpandedJson] = useDataState(defaultExpandedJson)
19
+ const [hash] = usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])
20
+
21
+ const handleExpansion = () => {
22
+ updateExpandedJson?.(!expandedJson)
23
+ setExpandedJson(!expandedJson)
24
+ }
25
+
26
+ return (
27
+ <>
28
+ {payload ?
29
+ <FlexRow>
30
+ <Button onClick={handleExpansion} size="small" variant="outlined">
31
+ Show Raw JSON
32
+ </Button>
33
+ </FlexRow>
34
+ : null}
35
+ <Collapse in={expandedJson} {...props}>
36
+ {payload ?
37
+ <FlexCol alignItems="stretch" gap={1.5}>
38
+ <Typography sx={{ lineHeight: 1 }}>Payload Hash:</Typography>
39
+ <Chip label={<StyledChipLabel>{hash}</StyledChipLabel>} sx={{ alignSelf: 'start' }} />
40
+ <JsonViewEx src={payload} />
41
+ </FlexCol>
42
+ : null}
43
+ </Collapse>
44
+ </>
45
+ )
46
+ }
@@ -0,0 +1,27 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { FlexCol } from "@xylabs/react-flexbox";
3
+ import { Payload } from "@xyo-network/payload-model";
4
+ import { RawInfoIcon } from "./RawInfoIcon";
5
+
6
+ type TestPayload = Payload<{ id: string, type: string, schema: string }, 'network.xyo.test'>
7
+ const TestPayload: TestPayload = {
8
+ id: '123',
9
+ type: 'test',
10
+ schema: 'network.xyo.test',
11
+ }
12
+
13
+ export default {
14
+ title: 'payload/RawInfoIcon',
15
+ component: RawInfoIcon,
16
+ } as Meta
17
+
18
+ const Template: StoryFn<typeof RawInfoIcon> = (args) => <FlexCol><RawInfoIcon {...args} /></FlexCol>
19
+
20
+ const Default = Template.bind({})
21
+ const WithPayload = Template.bind({})
22
+ WithPayload.args = {
23
+ dialogContent: 'This is a test',
24
+ payload: TestPayload
25
+ }
26
+
27
+ export { Default, WithPayload };
@@ -0,0 +1,59 @@
1
+ import { IconButton, IconButtonProps } from '@mui/material'
2
+ import { Payload } from '@xyo-network/payload-model'
3
+ import { forwardRef, MouseEventHandler, ReactNode, useState } from 'react'
4
+
5
+ import { RawInfoDialog } from './Dialog'
6
+ import { xyoColorLogo } from './img'
7
+
8
+ type IconSize = 'small' | 'medium' | 'large'
9
+
10
+ const presetIconSizeValue = (size?: IconSize) => {
11
+ switch (size) {
12
+ case 'small': {
13
+ return 16
14
+ }
15
+ case 'medium': {
16
+ return 32
17
+ }
18
+ case 'large': {
19
+ return 48
20
+ }
21
+ }
22
+ }
23
+
24
+ export interface RawInfoIconProps extends IconButtonProps {
25
+ dialogContent?: ReactNode
26
+ iconOnly?: boolean
27
+ iconSize?: number
28
+ onCloseCallback?: () => void
29
+ payload?: Payload
30
+ presetIconSize?: IconSize
31
+ }
32
+
33
+ export const RawInfoIcon = forwardRef<HTMLButtonElement, RawInfoIconProps>(
34
+ ({ dialogContent, iconOnly, iconSize = 32, onCloseCallback, payload, presetIconSize, ...props }, ref) => {
35
+ const [open, setOpen] = useState(false)
36
+ const size = presetIconSizeValue(presetIconSize)
37
+
38
+ const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {
39
+ event.stopPropagation()
40
+ setOpen(true)
41
+ }
42
+
43
+ const onCloseCallBackWrapped = () => {
44
+ setOpen(false)
45
+ onCloseCallback?.()
46
+ }
47
+
48
+ return (
49
+ <>
50
+ <IconButton onClick={handleClick} ref={ref} {...props}>
51
+ <img src={xyoColorLogo} height={size ?? iconSize} width={size ?? iconSize} />
52
+ </IconButton>
53
+ {iconOnly ? null : <RawInfoDialog payload={payload} onCloseCallback={onCloseCallBackWrapped} dialogContent={dialogContent} open={open} />}
54
+ </>
55
+ )
56
+ },
57
+ )
58
+
59
+ RawInfoIcon.displayName = 'RawInfoIcon'
@@ -0,0 +1 @@
1
+ export { default as xyoColorLogo } from './xyo-color-logo.svg'
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 238"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class="cls-1" d="M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z"/><path class="cls-2" d="M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z"/><path class="cls-3" d="M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z"/><path class="cls-4" d="M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z"/></svg>
@@ -0,0 +1,5 @@
1
+ export * from './Button'
2
+ export * from './Dialog'
3
+ export * from './PayloadCollapse'
4
+ export * from './RawInfoIcon'
5
+ export * from './styled'
@@ -0,0 +1,38 @@
1
+ import { CircularProgress, useTheme } from '@mui/material'
2
+ import { useColorSchemeEx } from '@xylabs/react-invertible-theme'
3
+ import { lazy, Suspense } from 'react'
4
+ import { OnCopyProps, ReactJsonViewProps } from 'react-json-view'
5
+
6
+ const JsonView = lazy(() => import(/* webpackChunkName: "jsonView" */ 'react-json-view'))
7
+
8
+ export const JsonViewEx: React.FC<ReactJsonViewProps> = (props) => {
9
+ const theme = useTheme()
10
+ const { darkMode } = useColorSchemeEx()
11
+
12
+ const onCopy = async (event: OnCopyProps) => {
13
+ if (event.src) {
14
+ try {
15
+ const copyContent = typeof event.src === 'string' ? event.src : JSON.stringify(event.src, null, 2)
16
+ await navigator.clipboard.writeText(copyContent)
17
+ } catch (e) {
18
+ console.error('Error Copying to clipboard', e, event.src)
19
+ }
20
+ }
21
+ }
22
+
23
+ return (
24
+ <Suspense fallback={<CircularProgress />}>
25
+ <JsonView
26
+ enableClipboard={onCopy}
27
+ theme={darkMode ? 'tomorrow' : 'summerfruit:inverted'}
28
+ collapseStringsAfterLength={50}
29
+ style={{
30
+ background: darkMode ? theme.palette.background.paper : theme.palette.grey[200],
31
+ borderRadius: theme.shape.borderRadius,
32
+ padding: theme.spacing(2),
33
+ }}
34
+ {...props}
35
+ />
36
+ </Suspense>
37
+ )
38
+ }
@@ -0,0 +1 @@
1
+ export * from './JsonViewEx'
@@ -0,0 +1,10 @@
1
+ import { styled, Typography } from '@mui/material'
2
+
3
+ export const StyledChipLabel = styled(Typography, { name: 'StyledChipLabel' })(({ theme }) => ({
4
+ display: 'block',
5
+ lineHeight: 1,
6
+ overflow: 'hidden',
7
+ paddingRight: theme.spacing(0.95),
8
+ textOverflow: 'ellipsis',
9
+ whiteSpace: 'nowrap',
10
+ }))
@@ -0,0 +1 @@
1
+ export * from './StyledChipLabel'
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './components'
@@ -0,0 +1,5 @@
1
+ declare module '*.png'
2
+ declare module '*.jpg'
3
+ declare module '*.svg'
4
+ declare module '*.gif'
5
+ declare module '*.webp'
package/typedoc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://typedoc.org/schema.json",
3
+ "entryPoints": ["src/index.ts"],
4
+ "tsconfig": "./tsconfig.typedoc.json"
5
+ }