@wallet-ui/react 4.1.1 → 4.2.0-canary-20260602204251
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/README.md +0 -4
- package/dist/index.browser.cjs +87 -0
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +88 -2
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.native.mjs +88 -2
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.node.cjs +87 -0
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +88 -2
- package/dist/index.node.mjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/wallet-ui-cluster-dropdown.d.ts.map +1 -1
- package/dist/types/wallet-ui-label.d.ts.map +1 -1
- package/dist/types/wallet-ui-qr-code.d.ts +14 -0
- package/dist/types/wallet-ui-qr-code.d.ts.map +1 -0
- package/package.json +6 -9
package/README.md
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
[![npm][npm-image]][npm-url]
|
|
2
2
|
[![npm-downloads][npm-downloads-image]][npm-url]
|
|
3
|
-
<br />
|
|
4
|
-
[![code-style-prettier][code-style-prettier-image]][code-style-prettier-url]
|
|
5
3
|
|
|
6
|
-
[code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
|
|
7
|
-
[code-style-prettier-url]: https://github.com/prettier/prettier
|
|
8
4
|
[npm-downloads-image]: https://img.shields.io/npm/dm/@wallet-ui/react/latest.svg?style=flat
|
|
9
5
|
[npm-image]: https://img.shields.io/npm/v/@wallet-ui/react/latest.svg?style=flat
|
|
10
6
|
[npm-url]: https://www.npmjs.com/package/@wallet-ui/react/v/latest
|
package/dist/index.browser.cjs
CHANGED
|
@@ -1045,6 +1045,92 @@ function WalletUiModal({ wallets, select, ...props }) {
|
|
|
1045
1045
|
function WalletUiModalTrigger({ label = "Select Wallet", modal, ...props }) {
|
|
1046
1046
|
return /* @__PURE__ */ React19__default.default.createElement(BaseButton, { label, onClick: () => void modal.open(), ...props });
|
|
1047
1047
|
}
|
|
1048
|
+
var DEFAULT_QR_CODE_BACKGROUND_COLOR = "#fff";
|
|
1049
|
+
var DEFAULT_QR_CODE_FOREGROUND_COLOR = "#000";
|
|
1050
|
+
var DEFAULT_QR_CODE_LOGO_SIZE = 0.2;
|
|
1051
|
+
var LOGO_BACKGROUND_PADDING = 1;
|
|
1052
|
+
var MAX_QR_CODE_LOGO_SIZE = 0.25;
|
|
1053
|
+
function WalletUiQrCode({
|
|
1054
|
+
backgroundColor = DEFAULT_QR_CODE_BACKGROUND_COLOR,
|
|
1055
|
+
border,
|
|
1056
|
+
errorCorrection,
|
|
1057
|
+
foregroundColor = DEFAULT_QR_CODE_FOREGROUND_COLOR,
|
|
1058
|
+
logo,
|
|
1059
|
+
title,
|
|
1060
|
+
value,
|
|
1061
|
+
...props
|
|
1062
|
+
}) {
|
|
1063
|
+
const effectiveErrorCorrection = errorCorrection ?? (logo ? "high" : void 0);
|
|
1064
|
+
const hasAccessibleName = Boolean(title || props["aria-label"] || props["aria-labelledby"]);
|
|
1065
|
+
const titleId = React19__default.default.useId();
|
|
1066
|
+
const qrCode = React19__default.default.useMemo(
|
|
1067
|
+
() => core$1.createQrCode(value, {
|
|
1068
|
+
border,
|
|
1069
|
+
errorCorrection: effectiveErrorCorrection
|
|
1070
|
+
}),
|
|
1071
|
+
[border, effectiveErrorCorrection, value]
|
|
1072
|
+
);
|
|
1073
|
+
const path = React19__default.default.useMemo(() => createQrCodeSvgPath(qrCode.cells), [qrCode.cells]);
|
|
1074
|
+
return /* @__PURE__ */ React19__default.default.createElement(
|
|
1075
|
+
BaseSvg,
|
|
1076
|
+
{
|
|
1077
|
+
"aria-hidden": hasAccessibleName ? void 0 : true,
|
|
1078
|
+
"aria-labelledby": props["aria-labelledby"] ?? (title ? titleId : void 0),
|
|
1079
|
+
"data-wu": "wallet-ui-qr-code",
|
|
1080
|
+
role: hasAccessibleName ? "img" : void 0,
|
|
1081
|
+
shapeRendering: "crispEdges",
|
|
1082
|
+
viewBox: `0 0 ${qrCode.size} ${qrCode.size}`,
|
|
1083
|
+
...props
|
|
1084
|
+
},
|
|
1085
|
+
title ? /* @__PURE__ */ React19__default.default.createElement("title", { id: titleId }, title) : null,
|
|
1086
|
+
/* @__PURE__ */ React19__default.default.createElement("rect", { fill: backgroundColor, height: qrCode.size, width: qrCode.size, x: 0, y: 0 }),
|
|
1087
|
+
/* @__PURE__ */ React19__default.default.createElement("path", { d: path, fill: foregroundColor }),
|
|
1088
|
+
logo ? /* @__PURE__ */ React19__default.default.createElement(WalletUiQrCodeLogo, { backgroundColor, logo, size: qrCode.size }) : null
|
|
1089
|
+
);
|
|
1090
|
+
}
|
|
1091
|
+
function WalletUiQrCodeLogo({
|
|
1092
|
+
backgroundColor,
|
|
1093
|
+
logo,
|
|
1094
|
+
size
|
|
1095
|
+
}) {
|
|
1096
|
+
const logoSize = size * getQrCodeLogoSize(logo.size);
|
|
1097
|
+
const logoPosition = (size - logoSize) / 2;
|
|
1098
|
+
const logoBackgroundPosition = Math.max(0, Math.floor(logoPosition) - LOGO_BACKGROUND_PADDING);
|
|
1099
|
+
const logoBackgroundEnd = Math.min(size, Math.ceil(logoPosition + logoSize) + LOGO_BACKGROUND_PADDING);
|
|
1100
|
+
const logoBackgroundSize = logoBackgroundEnd - logoBackgroundPosition;
|
|
1101
|
+
const logoBackgroundColor = logo.backgroundColor ?? backgroundColor;
|
|
1102
|
+
return /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement(
|
|
1103
|
+
"rect",
|
|
1104
|
+
{
|
|
1105
|
+
fill: logoBackgroundColor,
|
|
1106
|
+
height: formatSvgNumber(logoBackgroundSize),
|
|
1107
|
+
width: formatSvgNumber(logoBackgroundSize),
|
|
1108
|
+
x: formatSvgNumber(logoBackgroundPosition),
|
|
1109
|
+
y: formatSvgNumber(logoBackgroundPosition)
|
|
1110
|
+
}
|
|
1111
|
+
), /* @__PURE__ */ React19__default.default.createElement(
|
|
1112
|
+
"image",
|
|
1113
|
+
{
|
|
1114
|
+
height: formatSvgNumber(logoSize),
|
|
1115
|
+
href: logo.href,
|
|
1116
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
1117
|
+
width: formatSvgNumber(logoSize),
|
|
1118
|
+
x: formatSvgNumber(logoPosition),
|
|
1119
|
+
y: formatSvgNumber(logoPosition)
|
|
1120
|
+
}
|
|
1121
|
+
));
|
|
1122
|
+
}
|
|
1123
|
+
function createQrCodeSvgPath(cells) {
|
|
1124
|
+
return cells.flatMap(
|
|
1125
|
+
(row, rowIndex) => row.map((cell, columnIndex) => cell ? `M${columnIndex} ${rowIndex}h1v1H${columnIndex}z` : "")
|
|
1126
|
+
).join("");
|
|
1127
|
+
}
|
|
1128
|
+
function formatSvgNumber(value) {
|
|
1129
|
+
return Number(value.toFixed(6));
|
|
1130
|
+
}
|
|
1131
|
+
function getQrCodeLogoSize(size = DEFAULT_QR_CODE_LOGO_SIZE) {
|
|
1132
|
+
return Math.min(size, MAX_QR_CODE_LOGO_SIZE);
|
|
1133
|
+
}
|
|
1048
1134
|
|
|
1049
1135
|
Object.defineProperty(exports, "getWalletAccountFeature", {
|
|
1050
1136
|
enumerable: true,
|
|
@@ -1088,6 +1174,7 @@ exports.WalletUiList = WalletUiList;
|
|
|
1088
1174
|
exports.WalletUiListButton = WalletUiListButton;
|
|
1089
1175
|
exports.WalletUiModal = WalletUiModal;
|
|
1090
1176
|
exports.WalletUiModalTrigger = WalletUiModalTrigger;
|
|
1177
|
+
exports.WalletUiQrCode = WalletUiQrCode;
|
|
1091
1178
|
exports.createWalletUiConfig = createWalletUiConfig;
|
|
1092
1179
|
exports.ellipsify = ellipsify;
|
|
1093
1180
|
exports.useBaseDropdown = useBaseDropdown;
|