@ledgerhq/lumen-ui-rnative 0.1.24 → 0.1.26

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.
Files changed (124) hide show
  1. package/dist/module/index.js +1 -0
  2. package/dist/module/index.js.map +1 -1
  3. package/dist/module/lib/Components/Avatar/Avatar.js +22 -23
  4. package/dist/module/lib/Components/Avatar/Avatar.js.map +1 -1
  5. package/dist/module/lib/Components/Avatar/Avatar.test.js +17 -23
  6. package/dist/module/lib/Components/Avatar/Avatar.test.js.map +1 -1
  7. package/dist/module/lib/Components/DotCount/DotCount.js +128 -0
  8. package/dist/module/lib/Components/DotCount/DotCount.js.map +1 -0
  9. package/dist/module/lib/Components/DotCount/DotCount.mdx +86 -0
  10. package/dist/module/lib/Components/DotCount/DotCount.stories.js +172 -0
  11. package/dist/module/lib/Components/DotCount/DotCount.stories.js.map +1 -0
  12. package/dist/module/lib/Components/DotCount/DotCount.test.js +174 -0
  13. package/dist/module/lib/Components/DotCount/DotCount.test.js.map +1 -0
  14. package/dist/module/lib/Components/DotCount/index.js +5 -0
  15. package/dist/module/lib/Components/DotCount/index.js.map +1 -0
  16. package/dist/module/lib/Components/DotCount/types.js +4 -0
  17. package/dist/module/lib/Components/DotCount/types.js.map +1 -0
  18. package/dist/module/lib/Components/DotIcon/DotIcon.js +134 -0
  19. package/dist/module/lib/Components/DotIcon/DotIcon.js.map +1 -0
  20. package/dist/module/lib/Components/DotIcon/DotIcon.mdx +56 -0
  21. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js +217 -0
  22. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js.map +1 -0
  23. package/dist/module/lib/Components/DotIcon/DotIcon.test.js +238 -0
  24. package/dist/module/lib/Components/DotIcon/DotIcon.test.js.map +1 -0
  25. package/dist/module/lib/Components/DotIcon/index.js +5 -0
  26. package/dist/module/lib/Components/DotIcon/index.js.map +1 -0
  27. package/dist/module/lib/Components/DotIcon/types.js +4 -0
  28. package/dist/module/lib/Components/DotIcon/types.js.map +1 -0
  29. package/dist/module/lib/Components/DotIndicator/DotIndicator.js +89 -0
  30. package/dist/module/lib/Components/DotIndicator/DotIndicator.js.map +1 -0
  31. package/dist/module/lib/Components/DotIndicator/DotIndicator.mdx +82 -0
  32. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js +84 -0
  33. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js.map +1 -0
  34. package/dist/module/lib/Components/DotIndicator/DotIndicator.test.js +136 -0
  35. package/dist/module/lib/Components/DotIndicator/DotIndicator.test.js.map +1 -0
  36. package/dist/module/lib/Components/DotIndicator/index.js +5 -0
  37. package/dist/module/lib/Components/DotIndicator/index.js.map +1 -0
  38. package/dist/module/lib/Components/DotIndicator/types.js +4 -0
  39. package/dist/module/lib/Components/DotIndicator/types.js.map +1 -0
  40. package/dist/module/lib/Components/DotSymbol/DotSymbol.js +29 -22
  41. package/dist/module/lib/Components/DotSymbol/DotSymbol.js.map +1 -1
  42. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js +31 -9
  43. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js.map +1 -1
  44. package/dist/module/lib/Components/MediaImage/MediaImage.js +2 -1
  45. package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
  46. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js +4 -0
  47. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js.map +1 -1
  48. package/dist/module/lib/Components/Spinner/Spinner.js +6 -1
  49. package/dist/module/lib/Components/Spinner/Spinner.js.map +1 -1
  50. package/dist/module/lib/Components/TabBar/TabBar.js +16 -13
  51. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  52. package/dist/module/lib/Components/Tag/Tag.js +2 -0
  53. package/dist/module/lib/Components/Tag/Tag.js.map +1 -1
  54. package/dist/module/lib/Components/Tag/Tag.stories.js +8 -1
  55. package/dist/module/lib/Components/Tag/Tag.stories.js.map +1 -1
  56. package/dist/module/lib/Components/index.js +3 -0
  57. package/dist/module/lib/Components/index.js.map +1 -1
  58. package/dist/typescript/src/index.d.ts +1 -0
  59. package/dist/typescript/src/index.d.ts.map +1 -1
  60. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -1
  61. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  62. package/dist/typescript/src/lib/Components/DotCount/DotCount.d.ts +3 -0
  63. package/dist/typescript/src/lib/Components/DotCount/DotCount.d.ts.map +1 -0
  64. package/dist/typescript/src/lib/Components/DotCount/index.d.ts +3 -0
  65. package/dist/typescript/src/lib/Components/DotCount/index.d.ts.map +1 -0
  66. package/dist/typescript/src/lib/Components/DotCount/types.d.ts +40 -0
  67. package/dist/typescript/src/lib/Components/DotCount/types.d.ts.map +1 -0
  68. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts +30 -0
  69. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts.map +1 -0
  70. package/dist/typescript/src/lib/Components/DotIcon/index.d.ts +3 -0
  71. package/dist/typescript/src/lib/Components/DotIcon/index.d.ts.map +1 -0
  72. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts +40 -0
  73. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts.map +1 -0
  74. package/dist/typescript/src/lib/Components/DotIndicator/DotIndicator.d.ts +3 -0
  75. package/dist/typescript/src/lib/Components/DotIndicator/DotIndicator.d.ts.map +1 -0
  76. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts +3 -0
  77. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts.map +1 -0
  78. package/dist/typescript/src/lib/Components/DotIndicator/types.d.ts +25 -0
  79. package/dist/typescript/src/lib/Components/DotIndicator/types.d.ts.map +1 -0
  80. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts.map +1 -1
  81. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
  82. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts +1 -1
  83. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts.map +1 -1
  84. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts +1 -1
  85. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
  86. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  87. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts.map +1 -1
  88. package/dist/typescript/src/lib/Components/Tag/types.d.ts +1 -1
  89. package/dist/typescript/src/lib/Components/Tag/types.d.ts.map +1 -1
  90. package/dist/typescript/src/lib/Components/index.d.ts +3 -0
  91. package/dist/typescript/src/lib/Components/index.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/index.ts +1 -0
  94. package/src/lib/Components/Avatar/Avatar.test.tsx +17 -27
  95. package/src/lib/Components/Avatar/Avatar.tsx +24 -21
  96. package/src/lib/Components/DotCount/DotCount.mdx +86 -0
  97. package/src/lib/Components/DotCount/DotCount.stories.tsx +124 -0
  98. package/src/lib/Components/DotCount/DotCount.test.tsx +150 -0
  99. package/src/lib/Components/DotCount/DotCount.tsx +130 -0
  100. package/src/lib/Components/DotCount/index.ts +2 -0
  101. package/src/lib/Components/DotCount/types.ts +40 -0
  102. package/src/lib/Components/DotIcon/DotIcon.mdx +56 -0
  103. package/src/lib/Components/DotIcon/DotIcon.stories.tsx +154 -0
  104. package/src/lib/Components/DotIcon/DotIcon.test.tsx +224 -0
  105. package/src/lib/Components/DotIcon/DotIcon.tsx +146 -0
  106. package/src/lib/Components/DotIcon/index.ts +6 -0
  107. package/src/lib/Components/DotIcon/types.ts +44 -0
  108. package/src/lib/Components/DotIndicator/DotIndicator.mdx +82 -0
  109. package/src/lib/Components/DotIndicator/DotIndicator.stories.tsx +67 -0
  110. package/src/lib/Components/DotIndicator/DotIndicator.test.tsx +132 -0
  111. package/src/lib/Components/DotIndicator/DotIndicator.tsx +97 -0
  112. package/src/lib/Components/DotIndicator/index.ts +2 -0
  113. package/src/lib/Components/DotIndicator/types.ts +25 -0
  114. package/src/lib/Components/DotSymbol/DotSymbol.stories.tsx +26 -7
  115. package/src/lib/Components/DotSymbol/DotSymbol.tsx +22 -23
  116. package/src/lib/Components/MediaImage/MediaImage.stories.tsx +1 -0
  117. package/src/lib/Components/MediaImage/MediaImage.tsx +3 -1
  118. package/src/lib/Components/MediaImage/types.ts +1 -1
  119. package/src/lib/Components/Spinner/Spinner.tsx +6 -2
  120. package/src/lib/Components/TabBar/TabBar.tsx +17 -16
  121. package/src/lib/Components/Tag/Tag.stories.tsx +11 -1
  122. package/src/lib/Components/Tag/Tag.tsx +2 -0
  123. package/src/lib/Components/Tag/types.ts +8 -1
  124. package/src/lib/Components/index.ts +3 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { Avatar } from "../Avatar/Avatar.js";
