@xyo-network/react-chain-transfer-plugin 1.23.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,99 +1,123 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/transfer/Plugin.ts
5
2
  import { createPayloadRenderPlugin } from "@xyo-network/react-payload-plugin";
6
3
  import { TransferSchema } from "@xyo-network/xl1-sdk";
7
4
 
8
5
  // src/transfer/box/Details.tsx
9
6
  import { FlexCol } from "@xylabs/react-flexbox";
10
- import React5 from "react";
11
7
 
12
8
  // src/transfer/card/TransferRenderCard.tsx
13
- import { Card, CardContent, CardHeader, List, useMediaQuery, useTheme as useTheme3 } from "@mui/material";
9
+ import {
10
+ Card,
11
+ CardContent,
12
+ CardHeader,
13
+ List,
14
+ useMediaQuery,
15
+ useTheme as useTheme3
16
+ } from "@mui/material";
14
17
  import { asAddress as asAddress2, asHex } from "@xylabs/sdk-js";
15
18
  import { useEvent } from "@xyo-network/react-event";
16
19
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/xl1-blockies";
17
20
  import { asTransfer } from "@xyo-network/xl1-sdk";
18
- import React4, { useMemo } from "react";
21
+ import { useMemo } from "react";
19
22
 
20
23
  // src/transfer/card/ListItem.tsx
21
- import { ListItem, ListItemAvatar, ListItemText, Stack, Typography, useTheme } from "@mui/material";
22
- import { asAddress, hexToBigInt, isDefined } from "@xylabs/sdk-js";
24
+ import {
25
+ ListItem,
26
+ ListItemAvatar,
27
+ ListItemText,
28
+ Stack,
29
+ Typography,
30
+ useTheme
31
+ } from "@mui/material";
32
+ import {
33
+ asAddress,
34
+ hexToBigInt,
35
+ isDefined
36
+ } from "@xylabs/sdk-js";
23
37
  import { NetworkIcon } from "@xyo-network/react-chain-network";
24
38
  import { BlockiesAvatar } from "@xyo-network/xl1-blockies";
25
39
  import { MainNetworkIconString } from "@xyo-network/xl1-sdk";
