@ledgerhq/react-ui 0.14.8-nightly.1 → 0.14.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/lib/cjs/components/asorted/Icon/ProviderIcon.js +83 -0
- package/lib/cjs/components/asorted/Icon/ProviderIcon.js.map +7 -0
- package/lib/cjs/components/asorted/Icon/Providers.stories.js +123 -0
- package/lib/cjs/components/asorted/Icon/Providers.stories.js.map +7 -0
- package/lib/cjs/components/asorted/Icon/index.js +2 -0
- package/lib/cjs/components/asorted/Icon/index.js.map +2 -2
- package/lib/cjs/components/asorted/index.js +1 -0
- package/lib/cjs/components/asorted/index.js.map +2 -2
- package/lib/components/asorted/Icon/ProviderIcon.d.ts +22 -0
- package/lib/components/asorted/Icon/ProviderIcon.js +50 -0
- package/lib/components/asorted/Icon/ProviderIcon.js.map +1 -0
- package/lib/components/asorted/Icon/index.d.ts +1 -0
- package/lib/components/asorted/Icon/index.js +1 -0
- package/lib/components/asorted/Icon/index.js.map +1 -1
- package/lib/components/asorted/index.d.ts +1 -1
- package/lib/components/asorted/index.js +1 -1
- package/lib/components/asorted/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ProviderIcon_exports = {};
|
|
30
|
+
__export(ProviderIcon_exports, {
|
|
31
|
+
default: () => ProviderIcon_default,
|
|
32
|
+
iconNames: () => iconNames,
|
|
33
|
+
sizes: () => sizes
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(ProviderIcon_exports);
|
|
36
|
+
var providers = __toESM(require("@ledgerhq/icons-ui/reactLegacy/Providers/index"));
|
|
37
|
+
var providersBoxed = __toESM(require("@ledgerhq/icons-ui/reactLegacy/ProvidersBoxed/index"));
|
|
38
|
+
var import_react = __toESM(require("react"));
|
|
39
|
+
var import_Flex = __toESM(require("../../layout/Flex"));
|
|
40
|
+
const sizes = {
|
|
41
|
+
XXS: 16,
|
|
42
|
+
XS: 24,
|
|
43
|
+
S: 32,
|
|
44
|
+
M: 40,
|
|
45
|
+
L: 48,
|
|
46
|
+
XL: 56
|
|
47
|
+
};
|
|
48
|
+
const iconNames = Array.from(
|
|
49
|
+
Object.keys(providers).reduce((set, rawKey) => {
|
|
50
|
+
const key = rawKey.replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, "$1").replace(/(.+)(Ultra)+$/g, "$1").replace(/^_/, "");
|
|
51
|
+
if (!set.has(key))
|
|
52
|
+
set.add(key);
|
|
53
|
+
return set;
|
|
54
|
+
}, /* @__PURE__ */ new Set())
|
|
55
|
+
);
|
|
56
|
+
const getIconCaseInsensitive = ({ search, object }) => {
|
|
57
|
+
const asLower = search.toLowerCase();
|
|
58
|
+
const key = Object.keys(object).find((key2) => key2.toLowerCase().replace(/^_/, "") === asLower);
|
|
59
|
+
return key ? object[key] : null;
|
|
60
|
+
};
|
|
61
|
+
const ProviderIcon = ({ name, size = "S", boxed = false }) => {
|
|
62
|
+
const maybeIconName = `${name}`;
|
|
63
|
+
if (boxed) {
|
|
64
|
+
const BoxedComponent = getIconCaseInsensitive({
|
|
65
|
+
search: maybeIconName,
|
|
66
|
+
object: providersBoxed
|
|
67
|
+
});
|
|
68
|
+
if (BoxedComponent) {
|
|
69
|
+
return /* @__PURE__ */ import_react.default.createElement(import_Flex.default, { width: sizes[size], height: sizes[size], borderRadius: 8, overflow: "hidden" }, /* @__PURE__ */ import_react.default.createElement(BoxedComponent, { size: sizes[size] }));
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const Component = getIconCaseInsensitive({
|
|
74
|
+
search: maybeIconName,
|
|
75
|
+
object: providers
|
|
76
|
+
});
|
|
77
|
+
if (Component) {
|
|
78
|
+
return /* @__PURE__ */ import_react.default.createElement(Component, { size: sizes[size] });
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
};
|
|
82
|
+
var ProviderIcon_default = ProviderIcon;
|
|
83
|
+
//# sourceMappingURL=ProviderIcon.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/components/asorted/Icon/ProviderIcon.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as providers from \"@ledgerhq/icons-ui/reactLegacy/Providers/index\";\nimport * as providersBoxed from \"@ledgerhq/icons-ui/reactLegacy/ProvidersBoxed/index\";\n\nimport React from \"react\";\nimport FlexBox from \"../../layout/Flex\";\n\nexport const sizes = {\n XXS: 16,\n XS: 24,\n S: 32,\n M: 40,\n L: 48,\n XL: 56,\n};\n\nexport type ProviderSizes = keyof typeof sizes;\n\nexport type Props = {\n name: string;\n size?: ProviderSizes;\n boxed?: boolean;\n};\n\nexport const iconNames = Array.from(\n Object.keys(providers).reduce((set, rawKey) => {\n const key = rawKey\n .replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, \"$1\")\n .replace(/(.+)(Ultra)+$/g, \"$1\")\n .replace(/^_/, \"\");\n if (!set.has(key)) set.add(key);\n return set;\n }, new Set<string>()),\n);\n\nexport type IconGetterProps = {\n search: string;\n object: Record<string, React.ReactNode>;\n};\n\nconst getIconCaseInsensitive = ({ search, object }: IconGetterProps) => {\n const asLower = search.toLowerCase();\n const key = Object.keys(object).find(key => key.toLowerCase().replace(/^_/, \"\") === asLower);\n return key ? object[key] : null;\n};\n\nconst ProviderIcon = ({ name, size = \"S\", boxed = false }: Props): JSX.Element | null => {\n const maybeIconName = `${name}`;\n\n if (boxed) {\n const BoxedComponent = getIconCaseInsensitive({\n search: maybeIconName,\n object: providersBoxed,\n }) as React.ElementType;\n if (BoxedComponent) {\n return (\n <FlexBox width={sizes[size]} height={sizes[size]} borderRadius={8} overflow={\"hidden\"}>\n <BoxedComponent size={sizes[size]} />\n </FlexBox>\n );\n }\n return null;\n }\n const Component = getIconCaseInsensitive({\n search: maybeIconName,\n object: providers,\n }) as React.ElementType;\n if (Component) {\n return <Component size={sizes[size]} />;\n }\n return null;\n};\n\nexport default ProviderIcon;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA2B;AAC3B,qBAAgC;AAEhC,mBAAkB;AAClB,kBAAoB;AAEb,MAAM,QAAQ;AAAA,EACnB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AACN;AAUO,MAAM,YAAY,MAAM;AAAA,EAC7B,OAAO,KAAK,SAAS,EAAE,OAAO,CAAC,KAAK,WAAW;AAC7C,UAAM,MAAM,OACT,QAAQ,iDAAiD,IAAI,EAC7D,QAAQ,kBAAkB,IAAI,EAC9B,QAAQ,MAAM,EAAE;AACnB,QAAI,CAAC,IAAI,IAAI,GAAG;AAAG,UAAI,IAAI,GAAG;AAC9B,WAAO;AAAA,EACT,GAAG,oBAAI,IAAY,CAAC;AACtB;AAOA,MAAM,yBAAyB,CAAC,EAAE,QAAQ,OAAO,MAAuB;AACtE,QAAM,UAAU,OAAO,YAAY;AACnC,QAAM,MAAM,OAAO,KAAK,MAAM,EAAE,KAAK,CAAAA,SAAOA,KAAI,YAAY,EAAE,QAAQ,MAAM,EAAE,MAAM,OAAO;AAC3F,SAAO,MAAM,OAAO,GAAG,IAAI;AAC7B;AAEA,MAAM,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK,QAAQ,MAAM,MAAiC;AACvF,QAAM,gBAAgB,GAAG;AAEzB,MAAI,OAAO;AACT,UAAM,iBAAiB,uBAAuB;AAAA,MAC5C,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV,CAAC;AACD,QAAI,gBAAgB;AAClB,aACE,6BAAAC,QAAA,cAAC,YAAAC,SAAA,EAAQ,OAAO,MAAM,IAAI,GAAG,QAAQ,MAAM,IAAI,GAAG,cAAc,GAAG,UAAU,YAC3E,6BAAAD,QAAA,cAAC,kBAAe,MAAM,MAAM,IAAI,GAAG,CACrC;AAAA,IAEJ;AACA,WAAO;AAAA,EACT;AACA,QAAM,YAAY,uBAAuB;AAAA,IACvC,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV,CAAC;AACD,MAAI,WAAW;AACb,WAAO,6BAAAA,QAAA,cAAC,aAAU,MAAM,MAAM,IAAI,GAAG;AAAA,EACvC;AACA,SAAO;AACT;AAEA,IAAO,uBAAQ;",
|
|
6
|
+
"names": ["key", "React", "FlexBox"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var Providers_stories_exports = {};
|
|
30
|
+
__export(Providers_stories_exports, {
|
|
31
|
+
List: () => List,
|
|
32
|
+
SingleIcon: () => SingleIcon,
|
|
33
|
+
default: () => Providers_stories_default
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(Providers_stories_exports);
|
|
36
|
+
var import_react = __toESM(require("react"));
|
|
37
|
+
var import_styled_components = __toESM(require("styled-components"));
|
|
38
|
+
var import_ProviderIcon = __toESM(require("./ProviderIcon"));
|
|
39
|
+
var import__ = require("../../..");
|
|
40
|
+
const ScrollArea = (0, import_styled_components.default)(import__.Grid)`
|
|
41
|
+
flex: 1;
|
|
42
|
+
height: auto;
|
|
43
|
+
${(p) => p.theme.overflow.y};
|
|
44
|
+
`;
|
|
45
|
+
const Container = (0, import_styled_components.default)(import__.Flex).attrs({
|
|
46
|
+
flex: 1,
|
|
47
|
+
flexDirection: "column",
|
|
48
|
+
p: 4
|
|
49
|
+
})`
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
height: calc(100vh - 4em);
|
|
52
|
+
`;
|
|
53
|
+
const IconContainer = (0, import_styled_components.default)(import__.Flex).attrs({
|
|
54
|
+
flexDirection: "column",
|
|
55
|
+
justifyContent: "flex-end",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
p: 4
|
|
58
|
+
})`
|
|
59
|
+
${(p) => p.active ? `background-color: ${p.theme.colors.neutral.c20};` : ``}
|
|
60
|
+
border-radius: 4px;
|
|
61
|
+
height: 100px;
|
|
62
|
+
`;
|
|
63
|
+
const Bold = import_styled_components.default.b`
|
|
64
|
+
color: ${(p) => p.theme.colors.primary.c80};
|
|
65
|
+
`;
|
|
66
|
+
const Story = {
|
|
67
|
+
title: "Asorted/Icons/ProviderIcons",
|
|
68
|
+
argTypes: {
|
|
69
|
+
size: {
|
|
70
|
+
type: "enum",
|
|
71
|
+
description: "Icon size",
|
|
72
|
+
defaultValue: "L",
|
|
73
|
+
control: {
|
|
74
|
+
options: Object.keys(import_ProviderIcon.sizes)
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
boxed: {
|
|
78
|
+
type: "boolean",
|
|
79
|
+
description: "Boxed",
|
|
80
|
+
defaultValue: false
|
|
81
|
+
},
|
|
82
|
+
name: {
|
|
83
|
+
type: "string"
|
|
84
|
+
// defaultValue: "Aave",
|
|
85
|
+
// description: "[Only for single icon], Icon name",
|
|
86
|
+
// control: {
|
|
87
|
+
// options: iconNames,
|
|
88
|
+
// control: {
|
|
89
|
+
// type: "select",
|
|
90
|
+
// },
|
|
91
|
+
// },
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var Providers_stories_default = Story;
|
|
96
|
+
const ListTemplate = (args) => {
|
|
97
|
+
const [search, setSearch] = (0, import_react.useState)("");
|
|
98
|
+
const s = search.toLowerCase();
|
|
99
|
+
const regexp = new RegExp(s, "i");
|
|
100
|
+
return /* @__PURE__ */ import_react.default.createElement(Container, null, /* @__PURE__ */ import_react.default.createElement(import__.SearchInput, { value: search, onChange: setSearch }), /* @__PURE__ */ import_react.default.createElement(
|
|
101
|
+
ScrollArea,
|
|
102
|
+
{
|
|
103
|
+
gridTemplateColumns: "repeat(auto-fill, 100px);",
|
|
104
|
+
gridTemplateRows: "repeat(auto-fill, 100px);",
|
|
105
|
+
gridGap: 4,
|
|
106
|
+
mt: 4
|
|
107
|
+
},
|
|
108
|
+
import_ProviderIcon.iconNames.sort((a, b) => {
|
|
109
|
+
return s ? b.toLowerCase().indexOf(s) - a.toLowerCase().indexOf(s) : a.localeCompare(b);
|
|
110
|
+
}).map((name) => {
|
|
111
|
+
const match = name.match(regexp);
|
|
112
|
+
const active = s && match;
|
|
113
|
+
const index = (match == null ? void 0 : match.index) ?? 0;
|
|
114
|
+
return /* @__PURE__ */ import_react.default.createElement(IconContainer, { active: !!active }, /* @__PURE__ */ import_react.default.createElement(import__.Flex, { flex: 1, justifyContent: "center", alignItems: "center" }, /* @__PURE__ */ import_react.default.createElement(import_ProviderIcon.default, { key: name, name, size: args.size, boxed: args.boxed })), /* @__PURE__ */ import_react.default.createElement(import__.Text, { variant: "extraSmall" }, active ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, name.substr(0, index), /* @__PURE__ */ import_react.default.createElement(Bold, null, name.substr(index, s.length)), name.substr(index + s.length)) : name));
|
|
115
|
+
})
|
|
116
|
+
));
|
|
117
|
+
};
|
|
118
|
+
const FlagTemplate = (args) => {
|
|
119
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ProviderIcon.default, { ...args });
|
|
120
|
+
};
|
|
121
|
+
const List = ListTemplate.bind({});
|
|
122
|
+
const SingleIcon = FlagTemplate.bind({});
|
|
123
|
+
//# sourceMappingURL=Providers.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/components/asorted/Icon/Providers.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport ProviderIcon, {\n iconNames,\n Props as ProviderIconProps,\n sizes as providerSizes,\n} from \"./ProviderIcon\";\nimport { Text, SearchInput, Flex, Grid } from \"../../..\";\n\nconst ScrollArea = styled(Grid)`\n flex: 1;\n height: auto;\n ${p => p.theme.overflow.y};\n`;\n\nconst Container = styled(Flex).attrs({\n flex: 1,\n flexDirection: \"column\",\n p: 4,\n})`\n overflow: hidden;\n height: calc(100vh - 4em);\n`;\n\nconst IconContainer = styled(Flex).attrs<{ active?: boolean }>({\n flexDirection: \"column\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n p: 4,\n})<{ active?: boolean }>`\n ${p => (p.active ? `background-color: ${p.theme.colors.neutral.c20};` : ``)}\n border-radius: 4px;\n height: 100px;\n`;\n\nconst Bold = styled.b`\n color: ${p => p.theme.colors.primary.c80};\n`;\n\nconst Story = {\n title: \"Asorted/Icons/ProviderIcons\",\n argTypes: {\n size: {\n type: \"enum\",\n description: \"Icon size\",\n defaultValue: \"L\",\n control: {\n options: Object.keys(providerSizes),\n },\n },\n boxed: {\n type: \"boolean\",\n description: \"Boxed\",\n defaultValue: false,\n },\n name: {\n type: \"string\",\n // defaultValue: \"Aave\",\n // description: \"[Only for single icon], Icon name\",\n // control: {\n // options: iconNames,\n // control: {\n // type: \"select\",\n // },\n // },\n },\n },\n};\nexport default Story;\n\nconst ListTemplate = (args: ProviderIconProps) => {\n const [search, setSearch] = useState(\"\");\n const s = search.toLowerCase();\n const regexp = new RegExp(s, \"i\");\n\n return (\n <Container>\n <SearchInput value={search} onChange={setSearch} />\n <ScrollArea\n gridTemplateColumns=\"repeat(auto-fill, 100px);\"\n gridTemplateRows=\"repeat(auto-fill, 100px);\"\n gridGap={4}\n mt={4}\n >\n {iconNames\n .sort((a: string, b: string) => {\n return s ? b.toLowerCase().indexOf(s) - a.toLowerCase().indexOf(s) : a.localeCompare(b);\n })\n .map(name => {\n const match = name.match(regexp);\n const active = s && match;\n const index = match?.index ?? 0;\n return (\n <IconContainer active={!!active}>\n <Flex flex={1} justifyContent=\"center\" alignItems=\"center\">\n <ProviderIcon key={name} name={name} size={args.size} boxed={args.boxed} />\n </Flex>\n <Text variant=\"extraSmall\">\n {active ? (\n <>\n {name.substr(0, index)}\n <Bold>{name.substr(index, s.length)}</Bold>\n {name.substr(index + s.length)}\n </>\n ) : (\n name\n )}\n </Text>\n </IconContainer>\n );\n })}\n </ScrollArea>\n </Container>\n );\n};\nconst FlagTemplate = (args: ProviderIconProps) => {\n return <ProviderIcon {...args} />;\n};\n\nexport const List = ListTemplate.bind({});\nexport const SingleIcon = FlagTemplate.bind({});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["styled", "providerSizes", "React", "ProviderIcon"]
|
|
7
|
+
}
|
|
@@ -31,6 +31,7 @@ __export(Icon_exports, {
|
|
|
31
31
|
BoxedIcon: () => import_BoxedIcon.default,
|
|
32
32
|
CryptoIcon: () => import_CryptoIcon.default,
|
|
33
33
|
IconBox: () => import_BoxedIcon.IconBox,
|
|
34
|
+
ProviderIcon: () => import_ProviderIcon.default,
|
|
34
35
|
default: () => import_Icon.default,
|
|
35
36
|
iconNames: () => import_Icon.iconNames
|
|
36
37
|
});
|
|
@@ -38,4 +39,5 @@ module.exports = __toCommonJS(Icon_exports);
|
|
|
38
39
|
var import_Icon = __toESM(require("./Icon"));
|
|
39
40
|
var import_BoxedIcon = __toESM(require("./BoxedIcon"));
|
|
40
41
|
var import_CryptoIcon = __toESM(require("./CryptoIcon"));
|
|
42
|
+
var import_ProviderIcon = __toESM(require("./ProviderIcon"));
|
|
41
43
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/components/asorted/Icon/index.tsx"],
|
|
4
|
-
"sourcesContent": ["export { default, iconNames } from \"./Icon\";\nimport BoxedIcon, { IconBox } from \"./BoxedIcon\";\nexport { BoxedIcon, IconBox };\nexport type { Props } from \"./Icon\";\nexport { default as CryptoIcon } from \"./CryptoIcon\";\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmC;AACnC,uBAAmC;AAGnC,wBAAsC;",
|
|
4
|
+
"sourcesContent": ["export { default, iconNames } from \"./Icon\";\nimport BoxedIcon, { IconBox } from \"./BoxedIcon\";\nexport { BoxedIcon, IconBox };\nexport type { Props } from \"./Icon\";\nexport { default as CryptoIcon } from \"./CryptoIcon\";\nexport { default as ProviderIcon } from \"./ProviderIcon\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmC;AACnC,uBAAmC;AAGnC,wBAAsC;AACtC,0BAAwC;",
|
|
6
6
|
"names": ["BoxedIcon"]
|
|
7
7
|
}
|
|
@@ -33,6 +33,7 @@ __export(asorted_exports, {
|
|
|
33
33
|
Divider: () => import_Divider.default,
|
|
34
34
|
Icon: () => import_Icon.default,
|
|
35
35
|
IconBox: () => import_Icon.IconBox,
|
|
36
|
+
ProviderIcon: () => import_Icon.ProviderIcon,
|
|
36
37
|
Text: () => import_Text.default
|
|
37
38
|
});
|
|
38
39
|
module.exports = __toCommonJS(asorted_exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/asorted/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { default as Divider } from \"./Divider\";\nexport { default as Icon, IconBox, BoxedIcon, CryptoIcon } from \"./Icon\";\nexport { default as Text } from \"./Text\";\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAmC;AACnC,
|
|
4
|
+
"sourcesContent": ["export { default as Divider } from \"./Divider\";\nexport { default as Icon, IconBox, BoxedIcon, CryptoIcon, ProviderIcon } from \"./Icon\";\nexport { default as Text } from \"./Text\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAmC;AACnC,kBAA8E;AAC9E,kBAAgC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const sizes: {
|
|
3
|
+
XXS: number;
|
|
4
|
+
XS: number;
|
|
5
|
+
S: number;
|
|
6
|
+
M: number;
|
|
7
|
+
L: number;
|
|
8
|
+
XL: number;
|
|
9
|
+
};
|
|
10
|
+
export type ProviderSizes = keyof typeof sizes;
|
|
11
|
+
export type Props = {
|
|
12
|
+
name: string;
|
|
13
|
+
size?: ProviderSizes;
|
|
14
|
+
boxed?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const iconNames: string[];
|
|
17
|
+
export type IconGetterProps = {
|
|
18
|
+
search: string;
|
|
19
|
+
object: Record<string, React.ReactNode>;
|
|
20
|
+
};
|
|
21
|
+
declare const ProviderIcon: ({ name, size, boxed }: Props) => JSX.Element | null;
|
|
22
|
+
export default ProviderIcon;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as providers from "@ledgerhq/icons-ui/reactLegacy/Providers/index";
|
|
2
|
+
import * as providersBoxed from "@ledgerhq/icons-ui/reactLegacy/ProvidersBoxed/index";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import FlexBox from "../../layout/Flex";
|
|
5
|
+
export const sizes = {
|
|
6
|
+
XXS: 16,
|
|
7
|
+
XS: 24,
|
|
8
|
+
S: 32,
|
|
9
|
+
M: 40,
|
|
10
|
+
L: 48,
|
|
11
|
+
XL: 56,
|
|
12
|
+
};
|
|
13
|
+
export const iconNames = Array.from(Object.keys(providers).reduce((set, rawKey) => {
|
|
14
|
+
const key = rawKey
|
|
15
|
+
.replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, "$1")
|
|
16
|
+
.replace(/(.+)(Ultra)+$/g, "$1")
|
|
17
|
+
.replace(/^_/, "");
|
|
18
|
+
if (!set.has(key))
|
|
19
|
+
set.add(key);
|
|
20
|
+
return set;
|
|
21
|
+
}, new Set()));
|
|
22
|
+
const getIconCaseInsensitive = ({ search, object }) => {
|
|
23
|
+
const asLower = search.toLowerCase();
|
|
24
|
+
const key = Object.keys(object).find(key => key.toLowerCase().replace(/^_/, "") === asLower);
|
|
25
|
+
return key ? object[key] : null;
|
|
26
|
+
};
|
|
27
|
+
const ProviderIcon = ({ name, size = "S", boxed = false }) => {
|
|
28
|
+
const maybeIconName = `${name}`;
|
|
29
|
+
if (boxed) {
|
|
30
|
+
const BoxedComponent = getIconCaseInsensitive({
|
|
31
|
+
search: maybeIconName,
|
|
32
|
+
object: providersBoxed,
|
|
33
|
+
});
|
|
34
|
+
if (BoxedComponent) {
|
|
35
|
+
return (React.createElement(FlexBox, { width: sizes[size], height: sizes[size], borderRadius: 8, overflow: "hidden" },
|
|
36
|
+
React.createElement(BoxedComponent, { size: sizes[size] })));
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const Component = getIconCaseInsensitive({
|
|
41
|
+
search: maybeIconName,
|
|
42
|
+
object: providers,
|
|
43
|
+
});
|
|
44
|
+
if (Component) {
|
|
45
|
+
return React.createElement(Component, { size: sizes[size] });
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
export default ProviderIcon;
|
|
50
|
+
//# sourceMappingURL=ProviderIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderIcon.js","sourceRoot":"","sources":["../../../../src/components/asorted/Icon/ProviderIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gDAAgD,CAAC;AAC5E,OAAO,KAAK,cAAc,MAAM,qDAAqD,CAAC;AAEtF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG,EAAE,EAAE;IACP,EAAE,EAAE,EAAE;IACN,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;CACP,CAAC;AAUF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CACjC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,MAAM;SACf,OAAO,CAAC,+CAA+C,EAAE,IAAI,CAAC;SAC9D,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;SAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CACtB,CAAC;AAOF,MAAM,sBAAsB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAmB,EAAE,EAAE;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;IAC7F,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,KAAK,EAAS,EAAsB,EAAE;IACtF,MAAM,aAAa,GAAG,GAAG,IAAI,EAAE,CAAC;IAEhC,IAAI,KAAK,EAAE;QACT,MAAM,cAAc,GAAG,sBAAsB,CAAC;YAC5C,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,cAAc;SACvB,CAAsB,CAAC;QACxB,IAAI,cAAc,EAAE;YAClB,OAAO,CACL,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ;gBACnF,oBAAC,cAAc,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAI,CAC7B,CACX,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;IACD,MAAM,SAAS,GAAG,sBAAsB,CAAC;QACvC,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,SAAS;KAClB,CAAsB,CAAC;IACxB,IAAI,SAAS,EAAE;QACb,OAAO,oBAAC,SAAS,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAI,CAAC;KACzC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -2,4 +2,5 @@ export { default, iconNames } from "./Icon";
|
|
|
2
2
|
import BoxedIcon, { IconBox } from "./BoxedIcon";
|
|
3
3
|
export { BoxedIcon, IconBox };
|
|
4
4
|
export { default as CryptoIcon } from "./CryptoIcon";
|
|
5
|
+
export { default as ProviderIcon } from "./ProviderIcon";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/asorted/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/asorted/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { default as Divider } from "./Divider";
|
|
2
|
-
export { default as Icon, IconBox, BoxedIcon, CryptoIcon } from "./Icon";
|
|
2
|
+
export { default as Icon, IconBox, BoxedIcon, CryptoIcon, ProviderIcon } from "./Icon";
|
|
3
3
|
export { default as Text } from "./Text";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/asorted/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/asorted/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/react-ui",
|
|
3
|
-
"version": "0.14.8
|
|
3
|
+
"version": "0.14.8",
|
|
4
4
|
"description": "Ledger Live - Desktop UI",
|
|
5
5
|
"author": "Ledger Live Team <team-live@ledger.fr>",
|
|
6
6
|
"repository": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"react-window": "^1.8.6",
|
|
70
70
|
"styled-system": "^5.1.5",
|
|
71
71
|
"@ledgerhq/crypto-icons-ui": "^0.5.1",
|
|
72
|
-
"@ledgerhq/icons-ui": "^0.6.0
|
|
72
|
+
"@ledgerhq/icons-ui": "^0.6.0",
|
|
73
73
|
"@ledgerhq/ui-shared": "^0.2.1"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|