5
+ import { MediaImage } from "../MediaImage/MediaImage.js";
6
+ import { SegmentedControl, SegmentedControlButton } from "../SegmentedControl/SegmentedControl.js";
7
+ import { Box } from "../Utility/Box/index.js";
8
+ import { DotCount } from "./DotCount.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const meta = {
11
+ component: DotCount,
12
+ title: 'Communication/DotCount',
13
+ parameters: {
14
+ docs: {
15
+ source: {
16
+ language: 'tsx',
17
+ format: true,
18
+ type: 'code'
19
+ }
20
+ }
21
+ },
22
+ argTypes: {
23
+ size: {
24
+ control: 'radio',
25
+ options: ['lg', 'md']
26
+ },
27
+ appearance: {
28
+ control: 'radio',
29
+ options: ['base', 'red']
30
+ },
31
+ value: {
32
+ control: 'number'
33
+ },
34
+ max: {
35
+ control: 'number'
36
+ }
37
+ }
38
+ };
39
+ export default meta;
40
+ export const Base = {
41
+ args: {
42
+ value: 3,
43
+ size: 'lg',
44
+ appearance: 'base'
45
+ }
46
+ };
47
+ export const SizeShowcase = {
48
+ args: {
49
+ value: 5
50
+ },
51
+ render: () => /*#__PURE__*/_jsxs(Box, {
52
+ lx: {
53
+ flexDirection: 'row',
54
+ alignItems: 'center',
55
+ gap: 's12'
56
+ },
57
+ children: [/*#__PURE__*/_jsx(DotCount, {
58
+ value: 5,
59
+ size: "lg"
60
+ }), /*#__PURE__*/_jsx(DotCount, {
61
+ value: 5,
62
+ size: "md"
63
+ })]
64
+ })
65
+ };
66
+ export const AppearanceShowcase = {
67
+ args: {
68
+ value: 3
69
+ },
70
+ render: () => /*#__PURE__*/_jsxs(Box, {
71
+ lx: {
72
+ flexDirection: 'row',
73
+ alignItems: 'center',
74
+ gap: 's12'
75
+ },
76
+ children: [/*#__PURE__*/_jsx(DotCount, {
77
+ value: 3,
78
+ size: "lg",
79
+ appearance: "base"
80
+ }), /*#__PURE__*/_jsx(DotCount, {
81
+ value: 3,
82
+ size: "lg",
83
+ appearance: "red"
84
+ }), /*#__PURE__*/_jsx(DotCount, {
85
+ value: 3,
86
+ size: "lg",
87
+ disabled: true
88
+ })]
89
+ })
90
+ };
91
+ export const OverflowShowcase = {
92
+ args: {
93
+ value: 100
94
+ },
95
+ render: () => /*#__PURE__*/_jsxs(Box, {
96
+ lx: {
97
+ flexDirection: 'row',
98
+ alignItems: 'center',
99
+ gap: 's12'
100
+ },
101
+ children: [/*#__PURE__*/_jsx(DotCount, {
102
+ value: 100,
103
+ size: "lg"
104
+ }), /*#__PURE__*/_jsx(DotCount, {
105
+ value: 100,
106
+ max: 50,
107
+ size: "lg"
108
+ }), /*#__PURE__*/_jsx(DotCount, {
109
+ value: 0,
110
+ size: "lg"
111
+ })]
112
+ })
113
+ };
114
+ export const WithChildren = {
115
+ args: {
116
+ value: 5
117
+ },
118
+ render: () => {
119
+ const [fitState, setFitState] = useState('preview');
120
+ return /*#__PURE__*/_jsxs(Box, {
121
+ lx: {
122
+ gap: 's24'
123
+ },
124
+ children: [/*#__PURE__*/_jsxs(Box, {
125
+ lx: {
126
+ flexDirection: 'row',
127
+ alignItems: 'center',
128
+ gap: 's12'
129
+ },
130
+ children: [/*#__PURE__*/_jsx(DotCount, {
131
+ value: 5,
132
+ size: "md",
133
+ children: /*#__PURE__*/_jsx(MediaImage, {
134
+ src: "https://crypto-icons.ledger.com/BTC.png",
135
+ alt: "Bitcoin",
136
+ size: 40,
137
+ shape: "circle"
138
+ })
139
+ }), /*#__PURE__*/_jsx(DotCount, {
140
+ value: 100,
141
+ size: "md",
142
+ children: /*#__PURE__*/_jsx(Avatar, {
143
+ src: "https://plus.unsplash.com/premium_photo-1689551670902-19b441a6afde?q=80&w=774&auto=format&fit=crop",
144
+ size: "md"
145
+ })
146
+ })]
147
+ }), /*#__PURE__*/_jsxs(SegmentedControl, {
148
+ selectedValue: fitState,
149
+ onSelectedChange: setFitState,
150
+ tabLayout: "fit",
151
+ accessibilityLabel: "Fit layout",
152
+ children: [/*#__PURE__*/_jsxs(SegmentedControlButton, {
153
+ value: "preview",
154
+ children: ["Preview", /*#__PURE__*/_jsx(DotCount, {
155
+ value: 3,
156
+ size: "md",
157
+ style: {
158
+ marginLeft: 6
159
+ }
160
+ })]
161
+ }), /*#__PURE__*/_jsx(SegmentedControlButton, {
162
+ value: "raw",
163
+ children: "Raw"
164
+ }), /*#__PURE__*/_jsx(SegmentedControlButton, {
165
+ value: "blame",
166
+ children: "Blame"
167
+ })]
168
+ })]
169
+ });
170
+ }
171
+ };
172
+ //# sourceMappingURL=DotCount.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","Avatar","MediaImage","SegmentedControl","SegmentedControlButton","Box","DotCount","jsx","_jsx","jsxs","_jsxs","meta","component","title","parameters","docs","source","language","format","type","argTypes","size","control","options","appearance","value","max","Base","args","SizeShowcase","render","lx","flexDirection","alignItems","gap","children","AppearanceShowcase","disabled","OverflowShowcase","WithChildren","fitState","setFitState","src","alt","shape","selectedValue","onSelectedChange","tabLayout","accessibilityLabel","style","marginLeft"],"sourceRoot":"../../../../../src","sources":["lib/Components/DotCount/DotCount.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,174 @@
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 { ThemeProvider } from "../ThemeProvider/ThemeProvider.js";
9
+ import { DotCount } from "./DotCount.js";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const TestWrapper = ({
12
+ children
13
+ }) => /*#__PURE__*/_jsx(ThemeProvider, {
14
+ themes: ledgerLiveThemes,
15
+ colorScheme: "dark",
16
+ locale: "en",
17
+ children: children
18
+ });
19
+ describe('DotCount', () => {
20
+ it('should render the value', () => {
21
+ const {
22
+ getByText
23
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
24
+ children: /*#__PURE__*/_jsx(DotCount, {
25
+ value: 5,
26
+ size: "lg"
27
+ })
28
+ }));
29
+ expect(getByText('5')).toBeTruthy();
30
+ });
31
+ it('should hide text when value is 0', () => {
32
+ const {
33
+ queryByText
34
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
35
+ children: /*#__PURE__*/_jsx(DotCount, {
36
+ value: 0,
37
+ size: "lg"
38
+ })
39
+ }));
40
+ expect(queryByText('0')).toBeNull();
41
+ });
42
+ it('should cap value at max and show overflow indicator', () => {
43
+ const {
44
+ getByText
45
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
46
+ children: /*#__PURE__*/_jsx(DotCount, {
47
+ value: 100,
48
+ max: 50,
49
+ size: "lg"
50
+ })
51
+ }));
52
+ expect(getByText('50+')).toBeTruthy();
53
+ });
54
+ it('should default max to 99', () => {
55
+ const {
56
+ getByText
57
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
58
+ children: /*#__PURE__*/_jsx(DotCount, {
59
+ value: 150,
60
+ size: "lg"
61
+ })
62
+ }));
63
+ expect(getByText('99+')).toBeTruthy();
64
+ });
65
+ it('should clamp max to 1 when given zero or negative', () => {
66
+ const {
67
+ getByText
68
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
69
+ children: /*#__PURE__*/_jsx(DotCount, {
70
+ value: 5,
71
+ max: 0,
72
+ size: "lg"
73
+ })
74
+ }));
75
+ expect(getByText('1+')).toBeTruthy();
76
+ });
77
+ it('should render children alongside the count', () => {
78
+ const {
79
+ getByText
80
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
81
+ children: /*#__PURE__*/_jsx(DotCount, {
82
+ value: 3,
83
+ size: "md",
84
+ children: /*#__PURE__*/_jsx(Text, {
85
+ children: "Child"
86
+ })
87
+ })
88
+ }));
89
+ expect(getByText('3')).toBeTruthy();
90
+ expect(getByText('Child')).toBeTruthy();
91
+ });
92
+ it('should forward testID to the outer wrapper', () => {
93
+ const {
94
+ getByTestId
95
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
96
+ children: /*#__PURE__*/_jsx(DotCount, {
97
+ testID: "dot-count",
98
+ value: 3,
99
+ size: "lg"
100
+ })
101
+ }));
102
+ expect(getByTestId('dot-count')).toBeTruthy();
103
+ });
104
+ it('should forward pointerEvents to the outer wrapper', () => {
105
+ const {
106
+ getByTestId
107
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
108
+ children: /*#__PURE__*/_jsx(DotCount, {
109
+ testID: "dot-count",
110
+ value: 3,
111
+ size: "lg",
112
+ pointerEvents: "none"
113
+ })
114
+ }));
115
+ expect(getByTestId('dot-count').props.pointerEvents).toBe('none');
116
+ });
117
+ it('should forward ref to the outer wrapper', () => {
118
+ const ref = /*#__PURE__*/createRef();
119
+ render(/*#__PURE__*/_jsx(TestWrapper, {
120
+ children: /*#__PURE__*/_jsx(DotCount, {
121
+ ref: ref,
122
+ value: 3,
123
+ size: "lg"
124
+ })
125
+ }));
126
+ expect(ref.current).toBeTruthy();
127
+ });
128
+ it('should render with red appearance', () => {
129
+ const {
130
+ getByText
131
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
132
+ children: /*#__PURE__*/_jsx(DotCount, {
133
+ value: 5,
134
+ size: "lg",
135
+ appearance: "red"
136
+ })
137
+ }));
138
+ expect(getByText('5')).toBeTruthy();
139
+ });
140
+ it('should render with disabled state', () => {
141
+ const {
142
+ getByText
143
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
144
+ children: /*#__PURE__*/_jsx(DotCount, {
145
+ value: 5,
146
+ size: "lg",
147
+ disabled: true
148
+ })
149
+ }));
150
+ expect(getByText('5')).toBeTruthy();
151
+ });
152
+ it('should render in md size', () => {
153
+ const {
154
+ getByText
155
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
156
+ children: /*#__PURE__*/_jsx(DotCount, {
157
+ value: 5,
158
+ size: "md"
159
+ })
160
+ }));
161
+ expect(getByText('5')).toBeTruthy();
162
+ });
163
+ it('should default size to md when omitted', () => {
164
+ const {
165
+ getByText
166
+ } = render(/*#__PURE__*/_jsx(TestWrapper, {
167
+ children: /*#__PURE__*/_jsx(DotCount, {
168
+ value: 5
169
+ })
170
+ }));
171
+ expect(getByText('5')).toBeTruthy();
172
+ });
173
+ });
174
+ //# sourceMappingURL=DotCount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","expect","ledgerLiveThemes","render","createRef","Text","ThemeProvider","DotCount","jsx","_jsx","TestWrapper","children","themes","colorScheme","locale","getByText","value","size","toBeTruthy","queryByText","toBeNull","max","getByTestId","testID","pointerEvents","props","toBe","ref","current","appearance","disabled"],"sourceRoot":"../../../../../src","sources":["lib/Components/DotCount/DotCount.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./DotCount.js";
4
+ export * from "./types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["lib/Components/DotCount/index.ts"],"mappings":";;AAAA,cAAc,eAAY;AAC1B,cAAc,YAAS","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["lib/Components/DotCount/types.ts"],"mappings":"","ignoreList":[]}
@@ -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.