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