@ledgerhq/lumen-ui-rnative 0.1.24 → 0.1.25
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/dist/module/lib/Components/DotIcon/DotIcon.js +134 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.js.map +1 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.mdx +56 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.stories.js +217 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.stories.js.map +1 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.test.js +238 -0
- package/dist/module/lib/Components/DotIcon/DotIcon.test.js.map +1 -0
- package/dist/module/lib/Components/DotIcon/index.js +5 -0
- package/dist/module/lib/Components/DotIcon/index.js.map +1 -0
- package/dist/module/lib/Components/DotIcon/types.js +4 -0
- package/dist/module/lib/Components/DotIcon/types.js.map +1 -0
- package/dist/module/lib/Components/DotSymbol/DotSymbol.js +29 -22
- package/dist/module/lib/Components/DotSymbol/DotSymbol.js.map +1 -1
- package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js +31 -9
- package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js.map +1 -1
- package/dist/module/lib/Components/MediaImage/MediaImage.js +2 -1
- package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
- package/dist/module/lib/Components/MediaImage/MediaImage.stories.js +4 -0
- package/dist/module/lib/Components/MediaImage/MediaImage.stories.js.map +1 -1
- package/dist/module/lib/Components/Spinner/Spinner.js +6 -1
- package/dist/module/lib/Components/Spinner/Spinner.js.map +1 -1
- package/dist/module/lib/Components/Tag/Tag.js +2 -0
- package/dist/module/lib/Components/Tag/Tag.js.map +1 -1
- package/dist/module/lib/Components/Tag/Tag.stories.js +8 -1
- package/dist/module/lib/Components/Tag/Tag.stories.js.map +1 -1
- package/dist/module/lib/Components/index.js +1 -0
- package/dist/module/lib/Components/index.js.map +1 -1
- package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts +30 -0
- package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/DotIcon/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/DotIcon/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/DotIcon/types.d.ts +40 -0
- package/dist/typescript/src/lib/Components/DotIcon/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/MediaImage/types.d.ts +1 -1
- package/dist/typescript/src/lib/Components/MediaImage/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Tag/Tag.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Tag/types.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Tag/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/index.d.ts +1 -0
- package/dist/typescript/src/lib/Components/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lib/Components/DotIcon/DotIcon.mdx +56 -0
- package/src/lib/Components/DotIcon/DotIcon.stories.tsx +154 -0
- package/src/lib/Components/DotIcon/DotIcon.test.tsx +224 -0
- package/src/lib/Components/DotIcon/DotIcon.tsx +146 -0
- package/src/lib/Components/DotIcon/index.ts +6 -0
- package/src/lib/Components/DotIcon/types.ts +44 -0
- package/src/lib/Components/DotSymbol/DotSymbol.stories.tsx +26 -7
- package/src/lib/Components/DotSymbol/DotSymbol.tsx +22 -23
- package/src/lib/Components/MediaImage/MediaImage.stories.tsx +1 -0
- package/src/lib/Components/MediaImage/MediaImage.tsx +3 -1
- package/src/lib/Components/MediaImage/types.ts +1 -1
- package/src/lib/Components/Spinner/Spinner.tsx +6 -2
- package/src/lib/Components/Tag/Tag.stories.tsx +11 -1
- package/src/lib/Components/Tag/Tag.tsx +2 -0
- package/src/lib/Components/Tag/types.ts +8 -1
- package/src/lib/Components/index.ts +1 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { useStyleSheet } from "../../../styles/index.js";
|
|
5
|
+
import { Box } from "../Utility/index.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const dotIconSizeMap = {
|
|
8
|
+
16: 12,
|
|
9
|
+
20: 12,
|
|
10
|
+
24: 16
|
|
11
|
+
};
|
|
12
|
+
const dotSquareRadiusMap = {
|
|
13
|
+
16: 5,
|
|
14
|
+
20: 6,
|
|
15
|
+
24: 8
|
|
16
|
+
};
|
|
17
|
+
export const mediaImageDotIconSizeMap = {
|
|
18
|
+
40: 16,
|
|
19
|
+
48: 20,
|
|
20
|
+
56: 24,
|
|
21
|
+
64: 24
|
|
22
|
+
};
|
|
23
|
+
export const spotDotIconSizeMap = {
|
|
24
|
+
40: 16,
|
|
25
|
+
48: 20,
|
|
26
|
+
56: 24,
|
|
27
|
+
72: 24
|
|
28
|
+
};
|
|
29
|
+
const pinAxisMap = {
|
|
30
|
+
'top-start': ['top', 'left'],
|
|
31
|
+
'top-end': ['top', 'right'],
|
|
32
|
+
'bottom-start': ['bottom', 'left'],
|
|
33
|
+
'bottom-end': ['bottom', 'right']
|
|
34
|
+
};
|
|
35
|
+
const DOT_OFFSET = -3;
|
|
36
|
+
const getPinOffset = pin => {
|
|
37
|
+
const [v, h] = pinAxisMap[pin];
|
|
38
|
+
return {
|
|
39
|
+
[v]: DOT_OFFSET,
|
|
40
|
+
[h]: DOT_OFFSET
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const appearanceBgMap = {
|
|
44
|
+
success: 'successStrong',
|
|
45
|
+
muted: 'mutedStrong',
|
|
46
|
+
error: 'errorStrong'
|
|
47
|
+
};
|
|
48
|
+
const useStyles = ({
|
|
49
|
+
size,
|
|
50
|
+
shape,
|
|
51
|
+
pin,
|
|
52
|
+
appearance
|
|
53
|
+
}) => {
|
|
54
|
+
return useStyleSheet(t => {
|
|
55
|
+
const sizeValue = t.sizes[`s${size}`];
|
|
56
|
+
const radius = shape === 'circle' ? t.borderRadius.full : dotSquareRadiusMap[size];
|
|
57
|
+
const pinOffset = getPinOffset(pin);
|
|
58
|
+
return {
|
|
59
|
+
dot: {
|
|
60
|
+
position: 'absolute',
|
|
61
|
+
zIndex: 10,
|
|
62
|
+
width: sizeValue,
|
|
63
|
+
height: sizeValue,
|
|
64
|
+
borderRadius: radius,
|
|
65
|
+
borderWidth: 1,
|
|
66
|
+
backgroundColor: t.colors.bg[appearanceBgMap[appearance]],
|
|
67
|
+
borderColor: t.colors.border.baseInverted,
|
|
68
|
+
overflow: 'hidden',
|
|
69
|
+
alignItems: 'center',
|
|
70
|
+
justifyContent: 'center',
|
|
71
|
+
...pinOffset
|
|
72
|
+
},
|
|
73
|
+
icon: {
|
|
74
|
+
color: t.colors.text.onInteractive
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}, [size, shape, pin, appearance]);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* A wrapper component that positions a small icon indicator at a configurable
|
|
82
|
+
* corner of a child element like MediaImage or Spot. The dot background uses a
|
|
83
|
+
* semantic color (`success`, `muted`, or `error`).
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* import { DotIcon } from '@ledgerhq/lumen-ui-rnative';
|
|
87
|
+
*
|
|
88
|
+
* <DotIcon appearance="success" icon={ArrowDown} pin="bottom-end">
|
|
89
|
+
* <MediaImage src="https://example.com/usdc.png" alt="USDC" size={48} />
|
|
90
|
+
* </DotIcon>
|
|
91
|
+
*/
|
|
92
|
+
export const DotIcon = ({
|
|
93
|
+
children,
|
|
94
|
+
icon: Icon,
|
|
95
|
+
appearance,
|
|
96
|
+
pin = 'bottom-end',
|
|
97
|
+
size = 20,
|
|
98
|
+
shape = 'circle',
|
|
99
|
+
lx = {},
|
|
100
|
+
style,
|
|
101
|
+
ref,
|
|
102
|
+
...rest
|
|
103
|
+
}) => {
|
|
104
|
+
const styles = useStyles({
|
|
105
|
+
size,
|
|
106
|
+
shape,
|
|
107
|
+
pin,
|
|
108
|
+
appearance
|
|
109
|
+
});
|
|
110
|
+
return /*#__PURE__*/_jsx(Box, {
|
|
111
|
+
ref: ref,
|
|
112
|
+
lx: lx,
|
|
113
|
+
style: StyleSheet.flatten([{
|
|
114
|
+
position: 'relative'
|
|
115
|
+
}, style]),
|
|
116
|
+
...rest,
|
|
117
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
118
|
+
style: {
|
|
119
|
+
alignSelf: 'flex-start',
|
|
120
|
+
position: 'relative'
|
|
121
|
+
},
|
|
122
|
+
children: [children, /*#__PURE__*/_jsx(Box, {
|
|
123
|
+
testID: "dot-icon-dot",
|
|
124
|
+
style: styles.dot,
|
|
125
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
126
|
+
size: dotIconSizeMap[size],
|
|
127
|
+
style: styles.icon
|
|
128
|
+
})
|
|
129
|
+
})]
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
DotIcon.displayName = 'DotIcon';
|
|
134
|
+
//# sourceMappingURL=DotIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","useStyleSheet","Box","jsx","_jsx","jsxs","_jsxs","dotIconSizeMap","dotSquareRadiusMap","mediaImageDotIconSizeMap","spotDotIconSizeMap","pinAxisMap","DOT_OFFSET","getPinOffset","pin","v","h","appearanceBgMap","success","muted","error","useStyles","size","shape","appearance","t","sizeValue","sizes","radius","borderRadius","full","pinOffset","dot","position","zIndex","width","height","borderWidth","backgroundColor","colors","bg","borderColor","border","baseInverted","overflow","alignItems","justifyContent","icon","color","text","onInteractive","DotIcon","children","Icon","lx","style","ref","rest","styles","flatten","alignSelf","testID","displayName"],"sourceRoot":"../../../../../src","sources":["lib/Components/DotIcon/DotIcon.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Meta, Canvas, Controls } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import * as DotIconStories from './DotIcon.stories';
|
|
3
|
+
|
|
4
|
+
<Meta title='Communication/DotIcon' of={DotIconStories} />
|
|
5
|
+
|
|
6
|
+
# DotIcon
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
DotIcon positions a small icon indicator at a configurable corner of a child element such as MediaImage or Spot. The dot background uses a semantic color (`success`, `muted`, or `error`) to convey meaning at a glance.
|
|
11
|
+
> View in [Figma](https://www.figma.com/design/zSkvGGiqcnhywp2l3HTHxA/1.-Symbol-Library?node-id=6159-1866).
|
|
12
|
+
|
|
13
|
+
## Anatomy
|
|
14
|
+
|
|
15
|
+
<Canvas of={DotIconStories.Base} />
|
|
16
|
+
|
|
17
|
+
- **Wrapper**: Relative container that preserves the child's layout
|
|
18
|
+
- **Child**: The primary element (e.g. MediaImage, Spot)
|
|
19
|
+
- **Dot**: Absolutely-positioned indicator with a semantic background and an icon inside
|
|
20
|
+
|
|
21
|
+
## Properties
|
|
22
|
+
|
|
23
|
+
### Overview
|
|
24
|
+
|
|
25
|
+
<Canvas of={DotIconStories.Base} />
|
|
26
|
+
<Controls of={DotIconStories.Base} />
|
|
27
|
+
|
|
28
|
+
### Pin
|
|
29
|
+
|
|
30
|
+
Four corner placements are available: `bottom-end` (default), `top-end`, `bottom-start`, and `top-start`.
|
|
31
|
+
|
|
32
|
+
<Canvas of={DotIconStories.PinShowcase} />
|
|
33
|
+
|
|
34
|
+
### Shapes
|
|
35
|
+
|
|
36
|
+
<Canvas of={DotIconStories.ShapeShowcase} />
|
|
37
|
+
|
|
38
|
+
- **circle** (default): Fully rounded dot
|
|
39
|
+
- **square**: Rounded corners that scale with size
|
|
40
|
+
|
|
41
|
+
### Appearances
|
|
42
|
+
|
|
43
|
+
The `appearance` prop controls the semantic background color of the dot: `success`, `muted`, or `error`.
|
|
44
|
+
|
|
45
|
+
<Canvas of={DotIconStories.AppearanceShowcase} />
|
|
46
|
+
|
|
47
|
+
### Sizes
|
|
48
|
+
|
|
49
|
+
The dot size is driven by the parent MediaImage or Spot size via the mapping helpers `mediaImageDotIconSizeMap` and `spotDotIconSizeMap`. Allowed sizes are `16`, `20`, and `24`. The icon size is handled internally by the component.
|
|
50
|
+
|
|
51
|
+
<Canvas of={DotIconStories.SizeShowcase} />
|
|
52
|
+
|
|
53
|
+
## Accessibility
|
|
54
|
+
|
|
55
|
+
- The icon is purely decorative; the child element should carry its own accessibility label.
|
|
56
|
+
- Pair semantic appearances with meaningful icons so the state can be understood without relying on color alone.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { ArrowDown, ArrowUp, Close, Link, Star } from "../../Symbols/index.js";
|
|
4
|
+
import { MediaImage } from "../MediaImage/index.js";
|
|
5
|
+
import { Spinner } from "../Spinner/index.js";
|
|
6
|
+
import { Box } from "../Utility/index.js";
|
|
7
|
+
import { DotIcon, mediaImageDotIconSizeMap } from "./DotIcon.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const meta = {
|
|
10
|
+
component: DotIcon,
|
|
11
|
+
title: 'Communication/DotIcon',
|
|
12
|
+
parameters: {
|
|
13
|
+
docs: {
|
|
14
|
+
source: {
|
|
15
|
+
language: 'tsx',
|
|
16
|
+
format: true,
|
|
17
|
+
type: 'code'
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
const parentSrc = 'https://crypto-icons.ledger.com/ADA.png';
|
|
24
|
+
export const Base = {
|
|
25
|
+
args: {
|
|
26
|
+
appearance: 'success',
|
|
27
|
+
icon: ArrowDown,
|
|
28
|
+
pin: 'bottom-end',
|
|
29
|
+
size: mediaImageDotIconSizeMap[48],
|
|
30
|
+
shape: 'circle',
|
|
31
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
32
|
+
src: parentSrc,
|
|
33
|
+
alt: "Cardano",
|
|
34
|
+
size: 48,
|
|
35
|
+
shape: "circle"
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const PinShowcase = {
|
|
40
|
+
args: {
|
|
41
|
+
appearance: 'success',
|
|
42
|
+
icon: ArrowDown
|
|
43
|
+
},
|
|
44
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
45
|
+
lx: {
|
|
46
|
+
flexDirection: 'row',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
gap: 's32'
|
|
49
|
+
},
|
|
50
|
+
children: [/*#__PURE__*/_jsx(DotIcon, {
|
|
51
|
+
appearance: "success",
|
|
52
|
+
icon: ArrowDown,
|
|
53
|
+
pin: "bottom-end",
|
|
54
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
55
|
+
src: parentSrc,
|
|
56
|
+
shape: "circle"
|
|
57
|
+
})
|
|
58
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
59
|
+
appearance: "success",
|
|
60
|
+
icon: ArrowDown,
|
|
61
|
+
pin: "top-end",
|
|
62
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
63
|
+
src: parentSrc,
|
|
64
|
+
shape: "circle"
|
|
65
|
+
})
|
|
66
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
67
|
+
appearance: "success",
|
|
68
|
+
icon: ArrowDown,
|
|
69
|
+
pin: "bottom-start",
|
|
70
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
71
|
+
src: parentSrc,
|
|
72
|
+
shape: "circle"
|
|
73
|
+
})
|
|
74
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
75
|
+
appearance: "success",
|
|
76
|
+
icon: ArrowDown,
|
|
77
|
+
pin: "top-start",
|
|
78
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
79
|
+
src: parentSrc,
|
|
80
|
+
shape: "circle"
|
|
81
|
+
})
|
|
82
|
+
})]
|
|
83
|
+
})
|
|
84
|
+
};
|
|
85
|
+
export const ShapeShowcase = {
|
|
86
|
+
args: {
|
|
87
|
+
appearance: 'muted',
|
|
88
|
+
icon: ArrowDown
|
|
89
|
+
},
|
|
90
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
91
|
+
lx: {
|
|
92
|
+
flexDirection: 'row',
|
|
93
|
+
alignItems: 'center',
|
|
94
|
+
gap: 's48'
|
|
95
|
+
},
|
|
96
|
+
children: [/*#__PURE__*/_jsx(DotIcon, {
|
|
97
|
+
appearance: "muted",
|
|
98
|
+
icon: ArrowDown,
|
|
99
|
+
shape: "circle",
|
|
100
|
+
pin: "bottom-end",
|
|
101
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
102
|
+
src: parentSrc,
|
|
103
|
+
size: 48,
|
|
104
|
+
shape: "circle"
|
|
105
|
+
})
|
|
106
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
107
|
+
appearance: "muted",
|
|
108
|
+
icon: ArrowDown,
|
|
109
|
+
shape: "square",
|
|
110
|
+
pin: "bottom-end",
|
|
111
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
112
|
+
src: parentSrc,
|
|
113
|
+
size: 48,
|
|
114
|
+
shape: "square"
|
|
115
|
+
})
|
|
116
|
+
})]
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
export const AppearanceShowcase = {
|
|
120
|
+
args: {
|
|
121
|
+
appearance: 'success',
|
|
122
|
+
icon: ArrowDown
|
|
123
|
+
},
|
|
124
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
125
|
+
lx: {
|
|
126
|
+
flexDirection: 'row',
|
|
127
|
+
alignItems: 'center',
|
|
128
|
+
gap: 's32'
|
|
129
|
+
},
|
|
130
|
+
children: [/*#__PURE__*/_jsx(DotIcon, {
|
|
131
|
+
appearance: "success",
|
|
132
|
+
icon: ArrowDown,
|
|
133
|
+
size: mediaImageDotIconSizeMap[48],
|
|
134
|
+
pin: "bottom-end",
|
|
135
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
136
|
+
src: parentSrc,
|
|
137
|
+
size: 48,
|
|
138
|
+
shape: "circle"
|
|
139
|
+
})
|
|
140
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
141
|
+
appearance: "muted",
|
|
142
|
+
icon: ArrowUp,
|
|
143
|
+
size: mediaImageDotIconSizeMap[48],
|
|
144
|
+
pin: "bottom-end",
|
|
145
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
146
|
+
src: parentSrc,
|
|
147
|
+
size: 48,
|
|
148
|
+
shape: "circle"
|
|
149
|
+
})
|
|
150
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
151
|
+
appearance: "error",
|
|
152
|
+
icon: Close,
|
|
153
|
+
size: mediaImageDotIconSizeMap[48],
|
|
154
|
+
pin: "bottom-end",
|
|
155
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
156
|
+
src: parentSrc,
|
|
157
|
+
size: 48,
|
|
158
|
+
shape: "circle"
|
|
159
|
+
})
|
|
160
|
+
})]
|
|
161
|
+
})
|
|
162
|
+
};
|
|
163
|
+
export const SizeShowcase = {
|
|
164
|
+
args: {
|
|
165
|
+
appearance: 'muted',
|
|
166
|
+
icon: Link
|
|
167
|
+
},
|
|
168
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
169
|
+
lx: {
|
|
170
|
+
flexDirection: 'row',
|
|
171
|
+
alignItems: 'flex-end',
|
|
172
|
+
gap: 's24'
|
|
173
|
+
},
|
|
174
|
+
children: [/*#__PURE__*/_jsx(DotIcon, {
|
|
175
|
+
appearance: "muted",
|
|
176
|
+
icon: Link,
|
|
177
|
+
size: mediaImageDotIconSizeMap[40],
|
|
178
|
+
pin: "bottom-end",
|
|
179
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
180
|
+
src: parentSrc,
|
|
181
|
+
size: 40,
|
|
182
|
+
shape: "circle"
|
|
183
|
+
})
|
|
184
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
185
|
+
appearance: "success",
|
|
186
|
+
icon: Star,
|
|
187
|
+
size: mediaImageDotIconSizeMap[48],
|
|
188
|
+
pin: "bottom-end",
|
|
189
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
190
|
+
src: parentSrc,
|
|
191
|
+
size: 48,
|
|
192
|
+
shape: "circle"
|
|
193
|
+
})
|
|
194
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
195
|
+
appearance: "success",
|
|
196
|
+
icon: ArrowDown,
|
|
197
|
+
size: mediaImageDotIconSizeMap[56],
|
|
198
|
+
pin: "bottom-end",
|
|
199
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
200
|
+
src: parentSrc,
|
|
201
|
+
size: 56,
|
|
202
|
+
shape: "circle"
|
|
203
|
+
})
|
|
204
|
+
}), /*#__PURE__*/_jsx(DotIcon, {
|
|
205
|
+
appearance: "muted",
|
|
206
|
+
icon: Spinner,
|
|
207
|
+
size: mediaImageDotIconSizeMap[64],
|
|
208
|
+
pin: "bottom-end",
|
|
209
|
+
children: /*#__PURE__*/_jsx(MediaImage, {
|
|
210
|
+
src: parentSrc,
|
|
211
|
+
size: 64,
|
|
212
|
+
shape: "circle"
|
|
213
|
+
})
|
|
214
|
+
})]
|
|
215
|
+
})
|
|
216
|
+
};
|
|
217
|
+
//# sourceMappingURL=DotIcon.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ArrowDown","ArrowUp","Close","Link","Star","MediaImage","Spinner","Box","DotIcon","mediaImageDotIconSizeMap","jsx","_jsx","jsxs","_jsxs","meta","component","title","parameters","docs","source","language","format","type","parentSrc","Base","args","appearance","icon","pin","size","shape","children","src","alt","PinShowcase","render","lx","flexDirection","alignItems","gap","ShapeShowcase","AppearanceShowcase","SizeShowcase"],"sourceRoot":"../../../../../src","sources":["lib/Components/DotIcon/DotIcon.stories.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from '@jest/globals';
|
|
4
|
+
import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
|
|
5
|
+
import { render } from '@testing-library/react-native';
|
|
6
|
+
import { createRef } from 'react';
|
|
7
|
+
import { Text } from 'react-native';
|
|
8
|
+
import { ArrowDown } from "../../Symbols/index.js";
|
|
9
|
+
import { ThemeProvider } from "../ThemeProvider/ThemeProvider.js";
|
|
10
|
+
import { DotIcon } from "./DotIcon.js";
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const {
|
|
13
|
+
colors,
|
|
14
|
+
sizes,
|
|
15
|
+
borderRadius
|
|
16
|
+
} = ledgerLiveThemes.dark;
|
|
17
|
+
const TestWrapper = ({
|
|
18
|
+
children
|
|
19
|
+
}) => /*#__PURE__*/_jsx(ThemeProvider, {
|
|
20
|
+
themes: ledgerLiveThemes,
|
|
21
|
+
colorScheme: "dark",
|
|
22
|
+
locale: "en",
|
|
23
|
+
children: children
|
|
24
|
+
});
|
|
25
|
+
describe('DotIcon Component', () => {
|
|
26
|
+
describe('Rendering', () => {
|
|
27
|
+
it('should render children', () => {
|
|
28
|
+
const {
|
|
29
|
+
getByText
|
|
30
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
31
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
32
|
+
testID: "dot-icon",
|
|
33
|
+
appearance: "success",
|
|
34
|
+
icon: ArrowDown,
|
|
35
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
36
|
+
children: "Child"
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
}));
|
|
40
|
+
expect(getByText('Child')).toBeTruthy();
|
|
41
|
+
});
|
|
42
|
+
it('should render without children', () => {
|
|
43
|
+
const {
|
|
44
|
+
getByTestId
|
|
45
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
46
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
47
|
+
testID: "dot-icon",
|
|
48
|
+
appearance: "success",
|
|
49
|
+
icon: ArrowDown
|
|
50
|
+
})
|
|
51
|
+
}));
|
|
52
|
+
expect(getByTestId('dot-icon')).toBeTruthy();
|
|
53
|
+
});
|
|
54
|
+
it('should have correct displayName', () => {
|
|
55
|
+
expect(DotIcon.displayName).toBe('DotIcon');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('Appearances', () => {
|
|
59
|
+
it.each([{
|
|
60
|
+
appearance: 'success',
|
|
61
|
+
expectedColor: colors.bg.successStrong
|
|
62
|
+
}, {
|
|
63
|
+
appearance: 'muted',
|
|
64
|
+
expectedColor: colors.bg.mutedStrong
|
|
65
|
+
}, {
|
|
66
|
+
appearance: 'error',
|
|
67
|
+
expectedColor: colors.bg.errorStrong
|
|
68
|
+
}])('should apply $appearance background color to the dot', ({
|
|
69
|
+
appearance,
|
|
70
|
+
expectedColor
|
|
71
|
+
}) => {
|
|
72
|
+
const {
|
|
73
|
+
getByTestId
|
|
74
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
75
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
76
|
+
testID: "dot-icon",
|
|
77
|
+
appearance: appearance,
|
|
78
|
+
icon: ArrowDown
|
|
79
|
+
})
|
|
80
|
+
}));
|
|
81
|
+
const dotView = getByTestId('dot-icon-dot');
|
|
82
|
+
expect(dotView.props.style.backgroundColor).toBe(expectedColor);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('Sizes', () => {
|
|
86
|
+
it.each([{
|
|
87
|
+
size: 16,
|
|
88
|
+
expectedSize: sizes.s16
|
|
89
|
+
}, {
|
|
90
|
+
size: 20,
|
|
91
|
+
expectedSize: sizes.s20
|
|
92
|
+
}, {
|
|
93
|
+
size: 24,
|
|
94
|
+
expectedSize: sizes.s24
|
|
95
|
+
}])('should apply correct width and height for size $size', ({
|
|
96
|
+
size,
|
|
97
|
+
expectedSize
|
|
98
|
+
}) => {
|
|
99
|
+
const {
|
|
100
|
+
getByTestId
|
|
101
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
102
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
103
|
+
testID: "dot-icon",
|
|
104
|
+
appearance: "success",
|
|
105
|
+
icon: ArrowDown,
|
|
106
|
+
size: size
|
|
107
|
+
})
|
|
108
|
+
}));
|
|
109
|
+
const dotView = getByTestId('dot-icon-dot');
|
|
110
|
+
expect(dotView.props.style.width).toBe(expectedSize);
|
|
111
|
+
expect(dotView.props.style.height).toBe(expectedSize);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe('Pins', () => {
|
|
115
|
+
it.each([{
|
|
116
|
+
pin: 'bottom-end',
|
|
117
|
+
verticalKey: 'bottom',
|
|
118
|
+
horizontalKey: 'right'
|
|
119
|
+
}, {
|
|
120
|
+
pin: 'bottom-start',
|
|
121
|
+
verticalKey: 'bottom',
|
|
122
|
+
horizontalKey: 'left'
|
|
123
|
+
}, {
|
|
124
|
+
pin: 'top-end',
|
|
125
|
+
verticalKey: 'top',
|
|
126
|
+
horizontalKey: 'right'
|
|
127
|
+
}, {
|
|
128
|
+
pin: 'top-start',
|
|
129
|
+
verticalKey: 'top',
|
|
130
|
+
horizontalKey: 'left'
|
|
131
|
+
}])('should position dot at $pin', ({
|
|
132
|
+
pin,
|
|
133
|
+
verticalKey,
|
|
134
|
+
horizontalKey
|
|
135
|
+
}) => {
|
|
136
|
+
const {
|
|
137
|
+
getByTestId
|
|
138
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
139
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
140
|
+
testID: "dot-icon",
|
|
141
|
+
appearance: "success",
|
|
142
|
+
icon: ArrowDown,
|
|
143
|
+
pin: pin
|
|
144
|
+
})
|
|
145
|
+
}));
|
|
146
|
+
const dotView = getByTestId('dot-icon-dot');
|
|
147
|
+
expect(dotView.props.style[verticalKey]).toBe(-3);
|
|
148
|
+
expect(dotView.props.style[horizontalKey]).toBe(-3);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('Shapes', () => {
|
|
152
|
+
it('should apply full border radius for circle shape', () => {
|
|
153
|
+
const {
|
|
154
|
+
getByTestId
|
|
155
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
156
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
157
|
+
testID: "dot-icon",
|
|
158
|
+
appearance: "success",
|
|
159
|
+
icon: ArrowDown,
|
|
160
|
+
shape: "circle"
|
|
161
|
+
})
|
|
162
|
+
}));
|
|
163
|
+
const dotView = getByTestId('dot-icon-dot');
|
|
164
|
+
expect(dotView.props.style.borderRadius).toBe(borderRadius.full);
|
|
165
|
+
});
|
|
166
|
+
it.each([{
|
|
167
|
+
size: 16,
|
|
168
|
+
expectedRadius: 5
|
|
169
|
+
}, {
|
|
170
|
+
size: 20,
|
|
171
|
+
expectedRadius: 6
|
|
172
|
+
}, {
|
|
173
|
+
size: 24,
|
|
174
|
+
expectedRadius: 8
|
|
175
|
+
}])('should apply correct border radius for square shape at size $size', ({
|
|
176
|
+
size,
|
|
177
|
+
expectedRadius
|
|
178
|
+
}) => {
|
|
179
|
+
const {
|
|
180
|
+
getByTestId
|
|
181
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
182
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
183
|
+
testID: "dot-icon",
|
|
184
|
+
appearance: "success",
|
|
185
|
+
icon: ArrowDown,
|
|
186
|
+
shape: "square",
|
|
187
|
+
size: size
|
|
188
|
+
})
|
|
189
|
+
}));
|
|
190
|
+
const dotView = getByTestId('dot-icon-dot');
|
|
191
|
+
expect(dotView.props.style.borderRadius).toBe(expectedRadius);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
describe('Ref forwarding', () => {
|
|
195
|
+
it('should forward ref to the root element', () => {
|
|
196
|
+
const ref = /*#__PURE__*/createRef();
|
|
197
|
+
render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
198
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
199
|
+
ref: ref,
|
|
200
|
+
appearance: "success",
|
|
201
|
+
icon: ArrowDown
|
|
202
|
+
})
|
|
203
|
+
}));
|
|
204
|
+
expect(ref.current).not.toBeNull();
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
describe('Styling', () => {
|
|
208
|
+
it('should apply custom styles', () => {
|
|
209
|
+
const {
|
|
210
|
+
getByTestId
|
|
211
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
212
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
213
|
+
testID: "dot-icon",
|
|
214
|
+
appearance: "success",
|
|
215
|
+
icon: ArrowDown,
|
|
216
|
+
style: {
|
|
217
|
+
marginTop: 10
|
|
218
|
+
}
|
|
219
|
+
})
|
|
220
|
+
}));
|
|
221
|
+
const root = getByTestId('dot-icon');
|
|
222
|
+
expect(root.props.style.marginTop).toBe(10);
|
|
223
|
+
});
|
|
224
|
+
it('should pass additional props', () => {
|
|
225
|
+
const {
|
|
226
|
+
getByTestId
|
|
227
|
+
} = render(/*#__PURE__*/_jsx(TestWrapper, {
|
|
228
|
+
children: /*#__PURE__*/_jsx(DotIcon, {
|
|
229
|
+
testID: "custom-dot",
|
|
230
|
+
appearance: "success",
|
|
231
|
+
icon: ArrowDown
|
|
232
|
+
})
|
|
233
|
+
}));
|
|
234
|
+
expect(getByTestId('custom-dot')).toBeTruthy();
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
//# sourceMappingURL=DotIcon.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","it","expect","ledgerLiveThemes","render","createRef","Text","ArrowDown","ThemeProvider","DotIcon","jsx","_jsx","colors","sizes","borderRadius","dark","TestWrapper","children","themes","colorScheme","locale","getByText","testID","appearance","icon","toBeTruthy","getByTestId","displayName","toBe","each","expectedColor","bg","successStrong","mutedStrong","errorStrong","dotView","props","style","backgroundColor","size","expectedSize","s16","s20","s24","width","height","pin","verticalKey","horizontalKey","shape","full","expectedRadius","ref","current","not","toBeNull","marginTop","root"],"sourceRoot":"../../../../../src","sources":["lib/Components/DotIcon/DotIcon.test.tsx"],"mappings":"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","ignoreList":[]}
|