26
- import React from "react";
27
- var TransferRenderListItem = /* @__PURE__ */ __name(({ address, amount, sx, transferCardHelper, ...props }) => {
40
+ import { jsx, jsxs } from "react/jsx-runtime";
41
+ var TransferRenderListItem = ({
42
+ address,
43
+ amount,
44
+ sx,
45
+ transferCardHelper,
46
+ ...props
47
+ }) => {
28
48
  const theme = useTheme();
29
- return /* @__PURE__ */ React.createElement(ListItem, {
30
- sx: {
31
- px: 0,
32
- ...sx
33
- },
34
- ...props
35
- }, /* @__PURE__ */ React.createElement(ListItemAvatar, {
36
- sx: {
37
- minWidth: 30,
38
- mr: theme.spacing(2)
39
- }
40
- }, /* @__PURE__ */ React.createElement(BlockiesAvatar, {
41
- title: address,
42
- sx: {
43
- width: 30,
44
- height: 30
45
- },
46
- blockiesOptions: {
47
- seed: address
48
- }
49
- })), /* @__PURE__ */ React.createElement(ListItemText, {
50
- sx: {
51
- borderBottom: `1px solid ${theme.vars.palette.divider}`
52
- }
53
- }, /* @__PURE__ */ React.createElement(Stack, {
54
- direction: "row",
55
- sx: {
56
- gap: 2,
57
- justifyContent: "space-between",
58
- width: "100%"
59
- }
60
- }, /* @__PURE__ */ React.createElement(Typography, {
61
- component: "span",
62
- variant: "caption",
63
- sx: {
64
- fontFamily: "monospace"
65
- }
66
- }, transferCardHelper.addressComponent(asAddress(address), "To")), /* @__PURE__ */ React.createElement(Typography, {
67
- component: "span",
68
- variant: "caption",
69
- title: isDefined(amount) ? hexToBigInt(amount).toString() : "",
70
- sx: {
71
- fontFamily: "monospace",
72
- display: "inline-flex",
73
- alignItems: "center",
74
- gap: theme.spacing(0.25)
75
- }
76
- }, transferCardHelper.formatAmountToXl1(amount), /* @__PURE__ */ React.createElement(NetworkIcon, {
77
- icon: MainNetworkIconString,
78
- style: {
79
- width: 16,
80
- height: 16,
81
- display: "inline-flex",
82
- alignItems: "end"
83
- }
84
- }), "(XL1)"))));
85
- }, "TransferRenderListItem");
49
+ return /* @__PURE__ */ jsxs(ListItem, { sx: { px: 0, ...sx }, ...props, children: [
50
+ /* @__PURE__ */ jsx(ListItemAvatar, { sx: { minWidth: 30, mr: theme.spacing(2) }, children: /* @__PURE__ */ jsx(BlockiesAvatar, { title: address, sx: { width: 30, height: 30 }, blockiesOptions: { seed: address } }) }),
51
+ /* @__PURE__ */ jsx(ListItemText, { sx: { borderBottom: `1px solid ${theme.vars.palette.divider}` }, children: /* @__PURE__ */ jsxs(
52
+ Stack,
53
+ {
54
+ direction: "row",
55
+ sx: {
56
+ gap: 2,
57
+ justifyContent: "space-between",
58
+ width: "100%"
59
+ },
60
+ children: [
61
+ /* @__PURE__ */ jsx(
62
+ Typography,
63
+ {
64
+ component: "span",
65
+ variant: "caption",
66
+ sx: { fontFamily: "monospace" },
67
+ children: transferCardHelper.addressComponent(asAddress(address), "To")
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsxs(
71
+ Typography,
72
+ {
73
+ component: "span",
74
+ variant: "caption",
75
+ title: isDefined(amount) ? hexToBigInt(amount).toString() : "",
76
+ sx: {
77
+ fontFamily: "monospace",
78
+ display: "inline-flex",
79
+ alignItems: "center",
80
+ gap: theme.spacing(0.25)
81
+ },
82
+ children: [
83
+ transferCardHelper.formatAmountToXl1(amount),
84
+ /* @__PURE__ */ jsx(
85
+ NetworkIcon,
86
+ {
87
+ icon: MainNetworkIconString,
88
+ style: {
89
+ width: 16,
90
+ height: 16,
91
+ display: "inline-flex",
92
+ alignItems: "end"
93
+ }
94
+ }
95
+ ),
96
+ "(XL1)"
97
+ ]
98
+ }
99
+ )
100
+ ]
101
+ }
102
+ ) })
103
+ ] });
104
+ };
86
105
 
87
106
  // src/transfer/card/TransferRenderCardHelper.tsx
88
107
  import { Link } from "@mui/material";
89
- import { ellipsize, hexToBigInt as hexToBigInt2, isDefined as isDefined2, isHex, isUndefined } from "@xylabs/sdk-js";
90
- import { XL1Places } from "@xyo-network/xl1-sdk";
108
+ import {
109
+ ellipsize,
110
+ hexToBigInt as hexToBigInt2,
111
+ isDefined as isDefined2,
112
+ isHex,
113
+ isUndefined
114
+ } from "@xylabs/sdk-js";
115
+ import {
116
+ XL1Places
117
+ } from "@xyo-network/xl1-sdk";
91
118
  import { XL1Amount } from "@xyo-network/xl1-sdk";
92
- import React2 from "react";
119
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
93
120
  var TransferCardHelper = class {
94
- static {
95
- __name(this, "TransferCardHelper");
96
- }
97
121
  _dispatch;
98
122
  _isMedium;
99
123
  _options;
@@ -123,14 +147,20 @@ var TransferCardHelper = class {
123
147
  const resolvedPrefix = isDefined2(prefix) ? `${prefix}: ` : "";
124
148
  const text = `${this.formatAddress(address) ?? "Unknown"}`;
125
149
  if (this.options?.links?.has("address")) {
126
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, resolvedPrefix, " ", /* @__PURE__ */ React2.createElement(Link, {
127
- onClick: /* @__PURE__ */ __name(() => {
128
- this.dispatch?.("address", "click", address);
129
- }, "onClick"),
130
- sx: {
131
- cursor: "pointer"
132
- }
133
- }, text));
150
+ return /* @__PURE__ */ jsxs2(Fragment, { children: [
151
+ resolvedPrefix,
152
+ " ",
153
+ /* @__PURE__ */ jsx2(
154
+ Link,
155
+ {
156
+ onClick: () => {
157
+ this.dispatch?.("address", "click", address);
158
+ },
159
+ sx: { cursor: "pointer" },
160
+ children: text
161
+ }
162
+ )
163
+ ] });
134
164
  }
135
165
  return `${resolvedPrefix}${text}`;
136
166
  }
@@ -164,105 +194,125 @@ var TransferCardHelper = class {
164
194
  import { Typography as Typography2, useTheme as useTheme2 } from "@mui/material";
165
195
  import { NetworkIcon as NetworkIcon2 } from "@xyo-network/react-chain-network";
166
196
  import { MainNetworkIconString as MainNetworkIconString2 } from "@xyo-network/xl1-sdk";
167
- import React3 from "react";
168
- var TransferRenderTotalTypography = /* @__PURE__ */ __name(({ transferRenderHelper, sx, ...props }) => {
197
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
198
+ var TransferRenderTotalTypography = ({
199
+ transferRenderHelper,
200
+ sx,
201
+ ...props
202
+ }) => {
169
203
  const theme = useTheme2();
170
- return /* @__PURE__ */ React3.createElement(Typography2, {
171
- sx: {
172
- display: "inline-flex",
173
- gap: theme.spacing(0.25),
174
- fontFamily: "monospace",
175
- ...sx
176
- },
177
- variant: "caption",
178
- ...props
179
- }, "Total:", " ", /* @__PURE__ */ React3.createElement("strong", null, transferRenderHelper?.totalTransferred()), /* @__PURE__ */ React3.createElement(NetworkIcon2, {
180
- icon: MainNetworkIconString2,
181
- style: {
182
- width: 16,
183
- height: 16,
184
- display: "inline-flex",
185
- alignItems: "end"
204
+ return /* @__PURE__ */ jsxs3(
205
+ Typography2,
206
+ {
207
+ sx: {
208
+ display: "inline-flex",
209
+ gap: theme.spacing(0.25),
210
+ fontFamily: "monospace",
211
+ ...sx
212
+ },
213
+ variant: "caption",
214
+ ...props,
215
+ children: [
216
+ "Total:",
217
+ " ",
218
+ /* @__PURE__ */ jsx3("strong", { children: transferRenderHelper?.totalTransferred() }),
219
+ /* @__PURE__ */ jsx3(
220
+ NetworkIcon2,
221
+ {
222
+ icon: MainNetworkIconString2,
223
+ style: {
224
+ width: 16,
225
+ height: 16,
226
+ display: "inline-flex",
227
+ alignItems: "end"
228
+ }
229
+ }
230
+ ),
231
+ "(XL1)"
232
+ ]
186
233
  }
187
- }), "(XL1)");
188
- }, "TransferRenderTotalTypography");
234
+ );
235
+ };
189
236
 
190
237
  // src/transfer/card/TransferRenderCard.tsx
191
- var TransferRenderCard = /* @__PURE__ */ __name(({ options, payload, ...props }) => {
238
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
239
+ var TransferRenderCard = ({
240
+ options,
241
+ payload,
242
+ ...props
243
+ }) => {
192
244
  const theme = useTheme3();
193
245
  const isMedium = useMediaQuery((theme2) => theme2.breakpoints.up("sm"));
194
246
  const [ref, dispatch] = useEvent();
195
247
  const transfer = asTransfer(payload);
196
248
  const { from, transfers } = transfer ?? {};
197
- const transferCardHelper = useMemo(() => new TransferCardHelper(isMedium, asTransfer(payload), dispatch, options), [
198
- isMedium,
199
- payload,
200
- dispatch,
201
- options
202
- ]);
203
- return /* @__PURE__ */ React4.createElement(Card, {
204
- ref,
205
- ...props
206
- }, /* @__PURE__ */ React4.createElement(CardHeader, {
207
- title: transferCardHelper.addressComponent(from, "From"),
208
- slotProps: {
209
- title: {
210
- title: from,
211
- variant: "body1",
212
- fontFamily: "monospace"
213
- }
214
- },
215
- avatar: /* @__PURE__ */ React4.createElement(BlockiesAvatar2, {
216
- sx: {
217
- width: 30,
218
- height: 30
219
- },
220
- title: from,
221
- blockiesOptions: {
222
- seed: from
223
- }
224
- })
225
- }), /* @__PURE__ */ React4.createElement(CardContent, {
226
- sx: {
227
- "&:last-child": {
228
- pb: theme.spacing(0)
249
+ const transferCardHelper = useMemo(
250
+ () => new TransferCardHelper(isMedium, asTransfer(payload), dispatch, options),
251
+ [isMedium, payload, dispatch, options]
252
+ );
253
+ return /* @__PURE__ */ jsxs4(Card, { ref, ...props, children: [
254
+ /* @__PURE__ */ jsx4(
255
+ CardHeader,
256
+ {
257
+ title: transferCardHelper.addressComponent(from, "From"),
258
+ slotProps: {
259
+ title: {
260
+ title: from,
261
+ variant: "body1",
262
+ fontFamily: "monospace"
263
+ }
264
+ },
265
+ avatar: /* @__PURE__ */ jsx4(BlockiesAvatar2, { sx: { width: 30, height: 30 }, title: from, blockiesOptions: { seed: from } })
229
266
  }
230
- }
231
- }, /* @__PURE__ */ React4.createElement(List, null, Object.entries(transfers ?? {}).map(([address, amount]) => /* @__PURE__ */ React4.createElement(TransferRenderListItem, {
232
- key: address,
233
- address: asAddress2(address),
234
- amount: asHex(amount),
235
- transferCardHelper
236
- }))), /* @__PURE__ */ React4.createElement(TransferRenderTotalTypography, {
237
- transferRenderHelper: transferCardHelper,
238
- sx: {
239
- // pt matches bottom padding of the ListItem
240
- width: "100%",
241
- justifyContent: "end",
242
- pt: 0.6666666667,
243
- pb: theme.spacing(2)
244
- }
245
- })));
246
- }, "TransferRenderCard");
267
+ ),
268
+ /* @__PURE__ */ jsxs4(CardContent, { sx: { "&:last-child": { pb: theme.spacing(0) } }, children: [
269
+ /* @__PURE__ */ jsx4(List, { children: Object.entries(transfers ?? {}).map(([address, amount]) => /* @__PURE__ */ jsx4(
270
+ TransferRenderListItem,
271
+ {
272
+ address: asAddress2(address),
273
+ amount: asHex(amount),
274
+ transferCardHelper
275
+ },
276
+ address
277
+ )) }),
278
+ /* @__PURE__ */ jsx4(
279
+ TransferRenderTotalTypography,
280
+ {
281
+ transferRenderHelper: transferCardHelper,
282
+ sx: {
283
+ // pt matches bottom padding of the ListItem
284
+ width: "100%",
285
+ justifyContent: "end",
286
+ pt: 0.6666666667,
287
+ pb: theme.spacing(2)
288
+ }
289
+ }
290
+ )
291
+ ] })
292
+ ] });
293
+ };
247
294
 
248
295
  // src/transfer/box/Details.tsx
249
- var TransferRenderBoxDetails = /* @__PURE__ */ __name(({ options, payload, ...props }) => {
250
- return /* @__PURE__ */ React5.createElement(FlexCol, props, /* @__PURE__ */ React5.createElement(TransferRenderCard, {
251
- options,
252
- payload
253
- }));
254
- }, "TransferRenderBoxDetails");
296
+ import { jsx as jsx5 } from "react/jsx-runtime";
297
+ var TransferRenderBoxDetails = ({
298
+ options,
299
+ payload,
300
+ ...props
301
+ }) => {
302
+ return /* @__PURE__ */ jsx5(FlexCol, { ...props, children: /* @__PURE__ */ jsx5(
303
+ TransferRenderCard,
304
+ {
305
+ options,
306
+ payload
307
+ }
308
+ ) });
309
+ };
255
310
 
256
311
  // src/transfer/Plugin.ts
257
312
  var TransferRenderPlugin = {
258
313
  ...createPayloadRenderPlugin({
259
- canRender: /* @__PURE__ */ __name((payload) => payload?.schema === TransferSchema, "canRender"),
260
- components: {
261
- box: {
262
- detailsBox: TransferRenderBoxDetails,
263
- detailsCard: TransferRenderCard
264
- }
265
- },
314
+ canRender: (payload) => payload?.schema === TransferSchema,
315
+ components: { box: { detailsBox: TransferRenderBoxDetails, detailsCard: TransferRenderCard } },
266
316
  name: "Transfer"
267
317
  })
268
318
  };
@@ -271,4 +321,4 @@ export {
271
321
  TransferRenderPlugin,
272
322
  Plugin_default as default
273
323
  };
274
- //# sourceMappingURL=Plugin.mjs.map
324
+ //# sourceMappingURL=Plugin.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../../src/transfer/Plugin.ts","../../../src/transfer/box/Details.tsx","../../../src/transfer/card/TransferRenderCard.tsx","../../../src/transfer/card/ListItem.tsx","../../../src/transfer/card/TransferRenderCardHelper.tsx","../../../src/transfer/card/TransferRenderTotalTypography.tsx"],"sourcesContent":["import type { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport { createPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { TransferSchema } from '@xyo-network/xl1-sdk'\n\nimport { TransferRenderBoxDetails } from './box/index.ts'\nimport { TransferRenderCard } from './card/index.ts'\n\nexport const TransferRenderPlugin: PayloadRenderPlugin = {\n ...createPayloadRenderPlugin({\n canRender: (payload?: Payload) => payload?.schema === TransferSchema,\n components: { box: { detailsBox: TransferRenderBoxDetails, detailsCard: TransferRenderCard } },\n name: 'Transfer',\n }),\n}\n\nexport default TransferRenderPlugin\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { PayloadDetailsRenderProps } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport React from 'react'\n\nimport { TransferRenderCard } from '../card/index.ts'\nimport type { TransferRenderOptions } from '../lib/index.ts'\n\nexport interface TransferRenderBoxDetailsProps extends PayloadDetailsRenderProps, FlexBoxProps {\n options?: TransferRenderOptions\n payload?: Payload\n}\n\nexport const TransferRenderBoxDetails: React.FC<TransferRenderBoxDetailsProps> = ({\n options,\n payload,\n ...props\n}) => {\n return (\n <FlexCol {...props}>\n <TransferRenderCard\n options={options}\n payload={payload}\n />\n </FlexCol>\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, List, useMediaQuery, useTheme,\n} from '@mui/material'\nimport { asAddress, asHex } from '@xylabs/sdk-js'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { PayloadDetailsRenderProps } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { BlockiesAvatar } from '@xyo-network/xl1-blockies'\nimport { asTransfer } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nimport type { TransferRenderOptions } from '../lib/index.ts'\nimport { TransferRenderListItem } from './ListItem.tsx'\nimport { TransferCardHelper } from './TransferRenderCardHelper.tsx'\nimport { TransferRenderTotalTypography } from './TransferRenderTotalTypography.tsx'\n\nexport interface TransferRenderCardProps extends PayloadDetailsRenderProps, CardProps {\n options?: TransferRenderOptions\n payload?: Payload\n}\n\nexport const TransferRenderCard: React.FC<TransferRenderCardProps> = ({\n options, payload, ...props\n}) => {\n const theme = useTheme()\n const isMedium = useMediaQuery(theme => theme.breakpoints.up('sm'))\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n const transfer = asTransfer(payload)\n const { from, transfers } = transfer ?? {}\n\n const transferCardHelper = useMemo(\n () =>\n new TransferCardHelper(isMedium, asTransfer(payload), dispatch, options),\n [isMedium, payload, dispatch, options],\n )\n\n return (\n <Card ref={ref} {...props}>\n <CardHeader\n title={transferCardHelper.addressComponent(from, 'From')}\n slotProps={{\n title: {\n title: from, variant: 'body1', fontFamily: 'monospace',\n },\n }}\n avatar={<BlockiesAvatar sx={{ width: 30, height: 30 }} title={from} blockiesOptions={{ seed: from }} />}\n />\n <CardContent sx={{ '&:last-child': { pb: theme.spacing(0) } }}>\n <List>\n {Object.entries(transfers ?? {}).map(([address, amount]) => (\n <TransferRenderListItem\n key={address}\n address={asAddress(address)}\n amount={asHex(amount)}\n transferCardHelper={transferCardHelper}\n />\n ))}\n </List>\n <TransferRenderTotalTypography\n transferRenderHelper={transferCardHelper}\n sx={{\n // pt matches bottom padding of the ListItem\n width: '100%', justifyContent: 'end', pt: 0.666_666_666_7, pb: theme.spacing(2),\n }}\n />\n </CardContent>\n </Card>\n )\n}\n","import {\n ListItem, ListItemAvatar, type ListItemProps, ListItemText, Stack, Typography,\n useTheme,\n} from '@mui/material'\nimport type { Address, Hex } from '@xylabs/sdk-js'\nimport {\n asAddress, hexToBigInt, isDefined,\n} from '@xylabs/sdk-js'\nimport { NetworkIcon } from '@xyo-network/react-chain-network'\nimport { BlockiesAvatar } from '@xyo-network/xl1-blockies'\nimport { MainNetworkIconString } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport type { TransferCardHelper } from './TransferRenderCardHelper.tsx'\n\nexport interface TransferRenderListItem extends ListItemProps {\n address?: Address\n amount?: Hex\n transferCardHelper: TransferCardHelper\n}\n\nexport const TransferRenderListItem: React.FC<TransferRenderListItem> = ({\n address, amount, sx, transferCardHelper, ...props\n}) => {\n const theme = useTheme()\n return (\n <ListItem sx={{ px: 0, ...sx }} {...props}>\n <ListItemAvatar sx={{ minWidth: 30, mr: theme.spacing(2) }}>\n <BlockiesAvatar title={address} sx={{ width: 30, height: 30 }} blockiesOptions={{ seed: address }} />\n </ListItemAvatar>\n <ListItemText sx={{ borderBottom: `1px solid ${theme.vars.palette.divider}` }}>\n <Stack\n direction=\"row\"\n sx={{\n gap: 2,\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Typography\n component=\"span\"\n variant=\"caption\"\n sx={{ fontFamily: 'monospace' }}\n >\n {transferCardHelper.addressComponent(asAddress(address), 'To')}\n </Typography>\n <Typography\n component=\"span\"\n variant=\"caption\"\n title={isDefined(amount) ? hexToBigInt(amount).toString() : ''}\n sx={{\n fontFamily: 'monospace',\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(0.25),\n }}\n >\n {transferCardHelper.formatAmountToXl1(amount)}\n <NetworkIcon\n icon={MainNetworkIconString}\n style={{\n width: 16, height: 16, display: 'inline-flex', alignItems: 'end',\n }}\n />\n (XL1)\n </Typography>\n </Stack>\n </ListItemText>\n </ListItem>\n )\n}\n","import { Link } from '@mui/material'\nimport type { Address, Hex } from '@xylabs/sdk-js'\nimport {\n ellipsize, hexToBigInt, isDefined, isHex, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { EventDispatch } from '@xyo-network/react-event'\nimport {\n type AttoXL1, type Transfer, XL1Places,\n} from '@xyo-network/xl1-sdk'\nimport { XL1Amount } from '@xyo-network/xl1-sdk'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { TransferRenderOptions } from '../lib/index.ts'\n\nexport class TransferCardHelper {\n private _dispatch: EventDispatch | undefined\n private _isMedium: boolean\n private _options: TransferRenderOptions | undefined\n private _payload: Transfer | undefined\n\n constructor(\n isMedium: boolean,\n payload?: Transfer,\n dispatch?: EventDispatch,\n options?: TransferRenderOptions,\n ) {\n this._isMedium = isMedium\n this._options = options\n this._payload = payload\n this._dispatch = dispatch\n }\n\n get dispatch() {\n return this._dispatch\n }\n\n get isMedium() {\n return this._isMedium\n }\n\n get linkedAddresses() {\n return this.options?.links?.has('address')\n }\n\n get options() {\n return this._options\n }\n\n get payload(): Transfer | undefined {\n return this._payload\n }\n\n addressComponent(address?: Address, prefix?: string): ReactNode {\n const resolvedPrefix = isDefined(prefix) ? `${prefix}: ` : ''\n const text = `${this.formatAddress(address) ?? 'Unknown'}`\n if (this.options?.links?.has('address')) {\n return (\n <>\n {resolvedPrefix}\n {' '}\n <Link\n onClick={() => {\n this.dispatch?.('address', 'click', address)\n }}\n sx={{ cursor: 'pointer' }}\n >\n {text}\n </Link>\n </>\n )\n }\n return `${resolvedPrefix}${text}`\n }\n\n formatAddress(address?: Address): string {\n return (address ? (this.isMedium ? address : ellipsize(address, 5)) : '')\n }\n\n formatAmountToXl1(amount?: Hex | bigint): string {\n if (isUndefined(amount)) return ''\n const amountBigInt = isHex(amount) ? hexToBigInt(amount) : amount\n const xl1Amount = XL1Amount.fromAtto(amountBigInt as AttoXL1).toString(Number(XL1Places.xl1), {\n maxDecimal: 18, maxCharacters: 19, minDecimals: 0, locale: navigator.language,\n })\n return xl1Amount\n }\n\n totalTransferred() {\n if (isUndefined(this.payload?.transfers)) return '0'\n let total = 0n\n for (const [, amount] of Object.entries(this.payload.transfers)) {\n if (isDefined(amount)) {\n total += hexToBigInt(amount)\n }\n }\n return this.formatAmountToXl1(total)\n }\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography, useTheme } from '@mui/material'\nimport { NetworkIcon } from '@xyo-network/react-chain-network'\nimport { MainNetworkIconString } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport type { TransferCardHelper } from './TransferRenderCardHelper.tsx'\n\nexport interface TransferRenderTotalTypographyProps extends TypographyProps {\n transferRenderHelper: TransferCardHelper\n}\n\nexport const TransferRenderTotalTypography: React.FC<TransferRenderTotalTypographyProps> = ({\n transferRenderHelper, sx, ...props\n}) => {\n const theme = useTheme()\n\n return (\n <Typography\n sx={{\n display: 'inline-flex', gap: theme.spacing(0.25), fontFamily: 'monospace', ...sx,\n }}\n variant=\"caption\"\n {...props}\n >\n Total:\n {' '}\n <strong>{transferRenderHelper?.totalTransferred()}</strong>\n <NetworkIcon\n icon={MainNetworkIconString}\n style={{\n width: 16, height: 16, display: 'inline-flex', alignItems: 'end',\n }}\n />\n (XL1)\n </Typography>\n )\n}\n"],"mappings":"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","names":["createPayloadRenderPlugin","TransferSchema","FlexCol","React","Card","CardContent","CardHeader","List","useMediaQuery","useTheme","asAddress","asHex","useEvent","BlockiesAvatar","asTransfer","React","useMemo","ListItem","ListItemAvatar","ListItemText","Stack","Typography","useTheme","asAddress","hexToBigInt","isDefined","NetworkIcon","BlockiesAvatar","MainNetworkIconString","React","TransferRenderListItem","address","amount","sx","transferCardHelper","props","theme","useTheme","ListItem","px","ListItemAvatar","minWidth","mr","spacing","BlockiesAvatar","title","width","height","blockiesOptions","seed","ListItemText","borderBottom","vars","palette","divider","Stack","direction","gap","justifyContent","Typography","component","variant","fontFamily","addressComponent","asAddress","isDefined","hexToBigInt","toString","display","alignItems","formatAmountToXl1","NetworkIcon","icon","MainNetworkIconString","style","Link","ellipsize","hexToBigInt","isDefined","isHex","isUndefined","XL1Places","XL1Amount","React","TransferCardHelper","_dispatch","_isMedium","_options","_payload","isMedium","payload","dispatch","options","linkedAddresses","links","has","addressComponent","address","prefix","resolvedPrefix","isDefined","text","formatAddress","React","Link","onClick","sx","cursor","ellipsize","formatAmountToXl1","amount","isUndefined","amountBigInt","isHex","hexToBigInt","xl1Amount","XL1Amount","fromAtto","toString","Number","XL1Places","xl1","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","totalTransferred","transfers","total","Object","entries","Typography","useTheme","NetworkIcon","MainNetworkIconString","React","TransferRenderTotalTypography","transferRenderHelper","sx","props","theme","useTheme","React","Typography","display","gap","spacing","fontFamily","variant","strong","totalTransferred","NetworkIcon","icon","MainNetworkIconString","style","width","height","alignItems","TransferRenderCard","options","payload","props","theme","useTheme","isMedium","useMediaQuery","breakpoints","up","ref","dispatch","useEvent","transfer","asTransfer","from","transfers","transferCardHelper","useMemo","TransferCardHelper","React","Card","CardHeader","title","addressComponent","slotProps","variant","fontFamily","avatar","BlockiesAvatar","sx","width","height","blockiesOptions","seed","CardContent","pb","spacing","List","Object","entries","map","address","amount","TransferRenderListItem","key","asAddress","asHex","TransferRenderTotalTypography","transferRenderHelper","justifyContent","pt","TransferRenderBoxDetails","options","payload","props","React","FlexCol","TransferRenderCard","TransferRenderPlugin","createPayloadRenderPlugin","canRender","payload","schema","TransferSchema","components","box","detailsBox","TransferRenderBoxDetails","detailsCard","TransferRenderCard","name"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transfer/Plugin.ts", "../../../src/transfer/box/Details.tsx", "../../../src/transfer/card/TransferRenderCard.tsx", "../../../src/transfer/card/ListItem.tsx", "../../../src/transfer/card/TransferRenderCardHelper.tsx", "../../../src/transfer/card/TransferRenderTotalTypography.tsx"],
4
+ "sourcesContent": ["import type { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport { createPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { TransferSchema } from '@xyo-network/xl1-sdk'\n\nimport { TransferRenderBoxDetails } from './box/index.ts'\nimport { TransferRenderCard } from './card/index.ts'\n\nexport const TransferRenderPlugin: PayloadRenderPlugin = {\n ...createPayloadRenderPlugin({\n canRender: (payload?: Payload) => payload?.schema === TransferSchema,\n components: { box: { detailsBox: TransferRenderBoxDetails, detailsCard: TransferRenderCard } },\n name: 'Transfer',\n }),\n}\n\nexport default TransferRenderPlugin\n", "import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { PayloadDetailsRenderProps } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport React from 'react'\n\nimport { TransferRenderCard } from '../card/index.ts'\nimport type { TransferRenderOptions } from '../lib/index.ts'\n\nexport interface TransferRenderBoxDetailsProps extends PayloadDetailsRenderProps, FlexBoxProps {\n options?: TransferRenderOptions\n payload?: Payload\n}\n\nexport const TransferRenderBoxDetails: React.FC<TransferRenderBoxDetailsProps> = ({\n options,\n payload,\n ...props\n}) => {\n return (\n <FlexCol {...props}>\n <TransferRenderCard\n options={options}\n payload={payload}\n />\n </FlexCol>\n )\n}\n", "import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, List, useMediaQuery, useTheme,\n} from '@mui/material'\nimport { asAddress, asHex } from '@xylabs/sdk-js'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { PayloadDetailsRenderProps } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { BlockiesAvatar } from '@xyo-network/xl1-blockies'\nimport { asTransfer } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nimport type { TransferRenderOptions } from '../lib/index.ts'\nimport { TransferRenderListItem } from './ListItem.tsx'\nimport { TransferCardHelper } from './TransferRenderCardHelper.tsx'\nimport { TransferRenderTotalTypography } from './TransferRenderTotalTypography.tsx'\n\nexport interface TransferRenderCardProps extends PayloadDetailsRenderProps, CardProps {\n options?: TransferRenderOptions\n payload?: Payload\n}\n\nexport const TransferRenderCard: React.FC<TransferRenderCardProps> = ({\n options, payload, ...props\n}) => {\n const theme = useTheme()\n const isMedium = useMediaQuery(theme => theme.breakpoints.up('sm'))\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n const transfer = asTransfer(payload)\n const { from, transfers } = transfer ?? {}\n\n const transferCardHelper = useMemo(\n () =>\n new TransferCardHelper(isMedium, asTransfer(payload), dispatch, options),\n [isMedium, payload, dispatch, options],\n )\n\n return (\n <Card ref={ref} {...props}>\n <CardHeader\n title={transferCardHelper.addressComponent(from, 'From')}\n slotProps={{\n title: {\n title: from, variant: 'body1', fontFamily: 'monospace',\n },\n }}\n avatar={<BlockiesAvatar sx={{ width: 30, height: 30 }} title={from} blockiesOptions={{ seed: from }} />}\n />\n <CardContent sx={{ '&:last-child': { pb: theme.spacing(0) } }}>\n <List>\n {Object.entries(transfers ?? {}).map(([address, amount]) => (\n <TransferRenderListItem\n key={address}\n address={asAddress(address)}\n amount={asHex(amount)}\n transferCardHelper={transferCardHelper}\n />\n ))}\n </List>\n <TransferRenderTotalTypography\n transferRenderHelper={transferCardHelper}\n sx={{\n // pt matches bottom padding of the ListItem\n width: '100%', justifyContent: 'end', pt: 0.666_666_666_7, pb: theme.spacing(2),\n }}\n />\n </CardContent>\n </Card>\n )\n}\n", "import {\n ListItem, ListItemAvatar, type ListItemProps, ListItemText, Stack, Typography,\n useTheme,\n} from '@mui/material'\nimport type { Address, Hex } from '@xylabs/sdk-js'\nimport {\n asAddress, hexToBigInt, isDefined,\n} from '@xylabs/sdk-js'\nimport { NetworkIcon } from '@xyo-network/react-chain-network'\nimport { BlockiesAvatar } from '@xyo-network/xl1-blockies'\nimport { MainNetworkIconString } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport type { TransferCardHelper } from './TransferRenderCardHelper.tsx'\n\nexport interface TransferRenderListItem extends ListItemProps {\n address?: Address\n amount?: Hex\n transferCardHelper: TransferCardHelper\n}\n\nexport const TransferRenderListItem: React.FC<TransferRenderListItem> = ({\n address, amount, sx, transferCardHelper, ...props\n}) => {\n const theme = useTheme()\n return (\n <ListItem sx={{ px: 0, ...sx }} {...props}>\n <ListItemAvatar sx={{ minWidth: 30, mr: theme.spacing(2) }}>\n <BlockiesAvatar title={address} sx={{ width: 30, height: 30 }} blockiesOptions={{ seed: address }} />\n </ListItemAvatar>\n <ListItemText sx={{ borderBottom: `1px solid ${theme.vars.palette.divider}` }}>\n <Stack\n direction=\"row\"\n sx={{\n gap: 2,\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Typography\n component=\"span\"\n variant=\"caption\"\n sx={{ fontFamily: 'monospace' }}\n >\n {transferCardHelper.addressComponent(asAddress(address), 'To')}\n </Typography>\n <Typography\n component=\"span\"\n variant=\"caption\"\n title={isDefined(amount) ? hexToBigInt(amount).toString() : ''}\n sx={{\n fontFamily: 'monospace',\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(0.25),\n }}\n >\n {transferCardHelper.formatAmountToXl1(amount)}\n <NetworkIcon\n icon={MainNetworkIconString}\n style={{\n width: 16, height: 16, display: 'inline-flex', alignItems: 'end',\n }}\n />\n (XL1)\n </Typography>\n </Stack>\n </ListItemText>\n </ListItem>\n )\n}\n", "import { Link } from '@mui/material'\nimport type { Address, Hex } from '@xylabs/sdk-js'\nimport {\n ellipsize, hexToBigInt, isDefined, isHex, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { EventDispatch } from '@xyo-network/react-event'\nimport {\n type AttoXL1, type Transfer, XL1Places,\n} from '@xyo-network/xl1-sdk'\nimport { XL1Amount } from '@xyo-network/xl1-sdk'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { TransferRenderOptions } from '../lib/index.ts'\n\nexport class TransferCardHelper {\n private _dispatch: EventDispatch | undefined\n private _isMedium: boolean\n private _options: TransferRenderOptions | undefined\n private _payload: Transfer | undefined\n\n constructor(\n isMedium: boolean,\n payload?: Transfer,\n dispatch?: EventDispatch,\n options?: TransferRenderOptions,\n ) {\n this._isMedium = isMedium\n this._options = options\n this._payload = payload\n this._dispatch = dispatch\n }\n\n get dispatch() {\n return this._dispatch\n }\n\n get isMedium() {\n return this._isMedium\n }\n\n get linkedAddresses() {\n return this.options?.links?.has('address')\n }\n\n get options() {\n return this._options\n }\n\n get payload(): Transfer | undefined {\n return this._payload\n }\n\n addressComponent(address?: Address, prefix?: string): ReactNode {\n const resolvedPrefix = isDefined(prefix) ? `${prefix}: ` : ''\n const text = `${this.formatAddress(address) ?? 'Unknown'}`\n if (this.options?.links?.has('address')) {\n return (\n <>\n {resolvedPrefix}\n {' '}\n <Link\n onClick={() => {\n this.dispatch?.('address', 'click', address)\n }}\n sx={{ cursor: 'pointer' }}\n >\n {text}\n </Link>\n </>\n )\n }\n return `${resolvedPrefix}${text}`\n }\n\n formatAddress(address?: Address): string {\n return (address ? (this.isMedium ? address : ellipsize(address, 5)) : '')\n }\n\n formatAmountToXl1(amount?: Hex | bigint): string {\n if (isUndefined(amount)) return ''\n const amountBigInt = isHex(amount) ? hexToBigInt(amount) : amount\n const xl1Amount = XL1Amount.fromAtto(amountBigInt as AttoXL1).toString(Number(XL1Places.xl1), {\n maxDecimal: 18, maxCharacters: 19, minDecimals: 0, locale: navigator.language,\n })\n return xl1Amount\n }\n\n totalTransferred() {\n if (isUndefined(this.payload?.transfers)) return '0'\n let total = 0n\n for (const [, amount] of Object.entries(this.payload.transfers)) {\n if (isDefined(amount)) {\n total += hexToBigInt(amount)\n }\n }\n return this.formatAmountToXl1(total)\n }\n}\n", "import type { TypographyProps } from '@mui/material'\nimport { Typography, useTheme } from '@mui/material'\nimport { NetworkIcon } from '@xyo-network/react-chain-network'\nimport { MainNetworkIconString } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport type { TransferCardHelper } from './TransferRenderCardHelper.tsx'\n\nexport interface TransferRenderTotalTypographyProps extends TypographyProps {\n transferRenderHelper: TransferCardHelper\n}\n\nexport const TransferRenderTotalTypography: React.FC<TransferRenderTotalTypographyProps> = ({\n transferRenderHelper, sx, ...props\n}) => {\n const theme = useTheme()\n\n return (\n <Typography\n sx={{\n display: 'inline-flex', gap: theme.spacing(0.25), fontFamily: 'monospace', ...sx,\n }}\n variant=\"caption\"\n {...props}\n >\n Total:\n {' '}\n <strong>{transferRenderHelper?.totalTransferred()}</strong>\n <NetworkIcon\n icon={MainNetworkIconString}\n style={{\n width: 16, height: 16, display: 'inline-flex', alignItems: 'end',\n }}\n />\n (XL1)\n </Typography>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useTheme", "asAddress", "BlockiesAvatar", "hexToBigInt", "isDefined", "jsx", "jsxs", "Typography", "useTheme", "NetworkIcon", "MainNetworkIconString", "jsx", "jsxs", "jsx", "jsxs", "useTheme", "theme", "BlockiesAvatar", "asAddress", "jsx"]
7
+ }