@ledgerhq/react-ui 0.10.2 → 0.10.3-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,13 +28,12 @@ __export(exports, {
28
28
  });
29
29
  var flags = __toModule(require("@ledgerhq/icons-ui/react/Flags/index"));
30
30
  var import_react = __toModule(require("react"));
31
+ var import_styled_components = __toModule(require("styled-components"));
32
+ var import_Flex = __toModule(require("../../layout/Flex"));
31
33
  const sizes = {
32
34
  XXS: 16,
33
- XS: 24,
34
35
  S: 32,
35
- M: 40,
36
- L: 48,
37
- XL: 56
36
+ L: 48
38
37
  };
39
38
  const iconNames = Array.from(Object.keys(flags).reduce((set, rawKey) => {
40
39
  const key = rawKey.replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, "$1").replace(/(.+)(Ultra)+$/g, "$1");
@@ -42,13 +41,35 @@ const iconNames = Array.from(Object.keys(flags).reduce((set, rawKey) => {
42
41
  set.add(key);
43
42
  return set;
44
43
  }, new Set()));
44
+ const FlagContainer = (0, import_styled_components.default)(import_Flex.default).attrs({
45
+ borderRadius: "50%",
46
+ position: "relative"
47
+ })`
48
+ &:after {
49
+ content: "";
50
+ display: block;
51
+ box-shadow: inset 0 0 10px black;
52
+ position: absolute;
53
+ top: 0;
54
+ left: 0;
55
+ width: 100%;
56
+ height: 100%;
57
+ border-radius: 100%;
58
+ opacity: 10%;
59
+ ${(p) => `box-shadow: inset 0px 0px 0px 1px ${p.theme.colors.neutral.c100};`}
60
+ }
61
+ `;
45
62
  const FlagIcon = ({ name, size = "S" }) => {
46
63
  const maybeIconName = `${name}`;
47
64
  if (maybeIconName in flags) {
48
65
  const Component = flags[maybeIconName];
49
- return /* @__PURE__ */ import_react.default.createElement(Component, {
66
+ return /* @__PURE__ */ import_react.default.createElement(FlagContainer, {
67
+ width: sizes[size],
68
+ height: sizes[size],
69
+ overflow: "hidden"
70
+ }, /* @__PURE__ */ import_react.default.createElement(Component, {
50
71
  size: sizes[size]
51
- });
72
+ }));
52
73
  }
53
74
  return null;
54
75
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/asorted/Icon/FlagIcon.tsx"],
4
- "sourcesContent": ["import * as flags from \"@ledgerhq/icons-ui/react/Flags/index\";\nimport React from \"react\";\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 FlagsSizes = keyof typeof sizes;\n\nexport type Props = {\n name: string;\n size?: FlagsSizes;\n};\n\nexport const iconNames = Array.from(\n Object.keys(flags).reduce((set, rawKey) => {\n const key = rawKey\n .replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, \"$1\")\n .replace(/(.+)(Ultra)+$/g, \"$1\");\n if (!set.has(key)) set.add(key);\n return set;\n }, new Set<string>()),\n);\n\nconst FlagIcon = ({ name, size = \"S\" }: Props): JSX.Element | null => {\n const maybeIconName = `${name}`;\n if (maybeIconName in flags) {\n // @ts-expect-error FIXME I don't know how to make you happy ts\n const Component = flags[maybeIconName];\n return <Component size={sizes[size]} />;\n }\n return null;\n};\n\nexport default FlagIcon;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,mBAAkB;AAEX,MAAM,QAAQ;AAAA,EACnB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA;AAUC,MAAM,YAAY,MAAM,KAC7B,OAAO,KAAK,OAAO,OAAO,CAAC,KAAK,WAAW;AACzC,QAAM,MAAM,OACT,QAAQ,iDAAiD,MACzD,QAAQ,kBAAkB;AAC7B,MAAI,CAAC,IAAI,IAAI;AAAM,QAAI,IAAI;AAC3B,SAAO;AAAA,GACN,IAAI;AAGT,MAAM,WAAW,CAAC,EAAE,MAAM,OAAO,UAAqC;AACpE,QAAM,gBAAgB,GAAG;AACzB,MAAI,iBAAiB,OAAO;AAE1B,UAAM,YAAY,MAAM;AACxB,WAAO,mDAAC,WAAD;AAAA,MAAW,MAAM,MAAM;AAAA;AAAA;AAEhC,SAAO;AAAA;AAGT,IAAO,mBAAQ;",
4
+ "sourcesContent": ["import * as flags from \"@ledgerhq/icons-ui/react/Flags/index\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport FlexBox from \"../../layout/Flex\";\n\nexport const sizes = {\n XXS: 16,\n S: 32,\n L: 48,\n};\n\nexport type FlagsSizes = keyof typeof sizes;\n\nexport type Props = {\n name: string;\n size?: FlagsSizes;\n};\n\nexport const iconNames = Array.from(\n Object.keys(flags).reduce((set, rawKey) => {\n const key = rawKey\n .replace(/(.+)(Regular|Light|UltraLight|Thin|Medium)+$/g, \"$1\")\n .replace(/(.+)(Ultra)+$/g, \"$1\");\n if (!set.has(key)) set.add(key);\n return set;\n }, new Set<string>()),\n);\n\nconst FlagContainer = styled(FlexBox).attrs({\n borderRadius: \"50%\",\n position: \"relative\",\n})`\n &:after {\n content: \"\";\n display: block;\n box-shadow: inset 0 0 10px black;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 100%;\n opacity: 10%;\n ${(p) => `box-shadow: inset 0px 0px 0px 1px ${p.theme.colors.neutral.c100};`}\n }\n`;\n\nconst FlagIcon = ({ name, size = \"S\" }: Props): JSX.Element | null => {\n const maybeIconName = `${name}`;\n\n if (maybeIconName in flags) {\n // @ts-expect-error FIXME I don't know how to make you happy ts\n const Component = flags[maybeIconName];\n return (\n <FlagContainer width={sizes[size]} height={sizes[size]} overflow={\"hidden\"}>\n <Component size={sizes[size]} />\n </FlagContainer>\n );\n }\n return null;\n};\n\nexport default FlagIcon;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,mBAAkB;AAClB,+BAAmB;AACnB,kBAAoB;AAEb,MAAM,QAAQ;AAAA,EACnB,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA;AAUE,MAAM,YAAY,MAAM,KAC7B,OAAO,KAAK,OAAO,OAAO,CAAC,KAAK,WAAW;AACzC,QAAM,MAAM,OACT,QAAQ,iDAAiD,MACzD,QAAQ,kBAAkB;AAC7B,MAAI,CAAC,IAAI,IAAI;AAAM,QAAI,IAAI;AAC3B,SAAO;AAAA,GACN,IAAI;AAGT,MAAM,gBAAgB,sCAAO,qBAAS,MAAM;AAAA,EAC1C,cAAc;AAAA,EACd,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaN,CAAC,MAAM,qCAAqC,EAAE,MAAM,OAAO,QAAQ;AAAA;AAAA;AAIzE,MAAM,WAAW,CAAC,EAAE,MAAM,OAAO,UAAqC;AACpE,QAAM,gBAAgB,GAAG;AAEzB,MAAI,iBAAiB,OAAO;AAE1B,UAAM,YAAY,MAAM;AACxB,WACE,mDAAC,eAAD;AAAA,MAAe,OAAO,MAAM;AAAA,MAAO,QAAQ,MAAM;AAAA,MAAO,UAAU;AAAA,OAChE,mDAAC,WAAD;AAAA,MAAW,MAAM,MAAM;AAAA;AAAA;AAI7B,SAAO;AAAA;AAGT,IAAO,mBAAQ;",
6
6
  "names": []
7
7
  }
@@ -56,14 +56,17 @@ const ProviderIcon = ({ name, size = "S", boxed = false }) => {
56
56
  search: maybeIconName,
57
57
  object: providersBoxed
58
58
  });
59
- return /* @__PURE__ */ import_react.default.createElement(import_Flex.default, {
60
- width: sizes[size],
61
- height: sizes[size],
62
- borderRadius: 8,
63
- overflow: "hidden"
64
- }, /* @__PURE__ */ import_react.default.createElement(BoxedComponent, {
65
- size: sizes[size]
66
- }));
59
+ if (BoxedComponent) {
60
+ return /* @__PURE__ */ import_react.default.createElement(import_Flex.default, {
61
+ width: sizes[size],
62
+ height: sizes[size],
63
+ borderRadius: 8,
64
+ overflow: "hidden"
65
+ }, /* @__PURE__ */ import_react.default.createElement(BoxedComponent, {
66
+ size: sizes[size]
67
+ }));
68
+ }
69
+ return null;
67
70
  }
68
71
  const Component = getIconCaseInsensitive({
69
72
  search: maybeIconName,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/asorted/Icon/ProviderIcon.tsx"],
4
- "sourcesContent": ["import * as providers from \"@ledgerhq/icons-ui/react/Providers/index\";\nimport * as providersBoxed from \"@ledgerhq/icons-ui/react/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 return (\n <FlexBox width={sizes[size]} height={sizes[size]} borderRadius={8} overflow={\"hidden\"}>\n <BoxedComponent size={sizes[size]} />\n </FlexBox>\n );\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,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;AAAA;AAWC,MAAM,YAAY,MAAM,KAC7B,OAAO,KAAK,WAAW,OAAO,CAAC,KAAK,WAAW;AAC7C,QAAM,MAAM,OACT,QAAQ,iDAAiD,MACzD,QAAQ,kBAAkB,MAC1B,QAAQ,MAAM;AACjB,MAAI,CAAC,IAAI,IAAI;AAAM,QAAI,IAAI;AAC3B,SAAO;AAAA,GACN,IAAI;AAQT,MAAM,yBAAyB,CAAC,EAAE,QAAQ,aAA8B;AACtE,QAAM,UAAU,OAAO;AACvB,QAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,CAAC,SAAQ,KAAI,cAAc,QAAQ,MAAM,QAAQ;AACtF,SAAO,MAAM,OAAO,OAAO;AAAA;AAG7B,MAAM,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK,QAAQ,YAAuC;AACvF,QAAM,gBAAgB,GAAG;AAEzB,MAAI,OAAO;AACT,UAAM,iBAAiB,uBAAuB;AAAA,MAC5C,QAAQ;AAAA,MACR,QAAQ;AAAA;AAEV,WACE,mDAAC,qBAAD;AAAA,MAAS,OAAO,MAAM;AAAA,MAAO,QAAQ,MAAM;AAAA,MAAO,cAAc;AAAA,MAAG,UAAU;AAAA,OAC3E,mDAAC,gBAAD;AAAA,MAAgB,MAAM,MAAM;AAAA;AAAA;AAIlC,QAAM,YAAY,uBAAuB;AAAA,IACvC,QAAQ;AAAA,IACR,QAAQ;AAAA;AAEV,MAAI,WAAW;AACb,WAAO,mDAAC,WAAD;AAAA,MAAW,MAAM,MAAM;AAAA;AAAA;AAEhC,SAAO;AAAA;AAGT,IAAO,uBAAQ;",
4
+ "sourcesContent": ["import * as providers from \"@ledgerhq/icons-ui/react/Providers/index\";\nimport * as providersBoxed from \"@ledgerhq/icons-ui/react/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,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;AAAA;AAWC,MAAM,YAAY,MAAM,KAC7B,OAAO,KAAK,WAAW,OAAO,CAAC,KAAK,WAAW;AAC7C,QAAM,MAAM,OACT,QAAQ,iDAAiD,MACzD,QAAQ,kBAAkB,MAC1B,QAAQ,MAAM;AACjB,MAAI,CAAC,IAAI,IAAI;AAAM,QAAI,IAAI;AAC3B,SAAO;AAAA,GACN,IAAI;AAQT,MAAM,yBAAyB,CAAC,EAAE,QAAQ,aAA8B;AACtE,QAAM,UAAU,OAAO;AACvB,QAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,CAAC,SAAQ,KAAI,cAAc,QAAQ,MAAM,QAAQ;AACtF,SAAO,MAAM,OAAO,OAAO;AAAA;AAG7B,MAAM,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK,QAAQ,YAAuC;AACvF,QAAM,gBAAgB,GAAG;AAEzB,MAAI,OAAO;AACT,UAAM,iBAAiB,uBAAuB;AAAA,MAC5C,QAAQ;AAAA,MACR,QAAQ;AAAA;AAEV,QAAI,gBAAgB;AAClB,aACE,mDAAC,qBAAD;AAAA,QAAS,OAAO,MAAM;AAAA,QAAO,QAAQ,MAAM;AAAA,QAAO,cAAc;AAAA,QAAG,UAAU;AAAA,SAC3E,mDAAC,gBAAD;AAAA,QAAgB,MAAM,MAAM;AAAA;AAAA;AAIlC,WAAO;AAAA;AAET,QAAM,YAAY,uBAAuB;AAAA,IACvC,QAAQ;AAAA,IACR,QAAQ;AAAA;AAEV,MAAI,WAAW;AACb,WAAO,mDAAC,WAAD;AAAA,MAAW,MAAM,MAAM;AAAA;AAAA;AAEhC,SAAO;AAAA;AAGT,IAAO,uBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  export declare const sizes: {
3
3
  XXS: number;
4
- XS: number;
5
4
  S: number;
6
- M: number;
7
5
  L: number;
8
- XL: number;
9
6
  };
10
7
  export type FlagsSizes = keyof typeof sizes;
11
8
  export type Props = {
@@ -1,12 +1,11 @@
1
1
  import * as flags from "@ledgerhq/icons-ui/react/Flags/index";
2
2
  import React from "react";
3
+ import styled from "styled-components";
4
+ import FlexBox from "../../layout/Flex";
3
5
  export const sizes = {
4
6
  XXS: 16,
5
- XS: 24,
6
7
  S: 32,
7
- M: 40,
8
8
  L: 48,
9
- XL: 56,
10
9
  };
11
10
  export const iconNames = Array.from(Object.keys(flags).reduce((set, rawKey) => {
12
11
  const key = rawKey
@@ -16,12 +15,31 @@ export const iconNames = Array.from(Object.keys(flags).reduce((set, rawKey) => {
16
15
  set.add(key);
17
16
  return set;
18
17
  }, new Set()));
18
+ const FlagContainer = styled(FlexBox).attrs({
19
+ borderRadius: "50%",
20
+ position: "relative",
21
+ }) `
22
+ &:after {
23
+ content: "";
24
+ display: block;
25
+ box-shadow: inset 0 0 10px black;
26
+ position: absolute;
27
+ top: 0;
28
+ left: 0;
29
+ width: 100%;
30
+ height: 100%;
31
+ border-radius: 100%;
32
+ opacity: 10%;
33
+ ${(p) => `box-shadow: inset 0px 0px 0px 1px ${p.theme.colors.neutral.c100};`}
34
+ }
35
+ `;
19
36
  const FlagIcon = ({ name, size = "S" }) => {
20
37
  const maybeIconName = `${name}`;
21
38
  if (maybeIconName in flags) {
22
39
  // @ts-expect-error FIXME I don't know how to make you happy ts
23
40
  const Component = flags[maybeIconName];
24
- return React.createElement(Component, { size: sizes[size] });
41
+ return (React.createElement(FlagContainer, { width: sizes[size], height: sizes[size], overflow: "hidden" },
42
+ React.createElement(Component, { size: sizes[size] })));
25
43
  }
26
44
  return null;
27
45
  };
@@ -31,8 +31,11 @@ const ProviderIcon = ({ name, size = "S", boxed = false }) => {
31
31
  search: maybeIconName,
32
32
  object: providersBoxed,
33
33
  });
34
- return (React.createElement(FlexBox, { width: sizes[size], height: sizes[size], borderRadius: 8, overflow: "hidden" },
35
- React.createElement(BoxedComponent, { size: sizes[size] })));
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;
36
39
  }
37
40
  const Component = getIconCaseInsensitive({
38
41
  search: maybeIconName,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/react-ui",
3
- "version": "0.10.2",
3
+ "version": "0.10.3-next.0",
4
4
  "description": "Ledger Live - Desktop UI",
5
5
  "author": "Ledger Live Team <team-live@ledger.fr>",
6
6
  "repository": {
@@ -76,7 +76,7 @@
76
76
  "react-window": "^1.8.6",
77
77
  "styled-system": "^5.1.5",
78
78
  "@ledgerhq/crypto-icons-ui": "^0.2.1",
79
- "@ledgerhq/icons-ui": "^0.3.2",
79
+ "@ledgerhq/icons-ui": "^0.3.3-next.0",
80
80
  "@ledgerhq/ui-shared": "^0.1.10"
81
81
  },
82
82
  "peerDependencies": {