@ledgerhq/native-ui 0.45.0-nightly.2 → 0.46.0-nightly.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.
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export declare const MarketPercentIndicator: ({ percent }: {
3
+ percent: number;
4
+ }) => React.JSX.Element;
5
+ //# sourceMappingURL=MarketPercentIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketPercentIndicator.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,eAAO,MAAM,sBAAsB;aAA4B,MAAM;uBA6BpE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+ import { Flex, Text } from "../../../components";
3
+ import { useTokens } from "../../libs";
4
+ import { useTheme } from "styled-components/native";
5
+ const getPercentageDisplay = (percent, tokens) => {
6
+ if (percent > 0) {
7
+ return {
8
+ backgroundColor: String(tokens["colors-surface-status-success-default"]),
9
+ color: String(tokens["colors-surface-status-success-strong-default"]),
10
+ text: `+${percent}%`,
11
+ };
12
+ }
13
+ if (percent < 0) {
14
+ return {
15
+ backgroundColor: String(tokens["colors-surface-status-error-default"]),
16
+ color: String(tokens["colors-surface-status-error-strong-default"]),
17
+ text: `-${Math.abs(percent)}%`,
18
+ };
19
+ }
20
+ return {
21
+ backgroundColor: String(tokens["colors-surface-transparent-hover"]),
22
+ color: String(tokens["colors-content-default-default"]),
23
+ text: `${percent}%`,
24
+ };
25
+ };
26
+ export const MarketPercentIndicator = ({ percent }) => {
27
+ const { theme } = useTheme();
28
+ const colorType = theme;
29
+ const tokens = useTokens(colorType, [
30
+ "colors-surface-status-success-default",
31
+ "colors-surface-status-success-strong-default",
32
+ "colors-surface-status-error-default",
33
+ "colors-surface-status-error-strong-default",
34
+ "colors-surface-transparent-hover",
35
+ "colors-content-default-default",
36
+ ]);
37
+ const percentageDisplay = getPercentageDisplay(percent, tokens);
38
+ return (React.createElement(Flex, { "data-testid": "market-percent-indicator", flexDirection: "column", alignItems: "flex-end", width: "fit-content", p: "4px", borderRadius: "4px", backgroundColor: percentageDisplay.backgroundColor },
39
+ React.createElement(Text, { color: percentageDisplay.color, fontSize: "12px" }, percentageDisplay.text)));
40
+ };
@@ -0,0 +1,10 @@
1
+ import { type Meta, type StoryObj } from "@storybook/react";
2
+ import { MarketPercentIndicator } from "./MarketPercentIndicator";
3
+ declare const meta: Meta<typeof MarketPercentIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof MarketPercentIndicator>;
6
+ export declare const Positive: Story;
7
+ export declare const Negative: Story;
8
+ export declare const Zero: Story;
9
+ export declare const TestMarketPercentIndicator: Story;
10
+ //# sourceMappingURL=MarketPercentIndicator.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketPercentIndicator.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,sBAAsB,CAK7C,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErD,eAAO,MAAM,QAAQ,EAAE,KAAiC,CAAC;AACzD,eAAO,MAAM,QAAQ,EAAE,KAAkC,CAAC;AAC1D,eAAO,MAAM,IAAI,EAAE,KAAgC,CAAC;AAEpD,eAAO,MAAM,0BAA0B,EAAE,KAMxC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { MarketPercentIndicator } from "./MarketPercentIndicator";
2
+ import { expect } from "@storybook/jest";
3
+ import { within } from "@storybook/testing-library";
4
+ const meta = {
5
+ component: MarketPercentIndicator,
6
+ title: "PreLdls/Components/MarketPercentIndicator",
7
+ tags: ["autodocs"],
8
+ args: { percent: 30 },
9
+ };
10
+ export default meta;
11
+ export const Positive = { args: { percent: 30 } };
12
+ export const Negative = { args: { percent: -30 } };
13
+ export const Zero = { args: { percent: 0 } };
14
+ export const TestMarketPercentIndicator = {
15
+ play: async ({ canvasElement }) => {
16
+ const canvas = within(canvasElement);
17
+ const input = canvas.getByTestId("market-percent-indicator");
18
+ await expect(input).toHaveTextContent("+30%");
19
+ },
20
+ };
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare const MarketPriceIndicator: ({ percent, price }: {
3
+ percent: number;
4
+ price: string;
5
+ }) => React.JSX.Element;
6
+ //# sourceMappingURL=MarketPriceIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketPriceIndicator.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAwB1B,eAAO,MAAM,oBAAoB;aAAmC,MAAM;WAAS,MAAM;uBA0BxF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { useTokens } from "../../libs";
3
+ import { useTheme } from "styled-components/native";
4
+ import { Flex, Text } from "../../../components";
5
+ const getPercentageDisplay = (percent, tokens) => {
6
+ if (percent > 0) {
7
+ return {
8
+ color: String(tokens["colors-surface-status-success-strong-default"]),
9
+ text: `+${percent}%`,
10
+ };
11
+ }
12
+ if (percent < 0) {
13
+ return {
14
+ color: String(tokens["colors-surface-status-error-strong-default"]),
15
+ text: `-${Math.abs(percent)}%`,
16
+ };
17
+ }
18
+ return {
19
+ color: String(tokens["colors-content-default-default"]),
20
+ text: `${percent}%`,
21
+ };
22
+ };
23
+ export const MarketPriceIndicator = ({ percent, price }) => {
24
+ const { theme } = useTheme();
25
+ const colorType = theme;
26
+ const tokens = useTokens(colorType, [
27
+ "colors-surface-status-success-strong-default",
28
+ "colors-surface-status-error-strong-default",
29
+ "colors-content-default-default",
30
+ ]);
31
+ const percentageDisplay = getPercentageDisplay(percent, tokens);
32
+ return (React.createElement(Flex, { "data-testid": "market-price-indicator", flexDirection: "column", alignItems: "flex-end", width: "fit-content" },
33
+ React.createElement(Text, { variant: "body", fontWeight: "semiBold", mb: "4px" }, price),
34
+ React.createElement(Text, { color: percentageDisplay.color, fontSize: "12px" }, percentageDisplay.text)));
35
+ };
@@ -0,0 +1,10 @@
1
+ import { type Meta, type StoryObj } from "@storybook/react";
2
+ import { MarketPriceIndicator } from "./MarketPriceIndicator";
3
+ declare const meta: Meta<typeof MarketPriceIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof MarketPriceIndicator>;
6
+ export declare const Positive: Story;
7
+ export declare const Negative: Story;
8
+ export declare const Zero: Story;
9
+ export declare const TestMarketPriceIndicator: Story;
10
+ //# sourceMappingURL=MarketPriceIndicator.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketPriceIndicator.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,oBAAoB,CAK3C,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnD,eAAO,MAAM,QAAQ,EAAE,KAAuD,CAAC;AAC/E,eAAO,MAAM,QAAQ,EAAE,KAAwD,CAAC;AAChF,eAAO,MAAM,IAAI,EAAE,KAAsD,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,KAMtC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { MarketPriceIndicator } from "./MarketPriceIndicator";
2
+ import { expect } from "@storybook/jest";
3
+ import { within } from "@storybook/testing-library";
4
+ const meta = {
5
+ component: MarketPriceIndicator,
6
+ title: "PreLdls/Components/MarketPriceIndicator",
7
+ tags: ["autodocs"],
8
+ args: { percent: 30, price: "$100,000.00" },
9
+ };
10
+ export default meta;
11
+ export const Positive = { args: { percent: 30, price: "$100,000.00" } };
12
+ export const Negative = { args: { percent: -30, price: "$100,000.00" } };
13
+ export const Zero = { args: { percent: 0, price: "$100,000.00" } };
14
+ export const TestMarketPriceIndicator = {
15
+ play: async ({ canvasElement }) => {
16
+ const canvas = within(canvasElement);
17
+ const input = canvas.getByTestId("market-price-indicator");
18
+ await expect(input).toHaveTextContent("$100,000.00");
19
+ },
20
+ };
@@ -2,6 +2,8 @@ export * from "./Input/Input";
2
2
  export * from "./AssetItem/AssetItem";
