@lightsparkdev/ui 0.0.7 → 0.0.8
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.
- package/CHANGELOG.md +11 -0
- package/dist/{chunk-JYWYEOM6.js → chunk-2JM7UTAZ.js} +18 -5
- package/dist/{chunk-UO6U7AYM.js → chunk-2YB7653N.js} +1 -1
- package/dist/{chunk-RTUZVKPK.js → chunk-36C653MV.js} +1 -1
- package/dist/{chunk-IQFU7CM5.js → chunk-4KWTXZRY.js} +1 -1
- package/dist/{chunk-CLU2FRJZ.js → chunk-55OQPFLF.js} +1 -1
- package/dist/{chunk-3CZOYF3X.js → chunk-6FHLZM6N.js} +2 -2
- package/dist/{chunk-K7D7A34K.js → chunk-744FBGRP.js} +1 -1
- package/dist/{chunk-FKETYVPP.js → chunk-76Q4BK35.js} +87 -43
- package/dist/{chunk-NGS4OSWT.js → chunk-BAO4T4G5.js} +1 -1
- package/dist/{chunk-NH25O7PC.js → chunk-CW3W2VTZ.js} +1 -1
- package/dist/{chunk-G2PZZFJL.js → chunk-DAVVD7YE.js} +10 -10
- package/dist/{chunk-VBWTKANQ.js → chunk-FN5PM3HQ.js} +6 -6
- package/dist/{chunk-RFGKH3R6.js → chunk-HNVQIY5U.js} +0 -8
- package/dist/{chunk-I74XQIVV.js → chunk-MAMSU2XB.js} +3 -3
- package/dist/chunk-NRXJA2PM.js +67 -0
- package/dist/{chunk-M56R3RJ7.js → chunk-OGSDZTHM.js} +7 -3
- package/dist/chunk-SZVMKB4E.js +222 -0
- package/dist/chunk-U6XT5JKC.js +25 -0
- package/dist/{chunk-WWFDI534.js → chunk-UWN53KLJ.js} +13 -6
- package/dist/{chunk-TAI352I3.js → chunk-VE7J2N47.js} +1 -1
- package/dist/{chunk-NZJCJJH5.js → chunk-VHW2KROZ.js} +1 -1
- package/dist/{chunk-N2RDQJQ5.js → chunk-WTO7C7WA.js} +1 -1
- package/dist/{chunk-23SR7TFO.js → chunk-XAZ6NZ6I.js} +1 -1
- package/dist/chunk-YPB5SA65.js +163 -0
- package/dist/{chunk-SVQELXFK.js → chunk-Z5TPS2BO.js} +1 -1
- package/dist/{chunk-T33SBHYI.js → chunk-ZSUX6RLD.js} +3 -1
- package/dist/{chunk-2WYVO6B2.js → chunk-ZYHA6MJC.js} +1 -1
- package/dist/components/Badge.cjs +1332 -0
- package/dist/components/Badge.d.cts +10 -0
- package/dist/components/Badge.d.ts +10 -0
- package/dist/components/Badge.js +13 -0
- package/dist/components/Button.cjs +197 -83
- package/dist/components/Button.d.cts +3 -1
- package/dist/components/Button.d.ts +3 -1
- package/dist/components/Button.js +8 -7
- package/dist/components/ButtonRow.cjs +212 -82
- package/dist/components/ButtonRow.d.cts +6 -2
- package/dist/components/ButtonRow.d.ts +6 -2
- package/dist/components/ButtonRow.js +14 -11
- package/dist/components/Collapsible.cjs +0 -30
- package/dist/components/Collapsible.js +4 -5
- package/dist/components/ContentTable.cjs +0 -30
- package/dist/components/ContentTable.js +3 -4
- package/dist/components/CopyToClipboardButton.cjs +123 -41
- package/dist/components/CopyToClipboardButton.js +6 -5
- package/dist/components/CurrencyAmount.cjs +0 -30
- package/dist/components/CurrencyAmount.js +3 -4
- package/dist/components/FileInput.cjs +1945 -0
- package/dist/components/FileInput.d.cts +21 -0
- package/dist/components/FileInput.d.ts +21 -0
- package/dist/components/FileInput.js +113 -0
- package/dist/components/Icon.cjs +0 -30
- package/dist/components/Icon.js +2 -3
- package/dist/components/LightTooltip.cjs +1414 -0
- package/dist/components/LightTooltip.d.cts +9 -0
- package/dist/components/LightTooltip.d.ts +9 -0
- package/dist/components/LightTooltip.js +12 -0
- package/dist/components/LightboxImage.cjs +1 -1
- package/dist/components/LightboxImage.js +2 -2
- package/dist/components/LightsparkProvider.cjs +3 -33
- package/dist/components/LightsparkProvider.js +3 -4
- package/dist/components/Loading.cjs +0 -30
- package/dist/components/Loading.js +3 -4
- package/dist/components/Modal.cjs +208 -114
- package/dist/components/Modal.js +12 -11
- package/dist/components/Pill.cjs +1703 -0
- package/dist/components/Pill.d.cts +19 -0
- package/dist/components/Pill.d.ts +19 -0
- package/dist/components/Pill.js +16 -0
- package/dist/components/ProgressBar.cjs +0 -32
- package/dist/components/ProgressBar.js +2 -3
- package/dist/components/SecretContainer.cjs +124 -42
- package/dist/components/SecretContainer.js +7 -6
- package/dist/components/TextIconAligner.cjs +0 -30
- package/dist/components/TextIconAligner.js +3 -4
- package/dist/components/UnstyledButton.cjs +0 -30
- package/dist/components/UnstyledButton.js +2 -3
- package/dist/components/documentation/AnchorLinkHeader.cjs +0 -32
- package/dist/components/documentation/AnchorLinkHeader.js +3 -4
- package/dist/components/documentation/index.cjs +0 -32
- package/dist/components/documentation/index.js +3 -4
- package/dist/components/index.cjs +608 -327
- package/dist/components/index.d.cts +5 -1
- package/dist/components/index.d.ts +5 -1
- package/dist/components/index.js +37 -25
- package/dist/icons/Copy.cjs +4 -3
- package/dist/icons/Copy.js +4 -3
- package/dist/icons/Download.cjs +22 -11
- package/dist/icons/Download.js +23 -12
- package/dist/icons/Upload.cjs +22 -11
- package/dist/icons/Upload.js +23 -12
- package/dist/icons/index.cjs +0 -30
- package/dist/icons/index.js +2 -3
- package/dist/router.cjs +7 -3
- package/dist/router.js +1 -1
- package/dist/styles/common.cjs +0 -32
- package/dist/styles/common.d.cts +1 -5
- package/dist/styles/common.d.ts +1 -5
- package/dist/styles/common.js +1 -4
- package/dist/styles/fields.cjs +65 -34
- package/dist/styles/fields.d.cts +8 -2
- package/dist/styles/fields.d.ts +8 -2
- package/dist/styles/fields.js +28 -164
- package/dist/styles/fonts/typography/Article.cjs +0 -30
- package/dist/styles/fonts/typography/Article.js +6 -7
- package/dist/styles/fonts/typography/index.cjs +0 -30
- package/dist/styles/fonts/typography/index.js +11 -12
- package/dist/styles/global.cjs +3 -33
- package/dist/styles/global.js +2 -3
- package/dist/styles/type.cjs +0 -30
- package/dist/styles/type.js +2 -3
- package/dist/styles/utils.cjs +0 -30
- package/dist/styles/utils.js +2 -3
- package/dist/styles/z-index.cjs +1 -1
- package/dist/styles/z-index.d.cts +1 -1
- package/dist/styles/z-index.d.ts +1 -1
- package/dist/styles/z-index.js +1 -1
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/utils/toReactNodes.cjs +7 -3
- package/dist/utils/toReactNodes.js +2 -2
- package/package.json +5 -4
|
@@ -67,6 +67,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
67
67
|
// src/components/index.tsx
|
|
68
68
|
var components_exports = {};
|
|
69
69
|
__export(components_exports, {
|
|
70
|
+
Badge: () => Badge,
|
|
70
71
|
Button: () => Button,
|
|
71
72
|
ButtonRow: () => ButtonRow,
|
|
72
73
|
ButtonRowContainer: () => ButtonRowContainer,
|
|
@@ -78,11 +79,13 @@ __export(components_exports, {
|
|
|
78
79
|
CurrencyIcon: () => CurrencyIcon,
|
|
79
80
|
Icon: () => Icon,
|
|
80
81
|
IconContainer: () => IconContainer,
|
|
82
|
+
LightTooltip: () => LightTooltip,
|
|
81
83
|
LightboxImage: () => LightboxImage,
|
|
82
84
|
LightsparkProvider: () => LightsparkProvider,
|
|
83
85
|
Loading: () => Loading,
|
|
84
86
|
LoadingWrapper: () => LoadingWrapper,
|
|
85
87
|
Modal: () => Modal,
|
|
88
|
+
Pill: () => Pill,
|
|
86
89
|
ProgressBar: () => ProgressBar,
|
|
87
90
|
SecretContainer: () => SecretContainer,
|
|
88
91
|
StyledButton: () => StyledButton,
|
|
@@ -91,14 +94,8 @@ __export(components_exports, {
|
|
|
91
94
|
});
|
|
92
95
|
module.exports = __toCommonJS(components_exports);
|
|
93
96
|
|
|
94
|
-
// src/components/
|
|
95
|
-
var
|
|
96
|
-
var import_styled5 = __toESM(require("@emotion/styled"), 1);
|
|
97
|
-
|
|
98
|
-
// src/router.tsx
|
|
99
|
-
var import_lodash_es2 = require("lodash-es");
|
|
100
|
-
var import_react4 = require("react");
|
|
101
|
-
var import_react_router_dom = require("react-router-dom");
|
|
97
|
+
// src/components/Badge.tsx
|
|
98
|
+
var import_styled2 = __toESM(require("@emotion/styled"), 1);
|
|
102
99
|
|
|
103
100
|
// src/styles/colors.tsx
|
|
104
101
|
var import_react3 = require("@emotion/react");
|
|
@@ -1344,108 +1341,9 @@ function useThemeBg() {
|
|
|
1344
1341
|
return isSm ? theme.smBg : theme.bg;
|
|
1345
1342
|
}
|
|
1346
1343
|
|
|
1347
|
-
// src/utils/strings.tsx
|
|
1348
|
-
function isString(str) {
|
|
1349
|
-
return typeof str === "string";
|
|
1350
|
-
}
|
|
1351
|
-
|
|
1352
|
-
// src/router.tsx
|
|
1353
|
-
var import_jsx_runtime2 = require("@emotion/react/jsx-runtime");
|
|
1354
|
-
function replaceParams(to, params) {
|
|
1355
|
-
if (params) {
|
|
1356
|
-
let toWithParams = to;
|
|
1357
|
-
Object.entries((0, import_lodash_es2.omit)(params, "query")).forEach(([key, value]) => {
|
|
1358
|
-
if (typeof value !== "string") {
|
|
1359
|
-
throw new Error(
|
|
1360
|
-
`Only 'query' may be an object. Route params must be a string, but '${key}' is not.`
|
|
1361
|
-
);
|
|
1362
|
-
}
|
|
1363
|
-
toWithParams = toWithParams.replace(`:${key}`, value);
|
|
1364
|
-
});
|
|
1365
|
-
if (params.query) {
|
|
1366
|
-
let query = params.query;
|
|
1367
|
-
if (typeof query !== "string") {
|
|
1368
|
-
query = Object.entries(params.query).map(([key, value]) => `${key}${value ? `=${value}` : ""}`).join("&");
|
|
1369
|
-
}
|
|
1370
|
-
toWithParams = `${toWithParams}?${query}`;
|
|
1371
|
-
}
|
|
1372
|
-
to = toWithParams;
|
|
1373
|
-
}
|
|
1374
|
-
return to;
|
|
1375
|
-
}
|
|
1376
|
-
function Link({
|
|
1377
|
-
to,
|
|
1378
|
-
externalLink,
|
|
1379
|
-
params,
|
|
1380
|
-
children,
|
|
1381
|
-
css: css7,
|
|
1382
|
-
onClick,
|
|
1383
|
-
className,
|
|
1384
|
-
hash = null,
|
|
1385
|
-
blue = false,
|
|
1386
|
-
newTab = false
|
|
1387
|
-
}) {
|
|
1388
|
-
if (!isString(to) && !externalLink) {
|
|
1389
|
-
throw new Error("Link must have either `to` or `externalLink` defined");
|
|
1390
|
-
}
|
|
1391
|
-
let toStr;
|
|
1392
|
-
if (isString(to)) {
|
|
1393
|
-
toStr = replaceParams(to, params);
|
|
1394
|
-
toStr += hash ? `#${hash}` : "";
|
|
1395
|
-
} else {
|
|
1396
|
-
const definedExternalLink = externalLink;
|
|
1397
|
-
if (!definedExternalLink.startsWith("http")) {
|
|
1398
|
-
throw new Error("Link's externalLink must start with http");
|
|
1399
|
-
}
|
|
1400
|
-
toStr = definedExternalLink;
|
|
1401
|
-
}
|
|
1402
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
1403
|
-
import_react_router_dom.Link,
|
|
1404
|
-
{
|
|
1405
|
-
to: toStr,
|
|
1406
|
-
css: css7,
|
|
1407
|
-
onClick,
|
|
1408
|
-
className,
|
|
1409
|
-
style: { color: blue ? colors.blue43 : "inherit" },
|
|
1410
|
-
target: newTab ? "_blank" : void 0,
|
|
1411
|
-
rel: newTab ? "noopener noreferrer" : void 0,
|
|
1412
|
-
children
|
|
1413
|
-
}
|
|
1414
|
-
);
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
1344
|
// src/styles/common.tsx
|
|
1418
|
-
var
|
|
1345
|
+
var import_react4 = require("@emotion/react");
|
|
1419
1346
|
var import_styled = __toESM(require("@emotion/styled"), 1);
|
|
1420
|
-
var import_react_tooltip = require("react-tooltip");
|
|
1421
|
-
|
|
1422
|
-
// src/styles/z-index.tsx
|
|
1423
|
-
var z = {
|
|
1424
|
-
card: 1,
|
|
1425
|
-
fieldError: 1,
|
|
1426
|
-
textInput: 2,
|
|
1427
|
-
select: 3,
|
|
1428
|
-
selectFocused: 4,
|
|
1429
|
-
walletActionPreviewTopGradient: 1,
|
|
1430
|
-
headerContainer: 99,
|
|
1431
|
-
smBanner: 99,
|
|
1432
|
-
headerTop: 100,
|
|
1433
|
-
navMenu: 100,
|
|
1434
|
-
smNavMenu: 100,
|
|
1435
|
-
navAction: 101,
|
|
1436
|
-
smNavAction: 100,
|
|
1437
|
-
// keep under navDropdown
|
|
1438
|
-
tooltip: 160,
|
|
1439
|
-
notificationBanner: 170,
|
|
1440
|
-
qrReaderVideo: 180,
|
|
1441
|
-
qrReaderOverlay: 181,
|
|
1442
|
-
modalOverlay: 190,
|
|
1443
|
-
modalContainer: 191,
|
|
1444
|
-
dropdown: 192,
|
|
1445
|
-
toast: 200
|
|
1446
|
-
};
|
|
1447
|
-
|
|
1448
|
-
// src/styles/common.tsx
|
|
1449
1347
|
var rootFontSizePx = 12;
|
|
1450
1348
|
var rootFontSizeRems = rootFontSizePx / 16;
|
|
1451
1349
|
var standardLineHeightEms = 1.21;
|
|
@@ -1458,19 +1356,19 @@ var standardBorderRadius = (radius) => {
|
|
|
1458
1356
|
border-radius: ${borderRadiusPx};
|
|
1459
1357
|
`;
|
|
1460
1358
|
};
|
|
1461
|
-
var smContentInset =
|
|
1359
|
+
var smContentInset = import_react4.css`
|
|
1462
1360
|
${bp.sm(`
|
|
1463
1361
|
margin-left: auto;
|
|
1464
1362
|
margin-right: auto;
|
|
1465
1363
|
width: calc(100% - ${standardContentInsetSmPx * 2}px);
|
|
1466
1364
|
`)}
|
|
1467
1365
|
`;
|
|
1468
|
-
var minSmMaxLgContentInset =
|
|
1366
|
+
var minSmMaxLgContentInset = import_react4.css`
|
|
1469
1367
|
${bp.minSmMaxLg(`
|
|
1470
1368
|
width: calc(100% - ${standardContentInsetMdPx * 2}px);
|
|
1471
1369
|
`)}
|
|
1472
1370
|
`;
|
|
1473
|
-
var standardContentInset =
|
|
1371
|
+
var standardContentInset = import_react4.css`
|
|
1474
1372
|
margin-left: auto;
|
|
1475
1373
|
margin-right: auto;
|
|
1476
1374
|
width: calc(100% - ${standardContentInsetPx * 2}px);
|
|
@@ -1479,7 +1377,7 @@ var standardContentInset = import_react5.css`
|
|
|
1479
1377
|
${smContentInset}
|
|
1480
1378
|
${minSmMaxLgContentInset}
|
|
1481
1379
|
`;
|
|
1482
|
-
var standardCardShadow =
|
|
1380
|
+
var standardCardShadow = import_react4.css`
|
|
1483
1381
|
box-shadow:
|
|
1484
1382
|
0px 4px 10px 0px rgba(0, 0, 0, 0.08),
|
|
1485
1383
|
0px 8px 24px 0px rgba(0, 0, 0, 0.04);
|
|
@@ -1493,7 +1391,7 @@ var getFocusOutline = ({
|
|
|
1493
1391
|
onBgHex
|
|
1494
1392
|
}) => `${onBgHex ? theme.hcNeutralFromBg(onBgHex) : theme.hcNeutral} dashed 1px`;
|
|
1495
1393
|
var outlineOffset = "-2px";
|
|
1496
|
-
var standardFocusOutline = ({ theme }) =>
|
|
1394
|
+
var standardFocusOutline = ({ theme }) => import_react4.css`
|
|
1497
1395
|
&,
|
|
1498
1396
|
& a,
|
|
1499
1397
|
& button {
|
|
@@ -1503,30 +1401,27 @@ var standardFocusOutline = ({ theme }) => import_react5.css`
|
|
|
1503
1401
|
}
|
|
1504
1402
|
}
|
|
1505
1403
|
`;
|
|
1506
|
-
var subtext = ({ theme }) =>
|
|
1404
|
+
var subtext = ({ theme }) => import_react4.css`
|
|
1507
1405
|
color: ${theme.c6Neutral};
|
|
1508
1406
|
font-weight: 600;
|
|
1509
1407
|
`;
|
|
1510
1408
|
var Subtext = import_styled.default.div`
|
|
1511
1409
|
${subtext}
|
|
1512
1410
|
`;
|
|
1513
|
-
var darkGradientBg =
|
|
1411
|
+
var darkGradientBg = import_react4.css`
|
|
1514
1412
|
background: ${darkGradient};
|
|
1515
1413
|
`;
|
|
1516
|
-
var StyledTooltip = (0, import_styled.default)(import_react_tooltip.Tooltip)`
|
|
1517
|
-
z-index: ${z.modalOverlay};
|
|
1518
|
-
`;
|
|
1519
1414
|
var overlaySurfaceBorderColor = ({
|
|
1520
1415
|
theme,
|
|
1521
1416
|
important = false
|
|
1522
|
-
}) =>
|
|
1417
|
+
}) => import_react4.css`
|
|
1523
1418
|
border-color: ${themeOr(theme.c1Neutral, theme.c3Neutral)({ theme })}
|
|
1524
1419
|
${important ? "!important" : ""};
|
|
1525
1420
|
`;
|
|
1526
1421
|
var overlaySurface = ({
|
|
1527
1422
|
theme,
|
|
1528
1423
|
important = false
|
|
1529
|
-
}) =>
|
|
1424
|
+
}) => import_react4.css`
|
|
1530
1425
|
background-color: ${themeOr(colors.white, theme.c1Neutral)({ theme })}
|
|
1531
1426
|
${important ? "!important" : ""};
|
|
1532
1427
|
border: 0.5px solid ${important ? "!important" : ""};
|
|
@@ -1537,15 +1432,113 @@ var overlaySurface = ({
|
|
|
1537
1432
|
)({ theme })}
|
|
1538
1433
|
`;
|
|
1539
1434
|
|
|
1435
|
+
// src/components/Badge.tsx
|
|
1436
|
+
var import_jsx_runtime2 = require("@emotion/react/jsx-runtime");
|
|
1437
|
+
function Badge({ text, ml = 0 }) {
|
|
1438
|
+
return text ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StyledBadge, { ml, children: text }) : null;
|
|
1439
|
+
}
|
|
1440
|
+
var badgeVPadding = 2;
|
|
1441
|
+
var StyledBadge = import_styled2.default.span`
|
|
1442
|
+
${standardBorderRadius(4)}
|
|
1443
|
+
${({ ml }) => ml === 0 ? "" : `margin-left: ${ml}px;`}
|
|
1444
|
+
padding: ${badgeVPadding}px 6px;
|
|
1445
|
+
background-color: ${({ theme }) => isLight(theme) ? theme.c05Neutral : theme.c15Neutral};
|
|
1446
|
+
`;
|
|
1447
|
+
|
|
1448
|
+
// src/components/Button.tsx
|
|
1449
|
+
var import_react9 = require("@emotion/react");
|
|
1450
|
+
var import_styled6 = __toESM(require("@emotion/styled"), 1);
|
|
1451
|
+
var import_lodash_es3 = require("lodash-es");
|
|
1452
|
+
var import_react10 = require("react");
|
|
1453
|
+
|
|
1454
|
+
// src/router.tsx
|
|
1455
|
+
var import_lodash_es2 = require("lodash-es");
|
|
1456
|
+
var import_react5 = require("react");
|
|
1457
|
+
var import_react_router_dom = require("react-router-dom");
|
|
1458
|
+
|
|
1459
|
+
// src/utils/strings.tsx
|
|
1460
|
+
function isString(str) {
|
|
1461
|
+
return typeof str === "string";
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
// src/router.tsx
|
|
1465
|
+
var import_jsx_runtime3 = require("@emotion/react/jsx-runtime");
|
|
1466
|
+
function replaceParams(to, params) {
|
|
1467
|
+
if (params) {
|
|
1468
|
+
let toWithParams = to;
|
|
1469
|
+
Object.entries((0, import_lodash_es2.omit)(params, "query")).forEach(([key, value]) => {
|
|
1470
|
+
if (typeof value !== "string") {
|
|
1471
|
+
throw new Error(
|
|
1472
|
+
`Only 'query' may be an object. Route params must be a string, but '${key}' is not.`
|
|
1473
|
+
);
|
|
1474
|
+
}
|
|
1475
|
+
toWithParams = toWithParams.replace(`:${key}`, value);
|
|
1476
|
+
});
|
|
1477
|
+
if (params.query) {
|
|
1478
|
+
let query = params.query;
|
|
1479
|
+
if (typeof query !== "string") {
|
|
1480
|
+
query = Object.entries(params.query).map(([key, value]) => `${key}${value ? `=${value}` : ""}`).join("&");
|
|
1481
|
+
}
|
|
1482
|
+
toWithParams = `${toWithParams}?${query}`;
|
|
1483
|
+
}
|
|
1484
|
+
to = toWithParams;
|
|
1485
|
+
}
|
|
1486
|
+
return to;
|
|
1487
|
+
}
|
|
1488
|
+
function Link({
|
|
1489
|
+
to,
|
|
1490
|
+
externalLink,
|
|
1491
|
+
params,
|
|
1492
|
+
children,
|
|
1493
|
+
css: css8,
|
|
1494
|
+
onClick,
|
|
1495
|
+
className,
|
|
1496
|
+
hash = null,
|
|
1497
|
+
blue = false,
|
|
1498
|
+
newTab = false
|
|
1499
|
+
}) {
|
|
1500
|
+
if (!isString(to) && !externalLink && !onClick) {
|
|
1501
|
+
throw new Error(
|
|
1502
|
+
"Link must have either `to` or `externalLink` or `onClick` defined"
|
|
1503
|
+
);
|
|
1504
|
+
}
|
|
1505
|
+
let toStr;
|
|
1506
|
+
if (isString(to)) {
|
|
1507
|
+
toStr = replaceParams(to, params);
|
|
1508
|
+
toStr += hash ? `#${hash}` : "";
|
|
1509
|
+
} else if (externalLink) {
|
|
1510
|
+
const definedExternalLink = externalLink;
|
|
1511
|
+
if (!definedExternalLink.startsWith("http")) {
|
|
1512
|
+
throw new Error("Link's externalLink must start with http");
|
|
1513
|
+
}
|
|
1514
|
+
toStr = definedExternalLink;
|
|
1515
|
+
} else {
|
|
1516
|
+
toStr = "#";
|
|
1517
|
+
}
|
|
1518
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1519
|
+
import_react_router_dom.Link,
|
|
1520
|
+
{
|
|
1521
|
+
to: toStr,
|
|
1522
|
+
css: css8,
|
|
1523
|
+
onClick,
|
|
1524
|
+
className,
|
|
1525
|
+
style: { color: blue ? colors.blue43 : "inherit" },
|
|
1526
|
+
target: newTab ? "_blank" : void 0,
|
|
1527
|
+
rel: newTab ? "noopener noreferrer" : void 0,
|
|
1528
|
+
children
|
|
1529
|
+
}
|
|
1530
|
+
);
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1540
1533
|
// src/utils/emotion.tsx
|
|
1541
1534
|
function select(component) {
|
|
1542
1535
|
return component.toString();
|
|
1543
1536
|
}
|
|
1544
1537
|
|
|
1545
1538
|
// src/components/Icon.tsx
|
|
1546
|
-
var
|
|
1539
|
+
var import_styled3 = __toESM(require("@emotion/styled"), 1);
|
|
1547
1540
|
var import_react6 = require("react");
|
|
1548
|
-
var
|
|
1541
|
+
var import_jsx_runtime4 = require("@emotion/react/jsx-runtime");
|
|
1549
1542
|
var iconMap = {};
|
|
1550
1543
|
function loadIcon(iconName) {
|
|
1551
1544
|
return __async(this, null, function* () {
|
|
@@ -1587,7 +1580,7 @@ function Icon({
|
|
|
1587
1580
|
const mrRems = parseFloat((mr / rootFontSizePx).toFixed(2));
|
|
1588
1581
|
const mlRems = parseFloat((ml / rootFontSizePx).toFixed(2));
|
|
1589
1582
|
const va = typeof verticalAlign === "string" ? verticalAlign : parseFloat((verticalAlign / rootFontSizePx).toFixed(2));
|
|
1590
|
-
return /* @__PURE__ */ (0,
|
|
1583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1591
1584
|
IconContainer,
|
|
1592
1585
|
{
|
|
1593
1586
|
className,
|
|
@@ -1597,11 +1590,11 @@ function Icon({
|
|
|
1597
1590
|
verticalAlign: va,
|
|
1598
1591
|
fontColor: color,
|
|
1599
1592
|
"data-tutorial-tip": tutorialStep == null ? void 0 : tutorialStep.toString(),
|
|
1600
|
-
children: IconComponent ? /* @__PURE__ */ (0,
|
|
1593
|
+
children: IconComponent ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(IconComponent, {}) : null
|
|
1601
1594
|
}
|
|
1602
1595
|
);
|
|
1603
1596
|
}
|
|
1604
|
-
var IconContainer =
|
|
1597
|
+
var IconContainer = import_styled3.default.span`
|
|
1605
1598
|
pointer-events: none;
|
|
1606
1599
|
display: inline-flex;
|
|
1607
1600
|
${({ mr, ml, w }) => `
|
|
@@ -1621,9 +1614,90 @@ var IconContainer = import_styled2.default.span`
|
|
|
1621
1614
|
`}
|
|
1622
1615
|
`;
|
|
1623
1616
|
|
|
1617
|
+
// src/components/LightTooltip.tsx
|
|
1618
|
+
var import_css = require("@emotion/css");
|
|
1619
|
+
var import_react7 = require("@emotion/react");
|
|
1620
|
+
var import_react8 = __toESM(require("react"), 1);
|
|
1621
|
+
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
1622
|
+
var import_react_tooltip = require("react-tooltip");
|
|
1623
|
+
|
|
1624
|
+
// src/styles/z-index.tsx
|
|
1625
|
+
var z = {
|
|
1626
|
+
card: 1,
|
|
1627
|
+
fieldError: 1,
|
|
1628
|
+
textInput: 2,
|
|
1629
|
+
select: 3,
|
|
1630
|
+
selectFocused: 4,
|
|
1631
|
+
walletActionPreviewTopGradient: 1,
|
|
1632
|
+
headerContainer: 99,
|
|
1633
|
+
smBanner: 99,
|
|
1634
|
+
headerTop: 100,
|
|
1635
|
+
navMenu: 100,
|
|
1636
|
+
smNavMenu: 100,
|
|
1637
|
+
navAction: 101,
|
|
1638
|
+
smNavAction: 100,
|
|
1639
|
+
// keep under navDropdown
|
|
1640
|
+
notificationBanner: 170,
|
|
1641
|
+
qrReaderVideo: 180,
|
|
1642
|
+
qrReaderOverlay: 181,
|
|
1643
|
+
modalOverlay: 190,
|
|
1644
|
+
modalContainer: 191,
|
|
1645
|
+
dropdown: 192,
|
|
1646
|
+
tooltip: 193,
|
|
1647
|
+
toast: 200
|
|
1648
|
+
};
|
|
1649
|
+
|
|
1650
|
+
// src/components/LightTooltip.tsx
|
|
1651
|
+
var import_jsx_runtime5 = require("@emotion/react/jsx-runtime");
|
|
1652
|
+
function LightTooltip(props) {
|
|
1653
|
+
const nodeRef = (0, import_react8.useRef)(null);
|
|
1654
|
+
const [nodeReady, setNodeReady] = import_react8.default.useState(false);
|
|
1655
|
+
(0, import_react8.useEffect)(() => {
|
|
1656
|
+
if (!nodeRef.current) {
|
|
1657
|
+
nodeRef.current = document.createElement("div");
|
|
1658
|
+
document.body.appendChild(nodeRef.current);
|
|
1659
|
+
}
|
|
1660
|
+
setNodeReady(true);
|
|
1661
|
+
return () => {
|
|
1662
|
+
if (nodeRef.current) {
|
|
1663
|
+
document.body.removeChild(nodeRef.current);
|
|
1664
|
+
nodeRef.current = null;
|
|
1665
|
+
}
|
|
1666
|
+
};
|
|
1667
|
+
}, []);
|
|
1668
|
+
const theme = (0, import_react7.useTheme)();
|
|
1669
|
+
console.log("LightTooltip.tsx: tooltipProps:", props);
|
|
1670
|
+
return nodeReady && nodeRef.current ? import_react_dom.default.createPortal(
|
|
1671
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1672
|
+
import_react_tooltip.Tooltip,
|
|
1673
|
+
__spreadProps(__spreadValues({}, props), {
|
|
1674
|
+
id: props.id || "",
|
|
1675
|
+
content: props.content || "",
|
|
1676
|
+
noArrow: true,
|
|
1677
|
+
border: "0.05rem solid rgba(0, 0, 0, 0.1)",
|
|
1678
|
+
className: styles({ theme }),
|
|
1679
|
+
variant: "light",
|
|
1680
|
+
delayShow: 180
|
|
1681
|
+
})
|
|
1682
|
+
),
|
|
1683
|
+
nodeRef.current
|
|
1684
|
+
) : null;
|
|
1685
|
+
}
|
|
1686
|
+
var styles = ({ theme }) => import_css.css`
|
|
1687
|
+
font-size: "10px",
|
|
1688
|
+
color: ${theme.c2Neutral};
|
|
1689
|
+
border-radius: 8px !important;
|
|
1690
|
+
padding: 16px !important;
|
|
1691
|
+
z-index: ${z.tooltip};
|
|
1692
|
+
${overlaySurface({ theme, important: true })};
|
|
1693
|
+
|
|
1694
|
+
max-width: 260px;
|
|
1695
|
+
box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10), 0px 4px 8px 0px rgba(0, 0, 0, 0.08) !important;
|
|
1696
|
+
`;
|
|
1697
|
+
|
|
1624
1698
|
// src/components/Loading.tsx
|
|
1625
|
-
var
|
|
1626
|
-
var
|
|
1699
|
+
var import_styled4 = __toESM(require("@emotion/styled"), 1);
|
|
1700
|
+
var import_jsx_runtime6 = require("@emotion/react/jsx-runtime");
|
|
1627
1701
|
var defaultProps = {
|
|
1628
1702
|
size: 60,
|
|
1629
1703
|
center: true,
|
|
@@ -1634,10 +1708,10 @@ function Loading({
|
|
|
1634
1708
|
size: size2 = defaultProps.size,
|
|
1635
1709
|
ml = defaultProps.ml
|
|
1636
1710
|
}) {
|
|
1637
|
-
return /* @__PURE__ */ (0,
|
|
1711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(LoadingWrapper, { center, ml, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Rotate, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { name: "LoadingSpinner", width: size2 }) }) });
|
|
1638
1712
|
}
|
|
1639
1713
|
Loading.defaultProps = defaultProps;
|
|
1640
|
-
var LoadingWrapper =
|
|
1714
|
+
var LoadingWrapper = import_styled4.default.div`
|
|
1641
1715
|
flex-grow: 1;
|
|
1642
1716
|
display: flex;
|
|
1643
1717
|
align-items: center;
|
|
@@ -1657,7 +1731,7 @@ var LoadingWrapper = import_styled3.default.div`
|
|
|
1657
1731
|
margin: 0 !important;
|
|
1658
1732
|
`}
|
|
1659
1733
|
`;
|
|
1660
|
-
var Rotate =
|
|
1734
|
+
var Rotate = import_styled4.default.div`
|
|
1661
1735
|
display: inline-flex;
|
|
1662
1736
|
animation: rotate 0.5s linear infinite;
|
|
1663
1737
|
|
|
@@ -1672,8 +1746,8 @@ var Rotate = import_styled3.default.div`
|
|
|
1672
1746
|
`;
|
|
1673
1747
|
|
|
1674
1748
|
// src/components/UnstyledButton.tsx
|
|
1675
|
-
var
|
|
1676
|
-
var UnstyledButton =
|
|
1749
|
+
var import_styled5 = __toESM(require("@emotion/styled"), 1);
|
|
1750
|
+
var UnstyledButton = import_styled5.default.button`
|
|
1677
1751
|
${standardFocusOutline}
|
|
1678
1752
|
font-family: ${({ theme }) => theme.typography.fontFamilies.main};
|
|
1679
1753
|
appearance: none;
|
|
@@ -1688,7 +1762,7 @@ var UnstyledButton = import_styled4.default.button`
|
|
|
1688
1762
|
`;
|
|
1689
1763
|
|
|
1690
1764
|
// src/components/Button.tsx
|
|
1691
|
-
var
|
|
1765
|
+
var import_jsx_runtime7 = require("@emotion/react/jsx-runtime");
|
|
1692
1766
|
function getTextColor({ color, theme, primary: primary2, blue }) {
|
|
1693
1767
|
if (color) {
|
|
1694
1768
|
return color;
|
|
@@ -1723,12 +1797,37 @@ function getBackgroundColor({
|
|
|
1723
1797
|
}
|
|
1724
1798
|
return themeOr(colors.white, theme.c1Neutral)({ theme });
|
|
1725
1799
|
}
|
|
1726
|
-
|
|
1727
|
-
|
|
1800
|
+
var paddingsY = {
|
|
1801
|
+
lg: 14,
|
|
1802
|
+
md: 9,
|
|
1803
|
+
sm: 6
|
|
1804
|
+
};
|
|
1805
|
+
var roundPaddingsX = {
|
|
1806
|
+
lg: 19,
|
|
1807
|
+
md: 14,
|
|
1808
|
+
sm: 10
|
|
1809
|
+
};
|
|
1810
|
+
var paddingsX = {
|
|
1811
|
+
lg: 24,
|
|
1812
|
+
md: 18,
|
|
1813
|
+
sm: 16
|
|
1814
|
+
};
|
|
1815
|
+
function getPaddingX({
|
|
1816
|
+
size: size2,
|
|
1817
|
+
ghost,
|
|
1818
|
+
isRound
|
|
1819
|
+
}) {
|
|
1820
|
+
return ghost ? 0 : isRound ? roundPaddingsX[size2] : paddingsX[size2];
|
|
1728
1821
|
}
|
|
1729
|
-
function getPadding({
|
|
1730
|
-
|
|
1731
|
-
|
|
1822
|
+
function getPadding({
|
|
1823
|
+
iconWidth,
|
|
1824
|
+
size: size2,
|
|
1825
|
+
ghost,
|
|
1826
|
+
iconSide,
|
|
1827
|
+
isRound
|
|
1828
|
+
}) {
|
|
1829
|
+
const paddingY = ghost ? 0 : paddingsY[size2];
|
|
1830
|
+
const paddingX = getPaddingX({ size: size2, ghost, isRound });
|
|
1732
1831
|
const paddingForIcon = iconWidth && !ghost ? iconWidth : 0;
|
|
1733
1832
|
return `${paddingY}px ${paddingX + (iconSide === "right" ? paddingForIcon : 0)}px ${paddingY}px ${paddingX + (iconSide === "left" ? paddingForIcon : 0)}px`;
|
|
1734
1833
|
}
|
|
@@ -1777,40 +1876,46 @@ function Button({
|
|
|
1777
1876
|
type = "button",
|
|
1778
1877
|
blue = false,
|
|
1779
1878
|
newTab = false,
|
|
1780
|
-
zIndex = void 0
|
|
1879
|
+
zIndex = void 0,
|
|
1880
|
+
tooltipText
|
|
1781
1881
|
}) {
|
|
1882
|
+
const tooltipId = (0, import_react10.useRef)((0, import_lodash_es3.uniqueId)());
|
|
1782
1883
|
const iconMarginRight = 6;
|
|
1783
1884
|
const iconSize = size2 === "lg" ? 16 : 12;
|
|
1784
1885
|
let currentIcon = null;
|
|
1785
1886
|
if (loading) {
|
|
1786
|
-
currentIcon = /* @__PURE__ */ (0,
|
|
1887
|
+
currentIcon = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ButtonIcon, { ghost, iconSide, text, size: size2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Loading, { size: iconSize, center: false }) });
|
|
1787
1888
|
} else if (icon) {
|
|
1788
|
-
currentIcon = /* @__PURE__ */ (0,
|
|
1889
|
+
currentIcon = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ButtonIcon, { ghost, iconSide, text, size: size2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { name: icon, width: iconSize }) });
|
|
1789
1890
|
}
|
|
1790
|
-
const content = /* @__PURE__ */ (0,
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1891
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react10.Fragment, { children: [
|
|
1892
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
1893
|
+
"div",
|
|
1894
|
+
__spreadProps(__spreadValues({}, tooltipText ? { "data-tooltip-id": tooltipId.current } : {}), {
|
|
1895
|
+
css: {
|
|
1896
|
+
display: "flex",
|
|
1897
|
+
alignItems: "center",
|
|
1898
|
+
justifyContent: "center"
|
|
1899
|
+
},
|
|
1900
|
+
children: [
|
|
1901
|
+
iconSide === "left" && currentIcon,
|
|
1902
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1903
|
+
"div",
|
|
1904
|
+
{
|
|
1905
|
+
css: {
|
|
1906
|
+
textOverflow: "ellipsis",
|
|
1907
|
+
overflow: "hidden"
|
|
1908
|
+
},
|
|
1909
|
+
children: text
|
|
1910
|
+
}
|
|
1911
|
+
),
|
|
1912
|
+
iconSide === "right" && currentIcon
|
|
1913
|
+
]
|
|
1914
|
+
})
|
|
1915
|
+
),
|
|
1916
|
+
tooltipText ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LightTooltip, { id: tooltipId.current, content: tooltipText }) : null
|
|
1917
|
+
] });
|
|
1918
|
+
const isSingleCharRoundButton = Boolean(text && text.length === 1 && !icon);
|
|
1814
1919
|
const commonProps = {
|
|
1815
1920
|
backgroundColor,
|
|
1816
1921
|
color,
|
|
@@ -1823,6 +1928,7 @@ function Button({
|
|
|
1823
1928
|
fullWidth,
|
|
1824
1929
|
blue,
|
|
1825
1930
|
iconSide,
|
|
1931
|
+
isRound: isSingleCharRoundButton,
|
|
1826
1932
|
iconWidth: currentIcon ? iconSize + iconMarginRight : 0,
|
|
1827
1933
|
isLoading: loading,
|
|
1828
1934
|
disabled: disabled || loading,
|
|
@@ -1835,11 +1941,10 @@ function Button({
|
|
|
1835
1941
|
zIndex
|
|
1836
1942
|
};
|
|
1837
1943
|
if (to) {
|
|
1838
|
-
return /* @__PURE__ */ (0,
|
|
1944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ButtonLink, __spreadProps(__spreadValues({}, commonProps), { to, params: toParams, hash, children: content }));
|
|
1839
1945
|
}
|
|
1840
|
-
return href ? /* @__PURE__ */ (0,
|
|
1946
|
+
return href ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ButtonHrefLink, __spreadProps(__spreadValues({}, commonProps), { href, target: "_blank", children: content })) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StyledButton, __spreadProps(__spreadValues({}, commonProps), { children: content }));
|
|
1841
1947
|
}
|
|
1842
|
-
var hPaddingPx = 24;
|
|
1843
1948
|
var buttonStyle = ({
|
|
1844
1949
|
color,
|
|
1845
1950
|
backgroundColor,
|
|
@@ -1855,8 +1960,9 @@ var buttonStyle = ({
|
|
|
1855
1960
|
blue,
|
|
1856
1961
|
text,
|
|
1857
1962
|
zIndex,
|
|
1858
|
-
iconSide
|
|
1859
|
-
|
|
1963
|
+
iconSide,
|
|
1964
|
+
isRound
|
|
1965
|
+
}) => import_react9.css`
|
|
1860
1966
|
display: inline-flex;
|
|
1861
1967
|
opacity: ${disabled && !isLoading ? 0.2 : 1};
|
|
1862
1968
|
transition: opacity 0.2s;
|
|
@@ -1892,8 +1998,15 @@ var buttonStyle = ({
|
|
|
1892
1998
|
primary: primary2,
|
|
1893
1999
|
blue
|
|
1894
2000
|
})};
|
|
1895
|
-
border-radius: 32px;
|
|
1896
|
-
padding: ${getPadding({
|
|
2001
|
+
border-radius: ${isRound ? "100%" : "32px"};
|
|
2002
|
+
padding: ${getPadding({
|
|
2003
|
+
size: size2,
|
|
2004
|
+
iconWidth,
|
|
2005
|
+
text,
|
|
2006
|
+
ghost,
|
|
2007
|
+
iconSide,
|
|
2008
|
+
isRound
|
|
2009
|
+
})};
|
|
1897
2010
|
color: ${getTextColor({ color, theme, primary: primary2, blue })};
|
|
1898
2011
|
transition:
|
|
1899
2012
|
background-color 0.2s ease-out,
|
|
@@ -1904,28 +2017,28 @@ var buttonStyle = ({
|
|
|
1904
2017
|
}
|
|
1905
2018
|
}
|
|
1906
2019
|
`;
|
|
1907
|
-
var ButtonIcon =
|
|
2020
|
+
var ButtonIcon = import_styled6.default.div`
|
|
1908
2021
|
${(props) => props.ghost ? "" : "position: absolute;"}
|
|
1909
|
-
${({ iconSide, ghost, text, size: size2 }) => `${iconSide}: ${ghost && text ? 0 : getPaddingX({ size: size2, ghost })}px;`}
|
|
2022
|
+
${({ iconSide, ghost, text, size: size2 }) => `${iconSide}: ${ghost && text ? 0 : getPaddingX({ size: size2, ghost, isRound: false })}px;`}
|
|
1910
2023
|
`;
|
|
1911
|
-
var StyledButton = (0,
|
|
2024
|
+
var StyledButton = (0, import_styled6.default)(UnstyledButton)`
|
|
1912
2025
|
${(props) => buttonStyle(props)}
|
|
1913
2026
|
`;
|
|
1914
|
-
var ButtonLink = (0,
|
|
2027
|
+
var ButtonLink = (0, import_styled6.default)(Link)`
|
|
1915
2028
|
${(props) => buttonStyle(props)}
|
|
1916
2029
|
`;
|
|
1917
|
-
var ButtonHrefLink =
|
|
2030
|
+
var ButtonHrefLink = import_styled6.default.a`
|
|
1918
2031
|
${(props) => buttonStyle(props)}
|
|
1919
2032
|
`;
|
|
1920
|
-
var ButtonSelector = (prepend = "", append = "") => `${prepend}${select(StyledButton)}${
|
|
1921
|
-
|
|
1922
|
-
)}
|
|
2033
|
+
var ButtonSelector = (prepend = "", append = "") => `${prepend}*:is(${select(StyledButton)}, ${select(ButtonLink)}, ${select(
|
|
2034
|
+
ButtonHrefLink
|
|
2035
|
+
)})${append}`;
|
|
1923
2036
|
|
|
1924
2037
|
// src/components/ButtonRow.tsx
|
|
1925
|
-
var
|
|
2038
|
+
var import_styled7 = __toESM(require("@emotion/styled"), 1);
|
|
1926
2039
|
|
|
1927
2040
|
// src/styles/utils.tsx
|
|
1928
|
-
var
|
|
2041
|
+
var import_react11 = require("@emotion/react");
|
|
1929
2042
|
function pxToRems(rems, asNum = false) {
|
|
1930
2043
|
const value = (rems / rootFontSizePx).toFixed(6);
|
|
1931
2044
|
return asNum ? Number(value) : `${value}rem`;
|
|
@@ -1941,26 +2054,26 @@ var size = {
|
|
|
1941
2054
|
px21: pxToRems(21),
|
|
1942
2055
|
px24: pxToRems(24)
|
|
1943
2056
|
};
|
|
1944
|
-
var flexCenterAxis =
|
|
2057
|
+
var flexCenterAxis = import_react11.css`
|
|
1945
2058
|
display: flex;
|
|
1946
2059
|
align-items: center;
|
|
1947
2060
|
`;
|
|
1948
|
-
var flexCenter =
|
|
2061
|
+
var flexCenter = import_react11.css`
|
|
1949
2062
|
display: flex;
|
|
1950
2063
|
justify-content: center;
|
|
1951
2064
|
align-items: center;
|
|
1952
2065
|
`;
|
|
1953
|
-
var inlineFlexCenter =
|
|
2066
|
+
var inlineFlexCenter = import_react11.css`
|
|
1954
2067
|
display: flex;
|
|
1955
2068
|
justify-content: center;
|
|
1956
2069
|
align-items: center;
|
|
1957
2070
|
`;
|
|
1958
|
-
var flexBetween =
|
|
2071
|
+
var flexBetween = import_react11.css`
|
|
1959
2072
|
display: flex;
|
|
1960
2073
|
justify-content: space-between;
|
|
1961
2074
|
align-items: center;
|
|
1962
2075
|
`;
|
|
1963
|
-
var absoluteCenter =
|
|
2076
|
+
var absoluteCenter = import_react11.css`
|
|
1964
2077
|
position: absolute;
|
|
1965
2078
|
top: 0;
|
|
1966
2079
|
bottom: 0;
|
|
@@ -1968,10 +2081,10 @@ var absoluteCenter = import_react8.css`
|
|
|
1968
2081
|
right: 0;
|
|
1969
2082
|
margin: auto;
|
|
1970
2083
|
`;
|
|
1971
|
-
var textCenter =
|
|
2084
|
+
var textCenter = import_react11.css`
|
|
1972
2085
|
text-align: center;
|
|
1973
2086
|
`;
|
|
1974
|
-
var overflowAutoWithoutScrollbars =
|
|
2087
|
+
var overflowAutoWithoutScrollbars = import_react11.css`
|
|
1975
2088
|
overflow: auto;
|
|
1976
2089
|
scrollbar-width: none;
|
|
1977
2090
|
-ms-overflow-style: none;
|
|
@@ -1986,16 +2099,18 @@ var overflowAutoWithoutScrollbars = import_react8.css`
|
|
|
1986
2099
|
`;
|
|
1987
2100
|
|
|
1988
2101
|
// src/components/ButtonRow.tsx
|
|
1989
|
-
var
|
|
2102
|
+
var import_jsx_runtime8 = require("@emotion/react/jsx-runtime");
|
|
1990
2103
|
function ButtonRow({
|
|
1991
2104
|
buttons,
|
|
1992
2105
|
className,
|
|
1993
2106
|
smSticky = true,
|
|
1994
2107
|
headerHeight = 0
|
|
1995
2108
|
}) {
|
|
1996
|
-
return /* @__PURE__ */ (0,
|
|
2109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ButtonRowContainer, { smSticky, headerHeight, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StyledButtonRow, { className, children: buttons.map(
|
|
2110
|
+
(button, idx) => button === "divider" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ButtonRowDivider, {}, idx) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, __spreadValues({}, button), idx)
|
|
2111
|
+
) }) });
|
|
1997
2112
|
}
|
|
1998
|
-
var ButtonRowContainer =
|
|
2113
|
+
var ButtonRowContainer = import_styled7.default.div`
|
|
1999
2114
|
max-width: 100%;
|
|
2000
2115
|
${({ theme }) => bp.sm(`background: ${theme.bg}`)}
|
|
2001
2116
|
${({ headerHeight, smSticky }) => bp.sm(
|
|
@@ -2023,7 +2138,12 @@ var ButtonRowContainer = import_styled6.default.div`
|
|
|
2023
2138
|
`
|
|
2024
2139
|
)}
|
|
2025
2140
|
`;
|
|
2026
|
-
var
|
|
2141
|
+
var ButtonRowDivider = import_styled7.default.div`
|
|
2142
|
+
border-left: 1px #d9d9d9 solid;
|
|
2143
|
+
margin-left: 16px;
|
|
2144
|
+
padding-left: 16px;
|
|
2145
|
+
`;
|
|
2146
|
+
var StyledButtonRow = import_styled7.default.div`
|
|
2027
2147
|
${overflowAutoWithoutScrollbars}
|
|
2028
2148
|
background: ${({ theme }) => theme.bg};
|
|
2029
2149
|
display: flex;
|
|
@@ -2035,15 +2155,20 @@ var StyledButtonRow = import_styled6.default.div`
|
|
|
2035
2155
|
margin-left: 8px;
|
|
2036
2156
|
}
|
|
2037
2157
|
|
|
2158
|
+
& ${ButtonRowDivider} + button,
|
|
2159
|
+
& ${ButtonRowDivider} + a {
|
|
2160
|
+
margin-left: 0;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2038
2163
|
${bp.sm(`
|
|
2039
2164
|
padding: 12px;
|
|
2040
2165
|
`)}
|
|
2041
2166
|
`;
|
|
2042
2167
|
|
|
2043
2168
|
// src/components/Collapsible.tsx
|
|
2044
|
-
var
|
|
2045
|
-
var
|
|
2046
|
-
var
|
|
2169
|
+
var import_styled8 = __toESM(require("@emotion/styled"), 1);
|
|
2170
|
+
var import_react12 = require("react");
|
|
2171
|
+
var import_jsx_runtime9 = require("@emotion/react/jsx-runtime");
|
|
2047
2172
|
function Collapsible({
|
|
2048
2173
|
children,
|
|
2049
2174
|
className,
|
|
@@ -2056,37 +2181,37 @@ function Collapsible({
|
|
|
2056
2181
|
buttonTextElement,
|
|
2057
2182
|
contentIndent = true
|
|
2058
2183
|
}) {
|
|
2059
|
-
const [isOpen, setIsOpen] = (0,
|
|
2184
|
+
const [isOpen, setIsOpen] = (0, import_react12.useState)(open);
|
|
2060
2185
|
const handleClick = () => {
|
|
2061
2186
|
if (handleToggle) {
|
|
2062
2187
|
handleToggle(!isOpen);
|
|
2063
2188
|
}
|
|
2064
2189
|
setIsOpen(!isOpen);
|
|
2065
2190
|
};
|
|
2066
|
-
(0,
|
|
2191
|
+
(0, import_react12.useEffect)(() => {
|
|
2067
2192
|
setIsOpen(open);
|
|
2068
2193
|
}, [open]);
|
|
2069
2194
|
const iconName = hamburger ? isOpen ? "Close" : "StackedLines" : "Down";
|
|
2070
2195
|
const iconWidth = iconName === "Close" ? 12 : 14;
|
|
2071
|
-
let textElement = /* @__PURE__ */ (0,
|
|
2196
|
+
let textElement = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", {});
|
|
2072
2197
|
if (buttonTextElement) {
|
|
2073
2198
|
textElement = buttonTextElement;
|
|
2074
2199
|
} else if (text) {
|
|
2075
|
-
textElement = /* @__PURE__ */ (0,
|
|
2200
|
+
textElement = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Text, { color, children: text });
|
|
2076
2201
|
}
|
|
2077
|
-
return /* @__PURE__ */ (0,
|
|
2078
|
-
/* @__PURE__ */ (0,
|
|
2202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(StyledCollapsible, { className, children: [
|
|
2203
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(StyledCollapsibleButton, { onClick: handleClick, children: [
|
|
2079
2204
|
textElement,
|
|
2080
|
-
/* @__PURE__ */ (0,
|
|
2205
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconContainer2, { isOpen, hamburger, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon, { width: iconWidth, name: iconName }) })
|
|
2081
2206
|
] }),
|
|
2082
|
-
/* @__PURE__ */ (0,
|
|
2207
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CollapsingContainer, { isOpen, full, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(InnerPadding, { contentIndent, children }) })
|
|
2083
2208
|
] });
|
|
2084
2209
|
}
|
|
2085
|
-
var StyledCollapsible =
|
|
2210
|
+
var StyledCollapsible = import_styled8.default.div`
|
|
2086
2211
|
display: flex;
|
|
2087
2212
|
flex-direction: column;
|
|
2088
2213
|
`;
|
|
2089
|
-
var StyledCollapsibleButton =
|
|
2214
|
+
var StyledCollapsibleButton = import_styled8.default.button`
|
|
2090
2215
|
display: flex;
|
|
2091
2216
|
flex-direction: row;
|
|
2092
2217
|
align-items: center;
|
|
@@ -2097,7 +2222,7 @@ var StyledCollapsibleButton = import_styled7.default.button`
|
|
|
2097
2222
|
${standardBorderRadius(8)}
|
|
2098
2223
|
padding: 0;
|
|
2099
2224
|
`;
|
|
2100
|
-
var IconContainer2 =
|
|
2225
|
+
var IconContainer2 = import_styled8.default.div`
|
|
2101
2226
|
${(props) => {
|
|
2102
2227
|
if (props.hamburger) {
|
|
2103
2228
|
return;
|
|
@@ -2107,7 +2232,7 @@ var IconContainer2 = import_styled7.default.div`
|
|
|
2107
2232
|
transition: transform 0.25s ease-out;
|
|
2108
2233
|
width: 20px;
|
|
2109
2234
|
`;
|
|
2110
|
-
var CollapsingContainer =
|
|
2235
|
+
var CollapsingContainer = import_styled8.default.div`
|
|
2111
2236
|
overflow: scroll;
|
|
2112
2237
|
opacity: 0;
|
|
2113
2238
|
animation-duration: 0.4s;
|
|
@@ -2141,28 +2266,28 @@ var CollapsingContainer = import_styled7.default.div`
|
|
|
2141
2266
|
}
|
|
2142
2267
|
}
|
|
2143
2268
|
`;
|
|
2144
|
-
var InnerPadding =
|
|
2269
|
+
var InnerPadding = import_styled8.default.div`
|
|
2145
2270
|
padding: ${"4px" /* 3xs */} 0 ${"4px" /* 3xs */}
|
|
2146
2271
|
${(props) => props.contentIndent ? "16px" /* md */ : "0"};
|
|
2147
2272
|
gap: ${"2px" /* 4xs */};
|
|
2148
2273
|
display: flex;
|
|
2149
2274
|
flex-direction: column;
|
|
2150
2275
|
`;
|
|
2151
|
-
var Text =
|
|
2276
|
+
var Text = import_styled8.default.span`
|
|
2152
2277
|
${(props) => props.color ? `color: ${props.color};` : ""}
|
|
2153
2278
|
line-height: inherit;
|
|
2154
2279
|
`;
|
|
2155
2280
|
|
|
2156
2281
|
// src/components/CommandKey.tsx
|
|
2157
|
-
var
|
|
2158
|
-
var
|
|
2282
|
+
var import_styled9 = __toESM(require("@emotion/styled"), 1);
|
|
2283
|
+
var import_jsx_runtime10 = require("@emotion/react/jsx-runtime");
|
|
2159
2284
|
var CommandKey = ({
|
|
2160
2285
|
keyboardKey,
|
|
2161
2286
|
size: size2,
|
|
2162
2287
|
color,
|
|
2163
2288
|
backgroundColor
|
|
2164
2289
|
}) => {
|
|
2165
|
-
return /* @__PURE__ */ (0,
|
|
2290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2166
2291
|
StyledCommandKey,
|
|
2167
2292
|
{
|
|
2168
2293
|
color,
|
|
@@ -2172,7 +2297,7 @@ var CommandKey = ({
|
|
|
2172
2297
|
}
|
|
2173
2298
|
);
|
|
2174
2299
|
};
|
|
2175
|
-
var StyledCommandKey =
|
|
2300
|
+
var StyledCommandKey = import_styled9.default.div`
|
|
2176
2301
|
height: 24px;
|
|
2177
2302
|
display: flex;
|
|
2178
2303
|
align-items: center;
|
|
@@ -2188,18 +2313,18 @@ var StyledCommandKey = import_styled8.default.div`
|
|
|
2188
2313
|
`;
|
|
2189
2314
|
|
|
2190
2315
|
// src/components/CopyToClipboardButton.tsx
|
|
2191
|
-
var
|
|
2316
|
+
var import_styled10 = __toESM(require("@emotion/styled"), 1);
|
|
2192
2317
|
var import_nanoid = require("nanoid");
|
|
2193
|
-
var
|
|
2194
|
-
var
|
|
2318
|
+
var import_react13 = require("react");
|
|
2319
|
+
var import_jsx_runtime11 = require("@emotion/react/jsx-runtime");
|
|
2195
2320
|
var CopyToClipboardButton = (props) => {
|
|
2196
2321
|
var _a;
|
|
2197
2322
|
const originalTooltipContent = props.tooltipContent || "Click to copy";
|
|
2198
2323
|
const icon = props.icon || "Copy";
|
|
2199
2324
|
const id = `copy-node-name-${(_a = props.id) != null ? _a : (0, import_nanoid.nanoid)()}`;
|
|
2200
|
-
const [tooltipContent, setTooltipContent] = (0,
|
|
2201
|
-
return /* @__PURE__ */ (0,
|
|
2202
|
-
/* @__PURE__ */ (0,
|
|
2325
|
+
const [tooltipContent, setTooltipContent] = (0, import_react13.useState)(originalTooltipContent);
|
|
2326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
2327
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2203
2328
|
Button2,
|
|
2204
2329
|
{
|
|
2205
2330
|
type: "button",
|
|
@@ -2220,18 +2345,25 @@ var CopyToClipboardButton = (props) => {
|
|
|
2220
2345
|
ml: props.ml,
|
|
2221
2346
|
"data-tooltip-id": id,
|
|
2222
2347
|
children: [
|
|
2223
|
-
props.children ? /* @__PURE__ */ (0,
|
|
2224
|
-
/* @__PURE__ */ (0,
|
|
2348
|
+
props.children ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Children, { children: props.children }) : null,
|
|
2349
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: icon, width: props.isSm ? 12 : 16 })
|
|
2225
2350
|
]
|
|
2226
2351
|
}
|
|
2227
2352
|
),
|
|
2228
|
-
/* @__PURE__ */ (0,
|
|
2353
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2354
|
+
LightTooltip,
|
|
2355
|
+
{
|
|
2356
|
+
id,
|
|
2357
|
+
place: props.place || "right",
|
|
2358
|
+
content: tooltipContent
|
|
2359
|
+
}
|
|
2360
|
+
)
|
|
2229
2361
|
] });
|
|
2230
2362
|
};
|
|
2231
|
-
var Children =
|
|
2363
|
+
var Children = import_styled10.default.span`
|
|
2232
2364
|
margin-right: 4px;
|
|
2233
2365
|
`;
|
|
2234
|
-
var Button2 = (0,
|
|
2366
|
+
var Button2 = (0, import_styled10.default)(UnstyledButton)`
|
|
2235
2367
|
background: rgba(0, 0, 0, 0);
|
|
2236
2368
|
vertical-align: middle;
|
|
2237
2369
|
${({ ml }) => ml ? `margin-left: ${ml}px` : ""};
|
|
@@ -2239,9 +2371,9 @@ var Button2 = (0, import_styled9.default)(UnstyledButton)`
|
|
|
2239
2371
|
|
|
2240
2372
|
// src/components/CurrencyAmount.tsx
|
|
2241
2373
|
var import_client = require("@apollo/client");
|
|
2242
|
-
var
|
|
2374
|
+
var import_styled11 = __toESM(require("@emotion/styled"), 1);
|
|
2243
2375
|
var import_core = require("@lightsparkdev/core");
|
|
2244
|
-
var
|
|
2376
|
+
var import_jsx_runtime12 = require("@emotion/react/jsx-runtime");
|
|
2245
2377
|
function CurrencyAmount({
|
|
2246
2378
|
amount,
|
|
2247
2379
|
displayUnit = import_core.CurrencyUnit.SATOSHI,
|
|
@@ -2273,18 +2405,18 @@ function CurrencyAmount({
|
|
|
2273
2405
|
if (showUnits) {
|
|
2274
2406
|
formattedNumber += ` ${shorttext(unit, value)}`;
|
|
2275
2407
|
}
|
|
2276
|
-
return /* @__PURE__ */ (0,
|
|
2408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(StyledCurrencyAmount, { ml, children: [
|
|
2277
2409
|
includeEstimatedIndicator && "Est. ",
|
|
2278
|
-
/* @__PURE__ */ (0,
|
|
2410
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CurrencyIcon, { unit }),
|
|
2279
2411
|
formattedNumber
|
|
2280
2412
|
] });
|
|
2281
2413
|
}
|
|
2282
2414
|
var CurrencyIcon = ({ unit }) => {
|
|
2283
2415
|
switch (unit) {
|
|
2284
2416
|
case import_core.CurrencyUnit.BITCOIN:
|
|
2285
|
-
return /* @__PURE__ */ (0,
|
|
2417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "BitcoinB", width: 8, verticalAlign: -2, mr: 2 });
|
|
2286
2418
|
case import_core.CurrencyUnit.SATOSHI:
|
|
2287
|
-
return /* @__PURE__ */ (0,
|
|
2419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "Satoshi", width: 8, verticalAlign: -2, mr: 2 });
|
|
2288
2420
|
default:
|
|
2289
2421
|
return null;
|
|
2290
2422
|
}
|
|
@@ -2305,7 +2437,7 @@ var shorttext = (unit, value) => {
|
|
|
2305
2437
|
}
|
|
2306
2438
|
return unit;
|
|
2307
2439
|
};
|
|
2308
|
-
var StyledCurrencyAmount =
|
|
2440
|
+
var StyledCurrencyAmount = import_styled11.default.span`
|
|
2309
2441
|
color: inherit !important;
|
|
2310
2442
|
white-space: nowrap;
|
|
2311
2443
|
font-feature-settings:
|
|
@@ -2326,18 +2458,18 @@ CurrencyAmount.fragments = {
|
|
|
2326
2458
|
};
|
|
2327
2459
|
|
|
2328
2460
|
// src/components/LightboxImage.tsx
|
|
2329
|
-
var
|
|
2330
|
-
var
|
|
2331
|
-
var
|
|
2461
|
+
var import_styled12 = __toESM(require("@emotion/styled"), 1);
|
|
2462
|
+
var import_react14 = require("react");
|
|
2463
|
+
var import_jsx_runtime13 = require("@emotion/react/jsx-runtime");
|
|
2332
2464
|
var LightboxImage = ({ children }) => {
|
|
2333
|
-
const [isOpen, setIsOpen] = (0,
|
|
2334
|
-
const [boundingRect, setBoundingRect] = (0,
|
|
2465
|
+
const [isOpen, setIsOpen] = (0, import_react14.useState)(false);
|
|
2466
|
+
const [boundingRect, setBoundingRect] = (0, import_react14.useState)({
|
|
2335
2467
|
x: 0,
|
|
2336
2468
|
y: 0,
|
|
2337
2469
|
width: 0,
|
|
2338
2470
|
height: 0
|
|
2339
2471
|
});
|
|
2340
|
-
const imageRef = (0,
|
|
2472
|
+
const imageRef = (0, import_react14.useRef)(null);
|
|
2341
2473
|
const handleMouseUp = () => {
|
|
2342
2474
|
setIsOpen(!isOpen);
|
|
2343
2475
|
};
|
|
@@ -2353,12 +2485,12 @@ var LightboxImage = ({ children }) => {
|
|
|
2353
2485
|
});
|
|
2354
2486
|
}
|
|
2355
2487
|
};
|
|
2356
|
-
(0,
|
|
2488
|
+
(0, import_react14.useEffect)(() => {
|
|
2357
2489
|
handleSetBoundingRect(imageRef);
|
|
2358
2490
|
}, [imageRef]);
|
|
2359
|
-
return /* @__PURE__ */ (0,
|
|
2360
|
-
/* @__PURE__ */ (0,
|
|
2361
|
-
/* @__PURE__ */ (0,
|
|
2491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
2492
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DummyImage, { isOpen, boundingRect }),
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2362
2494
|
StyledImage,
|
|
2363
2495
|
{
|
|
2364
2496
|
isOpen,
|
|
@@ -2369,13 +2501,13 @@ var LightboxImage = ({ children }) => {
|
|
|
2369
2501
|
children
|
|
2370
2502
|
}
|
|
2371
2503
|
),
|
|
2372
|
-
/* @__PURE__ */ (0,
|
|
2504
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Lightbox, { isOpen, onClick: handleMouseUp })
|
|
2373
2505
|
] });
|
|
2374
2506
|
};
|
|
2375
|
-
var DummyImage =
|
|
2507
|
+
var DummyImage = import_styled12.default.div`
|
|
2376
2508
|
${(props) => props.isOpen ? `height: ${props.boundingRect.height}px; width: ${props.boundingRect.width}px;` : ``}
|
|
2377
2509
|
`;
|
|
2378
|
-
var StyledImage =
|
|
2510
|
+
var StyledImage = import_styled12.default.div`
|
|
2379
2511
|
display: flex;
|
|
2380
2512
|
justify-content: start;
|
|
2381
2513
|
align-items: center;
|
|
@@ -2423,7 +2555,7 @@ var StyledImage = import_styled11.default.div`
|
|
|
2423
2555
|
}
|
|
2424
2556
|
}
|
|
2425
2557
|
`;
|
|
2426
|
-
var Lightbox =
|
|
2558
|
+
var Lightbox = import_styled12.default.div`
|
|
2427
2559
|
transition: opacity 0.2s ease-out;
|
|
2428
2560
|
position: fixed;
|
|
2429
2561
|
opacity: 0;
|
|
@@ -2446,11 +2578,11 @@ var Lightbox = import_styled11.default.div`
|
|
|
2446
2578
|
`;
|
|
2447
2579
|
|
|
2448
2580
|
// src/components/LightsparkProvider.tsx
|
|
2449
|
-
var
|
|
2581
|
+
var import_react17 = require("@emotion/react");
|
|
2450
2582
|
|
|
2451
2583
|
// src/styles/global.tsx
|
|
2452
|
-
var
|
|
2453
|
-
var
|
|
2584
|
+
var import_react15 = require("@emotion/react");
|
|
2585
|
+
var import_react16 = require("react");
|
|
2454
2586
|
var import_react_tooltip2 = require("react-tooltip/dist/react-tooltip.css");
|
|
2455
2587
|
var import_fonts = require("../static/fonts.css");
|
|
2456
2588
|
|
|
@@ -2460,8 +2592,8 @@ var cssVars = {
|
|
|
2460
2592
|
};
|
|
2461
2593
|
|
|
2462
2594
|
// src/styles/global.tsx
|
|
2463
|
-
var
|
|
2464
|
-
var globalComponentStyles = ({ theme }) =>
|
|
2595
|
+
var import_jsx_runtime14 = require("@emotion/react/jsx-runtime");
|
|
2596
|
+
var globalComponentStyles = ({ theme }) => import_react15.css`
|
|
2465
2597
|
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
|
|
2466
2598
|
|
|
2467
2599
|
html {
|
|
@@ -2536,9 +2668,9 @@ var globalComponentStyles = ({ theme }) => import_react12.css`
|
|
|
2536
2668
|
}
|
|
2537
2669
|
`;
|
|
2538
2670
|
function GlobalStyles() {
|
|
2539
|
-
const theme = (0,
|
|
2671
|
+
const theme = (0, import_react15.useTheme)();
|
|
2540
2672
|
const bg = useThemeBg();
|
|
2541
|
-
(0,
|
|
2673
|
+
(0, import_react16.useEffect)(() => {
|
|
2542
2674
|
const documentHeight = () => {
|
|
2543
2675
|
const doc = document.documentElement;
|
|
2544
2676
|
doc.style.setProperty(cssVars.docHeight, `${window.innerHeight}px`);
|
|
@@ -2547,12 +2679,14 @@ function GlobalStyles() {
|
|
|
2547
2679
|
documentHeight();
|
|
2548
2680
|
return () => window.removeEventListener("resize", documentHeight);
|
|
2549
2681
|
}, []);
|
|
2550
|
-
const globalStyles =
|
|
2682
|
+
const globalStyles = import_react15.css`
|
|
2551
2683
|
${globalComponentStyles({ theme })}
|
|
2552
2684
|
|
|
2553
2685
|
:root {
|
|
2554
2686
|
${cssVars.docHeight}: 100vh;
|
|
2555
2687
|
--rt-opacity: 1 !important;
|
|
2688
|
+
--rt-transition-show-delay: 0.15s !important;
|
|
2689
|
+
--rt-transition-closing-delay: 0.2s !important;
|
|
2556
2690
|
}
|
|
2557
2691
|
|
|
2558
2692
|
html {
|
|
@@ -2572,29 +2706,29 @@ function GlobalStyles() {
|
|
|
2572
2706
|
height: 100%;
|
|
2573
2707
|
}
|
|
2574
2708
|
`;
|
|
2575
|
-
return /* @__PURE__ */ (0,
|
|
2709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react15.Global, { styles: globalStyles });
|
|
2576
2710
|
}
|
|
2577
2711
|
|
|
2578
2712
|
// src/components/LightsparkProvider.tsx
|
|
2579
|
-
var
|
|
2713
|
+
var import_jsx_runtime15 = require("@emotion/react/jsx-runtime");
|
|
2580
2714
|
function LightsparkProvider({ children }) {
|
|
2581
|
-
return /* @__PURE__ */ (0,
|
|
2582
|
-
/* @__PURE__ */ (0,
|
|
2715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react17.ThemeProvider, { theme: themes.light, children: [
|
|
2716
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(GlobalStyles, {}),
|
|
2583
2717
|
children
|
|
2584
2718
|
] });
|
|
2585
2719
|
}
|
|
2586
2720
|
|
|
2587
2721
|
// src/components/Modal.tsx
|
|
2588
|
-
var
|
|
2589
|
-
var
|
|
2590
|
-
var
|
|
2722
|
+
var import_styled14 = __toESM(require("@emotion/styled"), 1);
|
|
2723
|
+
var import_react21 = __toESM(require("react"), 1);
|
|
2724
|
+
var import_react_dom2 = __toESM(require("react-dom"), 1);
|
|
2591
2725
|
|
|
2592
2726
|
// src/hooks/useLiveRef.tsx
|
|
2593
|
-
var
|
|
2727
|
+
var import_react18 = require("react");
|
|
2594
2728
|
function useLiveRef() {
|
|
2595
|
-
const [ready, setReady] = (0,
|
|
2596
|
-
const ref = (0,
|
|
2597
|
-
const refCb = (0,
|
|
2729
|
+
const [ready, setReady] = (0, import_react18.useState)(false);
|
|
2730
|
+
const ref = (0, import_react18.useRef)(null);
|
|
2731
|
+
const refCb = (0, import_react18.useCallback)((node) => {
|
|
2598
2732
|
if (node !== null) {
|
|
2599
2733
|
ref.current = node;
|
|
2600
2734
|
setReady(true);
|
|
@@ -2604,8 +2738,8 @@ function useLiveRef() {
|
|
|
2604
2738
|
}
|
|
2605
2739
|
|
|
2606
2740
|
// src/utils/toReactNodes.tsx
|
|
2607
|
-
var
|
|
2608
|
-
var
|
|
2741
|
+
var import_react19 = require("react");
|
|
2742
|
+
var import_jsx_runtime16 = require("@emotion/react/jsx-runtime");
|
|
2609
2743
|
var ToReactNodesTypes = {
|
|
2610
2744
|
Link: "link"
|
|
2611
2745
|
};
|
|
@@ -2613,22 +2747,22 @@ function toReactNodes(toReactNodesArg) {
|
|
|
2613
2747
|
const toReactNodesArray = Array.isArray(toReactNodesArg) ? toReactNodesArg : [toReactNodesArg];
|
|
2614
2748
|
const reactNodes = toReactNodesArray.map((node, i) => {
|
|
2615
2749
|
if (typeof node === "string") {
|
|
2616
|
-
return /* @__PURE__ */ (0,
|
|
2750
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react19.Fragment, { children: node.split("\n").map((str, j, strArr) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_react19.Fragment, { children: [
|
|
2617
2751
|
str,
|
|
2618
|
-
j < strArr.length - 1 && /* @__PURE__ */ (0,
|
|
2752
|
+
j < strArr.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("br", {})
|
|
2619
2753
|
] }, `str-${i}-break-${j}`)) }, `str-${i}`);
|
|
2620
2754
|
} else if (node.type === ToReactNodesTypes.Link) {
|
|
2621
|
-
return /* @__PURE__ */ (0,
|
|
2755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { to: node.to, children: node.text }, `link-${i}`);
|
|
2622
2756
|
}
|
|
2623
2757
|
return null;
|
|
2624
2758
|
});
|
|
2625
|
-
return /* @__PURE__ */ (0,
|
|
2759
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react19.Fragment, { children: reactNodes });
|
|
2626
2760
|
}
|
|
2627
2761
|
|
|
2628
2762
|
// src/components/ProgressBar.tsx
|
|
2629
|
-
var
|
|
2630
|
-
var
|
|
2631
|
-
var
|
|
2763
|
+
var import_styled13 = __toESM(require("@emotion/styled"), 1);
|
|
2764
|
+
var import_react20 = require("react");
|
|
2765
|
+
var import_jsx_runtime17 = require("@emotion/react/jsx-runtime");
|
|
2632
2766
|
var defaultProps2 = {
|
|
2633
2767
|
isSm: false,
|
|
2634
2768
|
stepDuration: 0.5
|
|
@@ -2639,8 +2773,8 @@ function ProgressBar({
|
|
|
2639
2773
|
isSm = defaultProps2.isSm,
|
|
2640
2774
|
stepDuration = defaultProps2.stepDuration
|
|
2641
2775
|
}) {
|
|
2642
|
-
const [percentage, setPercentage] = (0,
|
|
2643
|
-
(0,
|
|
2776
|
+
const [percentage, setPercentage] = (0, import_react20.useState)(5);
|
|
2777
|
+
(0, import_react20.useEffect)(() => {
|
|
2644
2778
|
if (progressPercentage !== void 0) {
|
|
2645
2779
|
setPercentage(progressPercentage);
|
|
2646
2780
|
} else {
|
|
@@ -2649,7 +2783,7 @@ function ProgressBar({
|
|
|
2649
2783
|
}, 0);
|
|
2650
2784
|
}
|
|
2651
2785
|
}, [progressPercentage]);
|
|
2652
|
-
return /* @__PURE__ */ (0,
|
|
2786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ProgressBarContainer, { isSm, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Bar, { isSm, percentage, stepDuration, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2653
2787
|
BarBg,
|
|
2654
2788
|
{
|
|
2655
2789
|
background,
|
|
@@ -2660,7 +2794,7 @@ function ProgressBar({
|
|
|
2660
2794
|
) }) });
|
|
2661
2795
|
}
|
|
2662
2796
|
ProgressBar.defaultProps = defaultProps2;
|
|
2663
|
-
var ProgressBarContainer =
|
|
2797
|
+
var ProgressBarContainer = import_styled13.default.div`
|
|
2664
2798
|
${standardBorderRadius(16)}
|
|
2665
2799
|
background-color: ${({ theme }) => themeOr(theme.c05Neutral, theme.c1Neutral)({ theme })};
|
|
2666
2800
|
box-sizing: border-box;
|
|
@@ -2670,7 +2804,7 @@ var ProgressBarContainer = import_styled12.default.div`
|
|
|
2670
2804
|
width: 100%;
|
|
2671
2805
|
position: relative;
|
|
2672
2806
|
`;
|
|
2673
|
-
var BarBg =
|
|
2807
|
+
var BarBg = import_styled13.default.div`
|
|
2674
2808
|
${standardBorderRadius(16)}
|
|
2675
2809
|
width: ${({ percentage }) => 100 / percentage * 100}%;
|
|
2676
2810
|
height: 100%;
|
|
@@ -2684,7 +2818,7 @@ var BarBg = import_styled12.default.div`
|
|
|
2684
2818
|
#3f2e7e 115.32%
|
|
2685
2819
|
)`};
|
|
2686
2820
|
`;
|
|
2687
|
-
var Bar =
|
|
2821
|
+
var Bar = import_styled13.default.div`
|
|
2688
2822
|
${standardBorderRadius(16)}
|
|
2689
2823
|
overflow: hidden;
|
|
2690
2824
|
box-sizing: border-box;
|
|
@@ -2696,7 +2830,7 @@ var Bar = import_styled12.default.div`
|
|
|
2696
2830
|
`;
|
|
2697
2831
|
|
|
2698
2832
|
// src/components/Modal.tsx
|
|
2699
|
-
var
|
|
2833
|
+
var import_jsx_runtime18 = require("@emotion/react/jsx-runtime");
|
|
2700
2834
|
function Modal({
|
|
2701
2835
|
visible,
|
|
2702
2836
|
title,
|
|
@@ -2718,24 +2852,24 @@ function Modal({
|
|
|
2718
2852
|
width = 460,
|
|
2719
2853
|
progressBar
|
|
2720
2854
|
}) {
|
|
2721
|
-
const visibleChangedRef = (0,
|
|
2722
|
-
const nodeRef = (0,
|
|
2855
|
+
const visibleChangedRef = (0, import_react21.useRef)(false);
|
|
2856
|
+
const nodeRef = (0, import_react21.useRef)(null);
|
|
2723
2857
|
const [defaultFirstFocusRef, defaultFirstFocusRefCb] = useLiveRef();
|
|
2724
2858
|
const ref = firstFocusRef || defaultFirstFocusRef;
|
|
2725
|
-
const [nodeReady, setNodeReady] =
|
|
2726
|
-
const overlayRef = (0,
|
|
2727
|
-
const prevFocusedElement = (0,
|
|
2728
|
-
const modalContainerRef = (0,
|
|
2859
|
+
const [nodeReady, setNodeReady] = import_react21.default.useState(false);
|
|
2860
|
+
const overlayRef = (0, import_react21.useRef)(null);
|
|
2861
|
+
const prevFocusedElement = (0, import_react21.useRef)();
|
|
2862
|
+
const modalContainerRef = (0, import_react21.useRef)(null);
|
|
2729
2863
|
const bp2 = useBreakpoints();
|
|
2730
2864
|
const isSm = bp2.current("sm" /* sm */);
|
|
2731
2865
|
const formattedDescription = description ? toReactNodes(description) : null;
|
|
2732
|
-
(0,
|
|
2866
|
+
(0, import_react21.useEffect)(() => {
|
|
2733
2867
|
if (visible !== visibleChangedRef.current) {
|
|
2734
2868
|
visibleChangedRef.current = visible;
|
|
2735
2869
|
}
|
|
2736
2870
|
}, [visible]);
|
|
2737
2871
|
const visibleChanged = visible !== visibleChangedRef.current;
|
|
2738
|
-
(0,
|
|
2872
|
+
(0, import_react21.useEffect)(() => {
|
|
2739
2873
|
prevFocusedElement.current = document.activeElement;
|
|
2740
2874
|
if (!nodeRef.current) {
|
|
2741
2875
|
nodeRef.current = document.createElement("div");
|
|
@@ -2749,7 +2883,7 @@ function Modal({
|
|
|
2749
2883
|
}
|
|
2750
2884
|
};
|
|
2751
2885
|
}, []);
|
|
2752
|
-
(0,
|
|
2886
|
+
(0, import_react21.useEffect)(() => {
|
|
2753
2887
|
const handleOutsideClick = (event) => {
|
|
2754
2888
|
if (visible && overlayRef.current && event.target && overlayRef.current.contains(event.target) && !nonDismissable) {
|
|
2755
2889
|
onClose();
|
|
@@ -2786,7 +2920,7 @@ function Modal({
|
|
|
2786
2920
|
}
|
|
2787
2921
|
};
|
|
2788
2922
|
}, [onClose, visible, nonDismissable]);
|
|
2789
|
-
(0,
|
|
2923
|
+
(0, import_react21.useLayoutEffect)(() => {
|
|
2790
2924
|
if (visible) {
|
|
2791
2925
|
if (visibleChanged) {
|
|
2792
2926
|
prevFocusedElement.current = document.activeElement;
|
|
@@ -2815,9 +2949,9 @@ function Modal({
|
|
|
2815
2949
|
onClose();
|
|
2816
2950
|
}
|
|
2817
2951
|
}
|
|
2818
|
-
const modalContent = /* @__PURE__ */ (0,
|
|
2819
|
-
/* @__PURE__ */ (0,
|
|
2820
|
-
/* @__PURE__ */ (0,
|
|
2952
|
+
const modalContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react21.Fragment, { children: [
|
|
2953
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalOverlay, { ref: overlayRef }),
|
|
2954
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2821
2955
|
ModalContainer,
|
|
2822
2956
|
{
|
|
2823
2957
|
"aria-modal": true,
|
|
@@ -2825,22 +2959,22 @@ function Modal({
|
|
|
2825
2959
|
tabIndex: -1,
|
|
2826
2960
|
role: "dialog",
|
|
2827
2961
|
ref: modalContainerRef,
|
|
2828
|
-
children: /* @__PURE__ */ (0,
|
|
2829
|
-
!firstFocusRef && /* @__PURE__ */ (0,
|
|
2830
|
-
!(nonDismissable || ghost) && /* @__PURE__ */ (0,
|
|
2831
|
-
/* @__PURE__ */ (0,
|
|
2832
|
-
progressBar ? /* @__PURE__ */ (0,
|
|
2962
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalContent, { width, ghost, children: [
|
|
2963
|
+
!firstFocusRef && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DefaultFocusTarget, { ref: defaultFirstFocusRefCb }),
|
|
2964
|
+
!(nonDismissable || ghost) && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CloseButton, { onClick: onClickCloseButton, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "Close", width: 9 }) }),
|
|
2965
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalContentInner, { ghost, children: [
|
|
2966
|
+
progressBar ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { css: { marginBottom: "20px" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2833
2967
|
ProgressBar,
|
|
2834
2968
|
{
|
|
2835
2969
|
progressPercentage: progressBar.progressPercentage,
|
|
2836
2970
|
isSm: progressBar.isSm
|
|
2837
2971
|
}
|
|
2838
2972
|
) }) : null,
|
|
2839
|
-
title ? /* @__PURE__ */ (0,
|
|
2840
|
-
formattedDescription ? /* @__PURE__ */ (0,
|
|
2841
|
-
/* @__PURE__ */ (0,
|
|
2842
|
-
onSubmit ? /* @__PURE__ */ (0,
|
|
2843
|
-
!isSm && !cancelHidden && /* @__PURE__ */ (0,
|
|
2973
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { children: title }) : null,
|
|
2974
|
+
formattedDescription ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Description, { children: formattedDescription }) : null,
|
|
2975
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children }),
|
|
2976
|
+
onSubmit ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalButtonRow, { children: [
|
|
2977
|
+
!isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2844
2978
|
Button,
|
|
2845
2979
|
{
|
|
2846
2980
|
disabled: cancelDisabled,
|
|
@@ -2848,7 +2982,7 @@ function Modal({
|
|
|
2848
2982
|
text: cancelText != null ? cancelText : "Cancel"
|
|
2849
2983
|
}
|
|
2850
2984
|
),
|
|
2851
|
-
/* @__PURE__ */ (0,
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2852
2986
|
Button,
|
|
2853
2987
|
{
|
|
2854
2988
|
disabled: submitDisabled,
|
|
@@ -2858,25 +2992,25 @@ function Modal({
|
|
|
2858
2992
|
type: "submit"
|
|
2859
2993
|
}
|
|
2860
2994
|
),
|
|
2861
|
-
isSm && !cancelHidden && /* @__PURE__ */ (0,
|
|
2995
|
+
isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { onClick: onClose, text: "Cancel" })
|
|
2862
2996
|
] }) : null
|
|
2863
2997
|
] })
|
|
2864
2998
|
] })
|
|
2865
2999
|
}
|
|
2866
3000
|
)
|
|
2867
3001
|
] });
|
|
2868
|
-
return visible && nodeReady && nodeRef.current ?
|
|
2869
|
-
onSubmit ? /* @__PURE__ */ (0,
|
|
3002
|
+
return visible && nodeReady && nodeRef.current ? import_react_dom2.default.createPortal(
|
|
3003
|
+
onSubmit ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("form", { onSubmit: onSubmitForm, children: modalContent }) : modalContent,
|
|
2870
3004
|
nodeRef.current
|
|
2871
3005
|
) : null;
|
|
2872
3006
|
}
|
|
2873
|
-
var DefaultFocusTarget = (0,
|
|
3007
|
+
var DefaultFocusTarget = (0, import_styled14.default)(UnstyledButton)`
|
|
2874
3008
|
position: absolute;
|
|
2875
3009
|
top: -30px;
|
|
2876
3010
|
width: 0;
|
|
2877
3011
|
height: 0;
|
|
2878
3012
|
`;
|
|
2879
|
-
var ModalOverlay =
|
|
3013
|
+
var ModalOverlay = import_styled14.default.div`
|
|
2880
3014
|
position: fixed;
|
|
2881
3015
|
bottom: 0;
|
|
2882
3016
|
left: 0;
|
|
@@ -2886,7 +3020,7 @@ var ModalOverlay = import_styled13.default.div`
|
|
|
2886
3020
|
background: rgba(0, 0, 0, 0.5);
|
|
2887
3021
|
backdrop-filter: blur(2px);
|
|
2888
3022
|
`;
|
|
2889
|
-
var ModalContainer =
|
|
3023
|
+
var ModalContainer = import_styled14.default.div`
|
|
2890
3024
|
pointer-events: none;
|
|
2891
3025
|
position: fixed;
|
|
2892
3026
|
top: 0;
|
|
@@ -2904,14 +3038,14 @@ var ModalContainer = import_styled13.default.div`
|
|
|
2904
3038
|
padding-top: ${standardContentInsetSmPx}px;
|
|
2905
3039
|
`;
|
|
2906
3040
|
var contentTopMarginPx = 24;
|
|
2907
|
-
var Description =
|
|
3041
|
+
var Description = import_styled14.default.div`
|
|
2908
3042
|
color: ${({ theme }) => theme.mcNeutral};
|
|
2909
3043
|
margin-top: 4px;
|
|
2910
3044
|
& + * {
|
|
2911
3045
|
margin-top: ${contentTopMarginPx}px;
|
|
2912
3046
|
}
|
|
2913
3047
|
`;
|
|
2914
|
-
var ModalButtonRow =
|
|
3048
|
+
var ModalButtonRow = import_styled14.default.div`
|
|
2915
3049
|
margin-top: 32px;
|
|
2916
3050
|
${bp.minSm(`display: flex;`)}
|
|
2917
3051
|
|
|
@@ -2931,7 +3065,7 @@ var ModalButtonRow = import_styled13.default.div`
|
|
|
2931
3065
|
`)}
|
|
2932
3066
|
}
|
|
2933
3067
|
`;
|
|
2934
|
-
var ModalContent =
|
|
3068
|
+
var ModalContent = import_styled14.default.div`
|
|
2935
3069
|
${overflowAutoWithoutScrollbars}
|
|
2936
3070
|
${smContentInset}
|
|
2937
3071
|
${standardBorderRadius(16)}
|
|
@@ -2953,12 +3087,12 @@ var ModalContent = import_styled13.default.div`
|
|
|
2953
3087
|
}
|
|
2954
3088
|
}
|
|
2955
3089
|
`;
|
|
2956
|
-
var CloseButton = (0,
|
|
3090
|
+
var CloseButton = (0, import_styled14.default)(UnstyledButton)`
|
|
2957
3091
|
${standardFocusOutline}
|
|
2958
3092
|
width: 24px;
|
|
2959
3093
|
height: 24px;
|
|
2960
3094
|
`;
|
|
2961
|
-
var ModalContentInner =
|
|
3095
|
+
var ModalContentInner = import_styled14.default.div`
|
|
2962
3096
|
${(props) => props.ghost ? "" : "padding: 32px 24px 0;"}
|
|
2963
3097
|
${(props) => props.ghost ? "" : `${bp.sm(`
|
|
2964
3098
|
padding-left: 10px;
|
|
@@ -2966,12 +3100,156 @@ var ModalContentInner = import_styled13.default.div`
|
|
|
2966
3100
|
`)}`}
|
|
2967
3101
|
`;
|
|
2968
3102
|
|
|
3103
|
+
// src/components/Pill.tsx
|
|
3104
|
+
var import_styled15 = __toESM(require("@emotion/styled"), 1);
|
|
3105
|
+
var import_react22 = require("react");
|
|
3106
|
+
var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
|
|
3107
|
+
function Pill({
|
|
3108
|
+
text,
|
|
3109
|
+
onDeleteMouseDown,
|
|
3110
|
+
onDeleteMouseUp,
|
|
3111
|
+
onDeleteFromKeyboard,
|
|
3112
|
+
icon,
|
|
3113
|
+
loading = false,
|
|
3114
|
+
cursor = "text",
|
|
3115
|
+
isEditing = false,
|
|
3116
|
+
onChangeTextInput = () => {
|
|
3117
|
+
},
|
|
3118
|
+
onFocusTextInput = () => {
|
|
3119
|
+
},
|
|
3120
|
+
onClickPillBody = () => {
|
|
3121
|
+
},
|
|
3122
|
+
onBlurTextInput = () => {
|
|
3123
|
+
}
|
|
3124
|
+
}) {
|
|
3125
|
+
const textInputRef = (0, import_react22.useRef)(null);
|
|
3126
|
+
(0, import_react22.useEffect)(() => {
|
|
3127
|
+
if (isEditing && textInputRef.current) {
|
|
3128
|
+
textInputRef.current.focus();
|
|
3129
|
+
}
|
|
3130
|
+
}, [isEditing]);
|
|
3131
|
+
function handleOnDeleteMouseDown(event) {
|
|
3132
|
+
if (onDeleteMouseDown) {
|
|
3133
|
+
event.stopPropagation();
|
|
3134
|
+
onDeleteMouseDown(event);
|
|
3135
|
+
}
|
|
3136
|
+
}
|
|
3137
|
+
function handleOnDeleteKeyDown(event) {
|
|
3138
|
+
if (onDeleteFromKeyboard) {
|
|
3139
|
+
event.stopPropagation();
|
|
3140
|
+
if (event.key === "Enter") {
|
|
3141
|
+
onDeleteFromKeyboard();
|
|
3142
|
+
}
|
|
3143
|
+
}
|
|
3144
|
+
}
|
|
3145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3146
|
+
StyledPill,
|
|
3147
|
+
{
|
|
3148
|
+
hasIcon: Boolean(icon || loading || onDeleteMouseDown),
|
|
3149
|
+
cursor,
|
|
3150
|
+
onClick: (event) => {
|
|
3151
|
+
if (onClickPillBody) {
|
|
3152
|
+
event.stopPropagation();
|
|
3153
|
+
onClickPillBody();
|
|
3154
|
+
}
|
|
3155
|
+
},
|
|
3156
|
+
children: [
|
|
3157
|
+
isEditing ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3158
|
+
PillInput,
|
|
3159
|
+
{
|
|
3160
|
+
value: text,
|
|
3161
|
+
onChange: (event) => onChangeTextInput(event.target.value),
|
|
3162
|
+
onFocus: onFocusTextInput,
|
|
3163
|
+
onBlur: onBlurTextInput,
|
|
3164
|
+
ref: textInputRef
|
|
3165
|
+
}
|
|
3166
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PillText, { children: text }),
|
|
3167
|
+
(icon || loading || onDeleteMouseDown) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3168
|
+
PillIconContainer,
|
|
3169
|
+
{
|
|
3170
|
+
hasIconInset: Boolean(icon && !loading && !onDeleteMouseDown),
|
|
3171
|
+
children: [
|
|
3172
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Loading, { size: 16.1, center: false, ml: 5 }),
|
|
3173
|
+
!loading && onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3174
|
+
UnstyledButton,
|
|
3175
|
+
{
|
|
3176
|
+
onMouseDown: handleOnDeleteMouseDown,
|
|
3177
|
+
onKeyDown: handleOnDeleteKeyDown,
|
|
3178
|
+
type: "button",
|
|
3179
|
+
css: {
|
|
3180
|
+
display: "flex",
|
|
3181
|
+
padding: "10px",
|
|
3182
|
+
marginRight: "-10px"
|
|
3183
|
+
},
|
|
3184
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon, { name: "DeleteIcon", width: 16.1 })
|
|
3185
|
+
}
|
|
3186
|
+
),
|
|
3187
|
+
!loading && icon && !onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon, { name: icon, width: 16.1, color: colors.white })
|
|
3188
|
+
]
|
|
3189
|
+
}
|
|
3190
|
+
)
|
|
3191
|
+
]
|
|
3192
|
+
}
|
|
3193
|
+
);
|
|
3194
|
+
}
|
|
3195
|
+
var PillText = import_styled15.default.div`
|
|
3196
|
+
/* For mobile ensure empty values don't prevent div from having height: */
|
|
3197
|
+
height: 1.2rem;
|
|
3198
|
+
min-width: 100px;
|
|
3199
|
+
max-width: 210px;
|
|
3200
|
+
white-space: nowrap;
|
|
3201
|
+
text-overflow: ellipsis;
|
|
3202
|
+
overflow: hidden;
|
|
3203
|
+
font-weight: 600;
|
|
3204
|
+
`;
|
|
3205
|
+
var StyledPill = import_styled15.default.div`
|
|
3206
|
+
* + & {
|
|
3207
|
+
margin-top: 16px;
|
|
3208
|
+
}
|
|
3209
|
+
background-color: ${({ theme }) => theme.c05Neutral};
|
|
3210
|
+
color: ${({ theme }) => theme.text};
|
|
3211
|
+
padding: 12px 18px;
|
|
3212
|
+
${({ hasIcon }) => hasIcon && `padding-right: 48px;`}
|
|
3213
|
+
border-radius: 2em;
|
|
3214
|
+
display: flex;
|
|
3215
|
+
align-items: center;
|
|
3216
|
+
cursor: ${({ cursor }) => cursor};
|
|
3217
|
+
position: relative;
|
|
3218
|
+
`;
|
|
3219
|
+
var PillIconContainer = import_styled15.default.div`
|
|
3220
|
+
${flexCenter}
|
|
3221
|
+
${({ hasIconInset }) => hasIconInset ? `
|
|
3222
|
+
background-color: ${colors.blue43};
|
|
3223
|
+
padding: 8px;
|
|
3224
|
+
right: 4px;
|
|
3225
|
+
top: 3.5px;` : `right: 18px;`}
|
|
3226
|
+
border-radius: 50%;
|
|
3227
|
+
margin-left: 12px;
|
|
3228
|
+
position: absolute;
|
|
3229
|
+
`;
|
|
3230
|
+
var PillInput = import_styled15.default.input`
|
|
3231
|
+
background-color: transparent;
|
|
3232
|
+
border: none;
|
|
3233
|
+
outline: none;
|
|
3234
|
+
color: ${({ theme }) => theme.text};
|
|
3235
|
+
font-weight: 600;
|
|
3236
|
+
font-size: 1rem;
|
|
3237
|
+
padding: 0;
|
|
3238
|
+
margin: 0;
|
|
3239
|
+
width: 100%;
|
|
3240
|
+
max-width: 210px;
|
|
3241
|
+
white-space: nowrap;
|
|
3242
|
+
text-overflow: ellipsis;
|
|
3243
|
+
overflow: hidden;
|
|
3244
|
+
font-family: ${({ theme }) => theme.typography.fontFamilies.main};
|
|
3245
|
+
`;
|
|
3246
|
+
|
|
2969
3247
|
// src/components/SecretContainer.tsx
|
|
2970
|
-
var
|
|
2971
|
-
var
|
|
3248
|
+
var import_styled16 = __toESM(require("@emotion/styled"), 1);
|
|
3249
|
+
var import_jsx_runtime20 = require("@emotion/react/jsx-runtime");
|
|
2972
3250
|
function SecretContainer(props) {
|
|
2973
|
-
return props.secret ? /* @__PURE__ */ (0,
|
|
2974
|
-
/* @__PURE__ */ (0,
|
|
3251
|
+
return props.secret ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(StyledSecretContainer, { hasSecret: true, success: props.success, children: [
|
|
3252
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2975
3253
|
"span",
|
|
2976
3254
|
{
|
|
2977
3255
|
style: {
|
|
@@ -2983,10 +3261,10 @@ function SecretContainer(props) {
|
|
|
2983
3261
|
children: props.secret
|
|
2984
3262
|
}
|
|
2985
3263
|
),
|
|
2986
|
-
/* @__PURE__ */ (0,
|
|
2987
|
-
] }) : /* @__PURE__ */ (0,
|
|
3264
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CopyToClipboardButton, { value: props.secret, isSm: true, ml: 4 })
|
|
3265
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StyledSecretContainer, { hasSecret: false, children: "There are no tokens associated with this account" });
|
|
2988
3266
|
}
|
|
2989
|
-
var StyledSecretContainer =
|
|
3267
|
+
var StyledSecretContainer = import_styled16.default.div`
|
|
2990
3268
|
background-color: ${({ theme, hasSecret, success }) => hasSecret ? success ? theme.success : theme.c05Neutral : theme.bg};
|
|
2991
3269
|
${standardBorderRadius(8)}
|
|
2992
3270
|
padding: 18px 20px;
|
|
@@ -2998,14 +3276,14 @@ var StyledSecretContainer = import_styled14.default.div`
|
|
|
2998
3276
|
`;
|
|
2999
3277
|
|
|
3000
3278
|
// src/components/TextIconAligner.tsx
|
|
3001
|
-
var
|
|
3279
|
+
var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
|
|
3002
3280
|
function TextIconAligner({
|
|
3003
3281
|
text,
|
|
3004
3282
|
rightIcon,
|
|
3005
3283
|
leftIcon,
|
|
3006
3284
|
onClick
|
|
3007
3285
|
}) {
|
|
3008
|
-
const leftIconNode = leftIcon ? /* @__PURE__ */ (0,
|
|
3286
|
+
const leftIconNode = leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3009
3287
|
Icon,
|
|
3010
3288
|
{
|
|
3011
3289
|
name: leftIcon.name,
|
|
@@ -3014,7 +3292,7 @@ function TextIconAligner({
|
|
|
3014
3292
|
color: leftIcon.color
|
|
3015
3293
|
}
|
|
3016
3294
|
) : null;
|
|
3017
|
-
const rightIconNode = rightIcon ? /* @__PURE__ */ (0,
|
|
3295
|
+
const rightIconNode = rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3018
3296
|
Icon,
|
|
3019
3297
|
{
|
|
3020
3298
|
name: rightIcon.name,
|
|
@@ -3023,7 +3301,7 @@ function TextIconAligner({
|
|
|
3023
3301
|
color: rightIcon.color
|
|
3024
3302
|
}
|
|
3025
3303
|
) : null;
|
|
3026
|
-
return /* @__PURE__ */ (0,
|
|
3304
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
3027
3305
|
"span",
|
|
3028
3306
|
{
|
|
3029
3307
|
css: {
|
|
@@ -3042,6 +3320,7 @@ function TextIconAligner({
|
|
|
3042
3320
|
}
|
|
3043
3321
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3044
3322
|
0 && (module.exports = {
|
|
3323
|
+
Badge,
|
|
3045
3324
|
Button,
|
|
3046
3325
|
ButtonRow,
|
|
3047
3326
|
ButtonRowContainer,
|
|
@@ -3053,11 +3332,13 @@ function TextIconAligner({
|
|
|
3053
3332
|
CurrencyIcon,
|
|
3054
3333
|
Icon,
|
|
3055
3334
|
IconContainer,
|
|
3335
|
+
LightTooltip,
|
|
3056
3336
|
LightboxImage,
|
|
3057
3337
|
LightsparkProvider,
|
|
3058
3338
|
Loading,
|
|
3059
3339
|
LoadingWrapper,
|
|
3060
3340
|
Modal,
|
|
3341
|
+
Pill,
|
|
3061
3342
|
ProgressBar,
|
|
3062
3343
|
SecretContainer,
|
|
3063
3344
|
StyledButton,
|