3
3
  export * from "./AssetTypeList/AssetList";
4
4
  export * from "./ApyIndicator/ApyIndicator";
5
+ export * from "./MarketPriceIndicator/MarketPriceIndicator";
6
+ export * from "./MarketPercentIndicator/MarketPercentIndicator";
5
7
  export * from "./NetworkItem/NetworkItem";
6
8
  export * from "./NetworkList/NetworkList";
7
9
  export * from "./Tag/Tag";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pre-ldls/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pre-ldls/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC"}
@@ -2,6 +2,8 @@ export * from "./Input/Input";
2
2
  export * from "./AssetItem/AssetItem";
3
3
  export * from "./AssetTypeList/AssetList";
4
4
  export * from "./ApyIndicator/ApyIndicator";
5
+ export * from "./MarketPriceIndicator/MarketPriceIndicator";
6
+ export * from "./MarketPercentIndicator/MarketPercentIndicator";
5
7
  export * from "./NetworkItem/NetworkItem";
6
8
  export * from "./NetworkList/NetworkList";
7
9
  export * from "./Tag/Tag";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/native-ui",
3
- "version": "0.45.0-nightly.2",
3
+ "version": "0.46.0-nightly.0",
4
4
  "description": "Ledger Live - Mobile UI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,8 +41,8 @@
41
41
  "rn-range-slider": "2.1.1",
42
42
  "styled-system": "^5.1.5",
43
43
  "@ledgerhq/crypto-icons-ui": "^1.19.0-nightly.1",
44
- "@ledgerhq/icons-ui": "^0.13.0",
45
- "@ledgerhq/ui-shared": "^0.4.0-nightly.0"
44
+ "@ledgerhq/icons-ui": "^0.14.0-nightly.0",
45
+ "@ledgerhq/ui-shared": "^0.4.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "react": ">=17",