@ledgerhq/lumen-ui-rnative 0.1.32 → 0.1.34
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/BaseTag/BaseTag.js +122 -0
- package/dist/module/lib/Components/BaseTag/BaseTag.js.map +1 -0
- package/dist/module/lib/Components/BaseTag/BaseTag.test.js +144 -0
- package/dist/module/lib/Components/BaseTag/BaseTag.test.js.map +1 -0
- package/dist/module/lib/Components/BaseTag/index.js +5 -0
- package/dist/module/lib/Components/BaseTag/index.js.map +1 -0
- package/dist/module/lib/Components/BaseTag/types.js +4 -0
- package/dist/module/lib/Components/BaseTag/types.js.map +1 -0
- package/dist/module/lib/Components/MediaImage/MediaImage.js +5 -1
- package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
- package/dist/module/lib/Components/MediaTag/MediaTag.js +39 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.js.map +1 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.mdx +161 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.stories.js +122 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.stories.js.map +1 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.test.js +30 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.test.js.map +1 -0
- package/dist/module/lib/Components/MediaTag/index.js +5 -0
- package/dist/module/lib/Components/MediaTag/index.js.map +1 -0
- package/dist/module/lib/Components/MediaTag/types.js +4 -0
- package/dist/module/lib/Components/MediaTag/types.js.map +1 -0
- package/dist/module/lib/Components/Tag/Tag.js +10 -95
- package/dist/module/lib/Components/Tag/Tag.js.map +1 -1
- package/dist/module/lib/Components/Tag/Tag.mdx +1 -79
- 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/Tag/Tag.test.js +69 -0
- package/dist/module/lib/Components/Tag/Tag.test.js.map +1 -0
- package/dist/module/lib/Components/index.js +1 -0
- package/dist/module/lib/Components/index.js.map +1 -1
- package/dist/module/lib/Symbols/Icons/Lightbulb.js +50 -0
- package/dist/module/lib/Symbols/Icons/Lightbulb.js.map +1 -0
- package/dist/module/lib/Symbols/index.js +1 -0
- package/dist/module/lib/Symbols/index.js.map +1 -1
- package/dist/typescript/src/lib/Components/BaseTag/BaseTag.d.ts +3 -0
- package/dist/typescript/src/lib/Components/BaseTag/BaseTag.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/BaseTag/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/BaseTag/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/BaseTag/types.d.ts +10 -0
- package/dist/typescript/src/lib/Components/BaseTag/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/MediaTag/MediaTag.d.ts +26 -0
- package/dist/typescript/src/lib/Components/MediaTag/MediaTag.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/MediaTag/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/MediaTag/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/MediaTag/types.d.ts +10 -0
- package/dist/typescript/src/lib/Components/MediaTag/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Tag/Tag.d.ts +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/dist/typescript/src/lib/Symbols/Icons/Lightbulb.d.ts +35 -0
- package/dist/typescript/src/lib/Symbols/Icons/Lightbulb.d.ts.map +1 -0
- package/dist/typescript/src/lib/Symbols/index.d.ts +1 -0
- package/dist/typescript/src/lib/Symbols/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/lib/Components/BaseTag/BaseTag.test.tsx +137 -0
- package/src/lib/Components/BaseTag/BaseTag.tsx +152 -0
- package/src/lib/Components/BaseTag/index.ts +2 -0
- package/src/lib/Components/BaseTag/types.ts +11 -0
- package/src/lib/Components/MediaImage/MediaImage.tsx +5 -1
- package/src/lib/Components/MediaTag/MediaTag.mdx +161 -0
- package/src/lib/Components/MediaTag/MediaTag.stories.tsx +112 -0
- package/src/lib/Components/MediaTag/MediaTag.test.tsx +27 -0
- package/src/lib/Components/MediaTag/MediaTag.tsx +36 -0
- package/src/lib/Components/MediaTag/index.ts +2 -0
- package/src/lib/Components/MediaTag/types.ts +10 -0
- package/src/lib/Components/Tag/Tag.mdx +1 -79
- package/src/lib/Components/Tag/Tag.stories.tsx +3 -0
- package/src/lib/Components/Tag/Tag.test.tsx +51 -0
- package/src/lib/Components/Tag/Tag.tsx +12 -119
- package/src/lib/Components/Tag/types.ts +2 -1
- package/src/lib/Components/index.ts +1 -0
- package/src/lib/Symbols/Icons/Lightbulb.tsx +45 -0
- package/src/lib/Symbols/index.ts +1 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MediaImage } from "../MediaImage/index.js";
|
|
4
|
+
import { Box } from "../Utility/Box/index.js";
|
|
5
|
+
import { MediaTag } from "./MediaTag.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const ETH_ICON = /*#__PURE__*/_jsx(MediaImage, {
|
|
8
|
+
src: "https://crypto-icons.ledger.com/ETH.png",
|
|
9
|
+
alt: "Ethereum",
|
|
10
|
+
size: 16,
|
|
11
|
+
shape: "square"
|
|
12
|
+
});
|
|
13
|
+
const meta = {
|
|
14
|
+
component: MediaTag,
|
|
15
|
+
title: 'Communication/MediaTag',
|
|
16
|
+
argTypes: {
|
|
17
|
+
appearance: {
|
|
18
|
+
control: 'select',
|
|
19
|
+
options: ['base', 'gray', 'accent', 'accent-subtle', 'success', 'error', 'warning', 'white']
|
|
20
|
+
},
|
|
21
|
+
size: {
|
|
22
|
+
control: 'radio',
|
|
23
|
+
options: ['sm', 'md']
|
|
24
|
+
},
|
|
25
|
+
label: {
|
|
26
|
+
control: 'text'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
export default meta;
|
|
31
|
+
export const Base = {
|
|
32
|
+
args: {
|
|
33
|
+
label: 'Ethereum',
|
|
34
|
+
appearance: 'accent',
|
|
35
|
+
size: 'md'
|
|
36
|
+
},
|
|
37
|
+
render: args => /*#__PURE__*/_jsx(MediaTag, {
|
|
38
|
+
...args,
|
|
39
|
+
leadingContent: ETH_ICON
|
|
40
|
+
})
|
|
41
|
+
};
|
|
42
|
+
export const AppearanceShowcase = {
|
|
43
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
44
|
+
lx: {
|
|
45
|
+
flexDirection: 'row',
|
|
46
|
+
flexWrap: 'wrap',
|
|
47
|
+
gap: 's4'
|
|
48
|
+
},
|
|
49
|
+
children: [/*#__PURE__*/_jsx(MediaTag, {
|
|
50
|
+
appearance: "base",
|
|
51
|
+
label: "Base",
|
|
52
|
+
leadingContent: ETH_ICON
|
|
53
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
54
|
+
appearance: "gray",
|
|
55
|
+
label: "Gray",
|
|
56
|
+
leadingContent: ETH_ICON
|
|
57
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
58
|
+
appearance: "accent",
|
|
59
|
+
label: "Accent",
|
|
60
|
+
leadingContent: ETH_ICON
|
|
61
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
62
|
+
appearance: "accent-subtle",
|
|
63
|
+
label: "Accent subtle",
|
|
64
|
+
leadingContent: ETH_ICON
|
|
65
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
66
|
+
appearance: "success",
|
|
67
|
+
label: "Success",
|
|
68
|
+
leadingContent: ETH_ICON
|
|
69
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
70
|
+
appearance: "error",
|
|
71
|
+
label: "Error",
|
|
72
|
+
leadingContent: ETH_ICON
|
|
73
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
74
|
+
appearance: "warning",
|
|
75
|
+
label: "Warning",
|
|
76
|
+
leadingContent: ETH_ICON
|
|
77
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
78
|
+
appearance: "white",
|
|
79
|
+
label: "White",
|
|
80
|
+
leadingContent: ETH_ICON
|
|
81
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
82
|
+
label: "Disabled",
|
|
83
|
+
leadingContent: ETH_ICON,
|
|
84
|
+
disabled: true
|
|
85
|
+
})]
|
|
86
|
+
})
|
|
87
|
+
};
|
|
88
|
+
export const SizeShowcase = {
|
|
89
|
+
render: () => /*#__PURE__*/_jsxs(Box, {
|
|
90
|
+
lx: {
|
|
91
|
+
flexDirection: 'row',
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
gap: 's4'
|
|
94
|
+
},
|
|
95
|
+
children: [/*#__PURE__*/_jsx(MediaTag, {
|
|
96
|
+
size: "md",
|
|
97
|
+
label: "Medium",
|
|
98
|
+
leadingContent: ETH_ICON
|
|
99
|
+
}), /*#__PURE__*/_jsx(MediaTag, {
|
|
100
|
+
size: "sm",
|
|
101
|
+
label: "Small",
|
|
102
|
+
leadingContent: /*#__PURE__*/_jsx(MediaImage, {
|
|
103
|
+
src: "https://crypto-icons.ledger.com/ETH.png",
|
|
104
|
+
alt: "Ethereum",
|
|
105
|
+
size: 12,
|
|
106
|
+
shape: "square"
|
|
107
|
+
})
|
|
108
|
+
})]
|
|
109
|
+
})
|
|
110
|
+
};
|
|
111
|
+
export const TruncateShowcase = {
|
|
112
|
+
render: () => /*#__PURE__*/_jsx(Box, {
|
|
113
|
+
lx: {
|
|
114
|
+
width: 's176'
|
|
115
|
+
},
|
|
116
|
+
children: /*#__PURE__*/_jsx(MediaTag, {
|
|
117
|
+
label: "Very long text that truncates",
|
|
118
|
+
leadingContent: ETH_ICON
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=MediaTag.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MediaImage","Box","MediaTag","jsx","_jsx","jsxs","_jsxs","ETH_ICON","src","alt","size","shape","meta","component","title","argTypes","appearance","control","options","label","Base","args","render","leadingContent","AppearanceShowcase","lx","flexDirection","flexWrap","gap","children","disabled","SizeShowcase","alignItems","TruncateShowcase","width"],"sourceRoot":"../../../../../src","sources":["lib/Components/MediaTag/MediaTag.stories.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from '@jest/globals';
|
|
4
|
+
import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
|
|
5
|
+
import { render, screen } from '@testing-library/react-native';
|
|
6
|
+
import { Text } from 'react-native';
|
|
7
|
+
import { ThemeProvider } from "../ThemeProvider/ThemeProvider.js";
|
|
8
|
+
import { MediaTag } from "./MediaTag.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const renderWithProvider = component => render(/*#__PURE__*/_jsx(ThemeProvider, {
|
|
11
|
+
themes: ledgerLiveThemes,
|
|
12
|
+
colorScheme: "dark",
|
|
13
|
+
locale: "en",
|
|
14
|
+
children: component
|
|
15
|
+
}));
|
|
16
|
+
describe('MediaTag Component', () => {
|
|
17
|
+
it('should render label and the provided ReactNode icon as-is', () => {
|
|
18
|
+
renderWithProvider(/*#__PURE__*/_jsx(MediaTag, {
|
|
19
|
+
label: "Bitcoin",
|
|
20
|
+
leadingContent: /*#__PURE__*/_jsx(Text, {
|
|
21
|
+
testID: "media-icon",
|
|
22
|
+
children: "bitcoin-icon"
|
|
23
|
+
})
|
|
24
|
+
}));
|
|
25
|
+
expect(screen.getByText('Bitcoin')).toBeTruthy();
|
|
26
|
+
expect(screen.getByTestId('media-icon')).toBeTruthy();
|
|
27
|
+
expect(screen.getByText('bitcoin-icon')).toBeTruthy();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=MediaTag.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","it","expect","ledgerLiveThemes","render","screen","Text","ThemeProvider","MediaTag","jsx","_jsx","renderWithProvider","component","themes","colorScheme","locale","children","label","leadingContent","testID","getByText","toBeTruthy","getByTestId"],"sourceRoot":"../../../../../src","sources":["lib/Components/MediaTag/MediaTag.test.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,QAAQ,eAAe;AACpD,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,MAAM,EAAEC,MAAM,QAAQ,+BAA+B;AAC9D,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,QAAQ,mCAAgC;AAC9D,SAASC,QAAQ,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,MAAMC,kBAAkB,GAAIC,SAA6B,IACvDR,MAAM,cACJM,IAAA,CAACH,aAAa;EAACM,MAAM,EAAEV,gBAAiB;EAACW,WAAW,EAAC,MAAM;EAACC,MAAM,EAAC,IAAI;EAAAC,QAAA,EACpEJ;AAAS,CACG,CACjB,CAAC;AAEHZ,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCC,EAAE,CAAC,2DAA2D,EAAE,MAAM;IACpEU,kBAAkB,cAChBD,IAAA,CAACF,QAAQ;MACPS,KAAK,EAAC,SAAS;MACfC,cAAc,eAAER,IAAA,CAACJ,IAAI;QAACa,MAAM,EAAC,YAAY;QAAAH,QAAA,EAAC;MAAY,CAAM;IAAE,CAC/D,CACH,CAAC;IACDd,MAAM,CAACG,MAAM,CAACe,SAAS,CAAC,SAAS,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IAChDnB,MAAM,CAACG,MAAM,CAACiB,WAAW,CAAC,YAAY,CAAC,CAAC,CAACD,UAAU,CAAC,CAAC;IACrDnB,MAAM,CAACG,MAAM,CAACe,SAAS,CAAC,cAAc,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["lib/Components/MediaTag/index.ts"],"mappings":";;AAAA,cAAc,YAAS;AACvB,cAAc,eAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["lib/Components/MediaTag/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1,71 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { useStyleSheet } from "../../../styles/index.js";
|
|
6
|
-
import { Box } from "../Utility/index.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
const useStyles = ({
|
|
9
|
-
appearance,
|
|
10
|
-
size,
|
|
11
|
-
disabled
|
|
12
|
-
}) => {
|
|
13
|
-
return useStyleSheet(t => {
|
|
14
|
-
const bgColors = {
|
|
15
|
-
base: t.colors.bg.mutedTransparent,
|
|
16
|
-
gray: t.colors.bg.mutedTransparent,
|
|
17
|
-
accent: t.colors.bg.accent,
|
|
18
|
-
'accent-subtle': t.colors.bg.activeSubtle,
|
|
19
|
-
success: t.colors.bg.success,
|
|
20
|
-
error: t.colors.bg.error,
|
|
21
|
-
warning: t.colors.bg.warning
|
|
22
|
-
};
|
|
23
|
-
const textColors = {
|
|
24
|
-
base: t.colors.text.base,
|
|
25
|
-
gray: t.colors.text.muted,
|
|
26
|
-
accent: t.colors.text.onAccent,
|
|
27
|
-
'accent-subtle': t.colors.text.active,
|
|
28
|
-
success: t.colors.text.success,
|
|
29
|
-
error: t.colors.text.error,
|
|
30
|
-
warning: t.colors.text.warning
|
|
31
|
-
};
|
|
32
|
-
const sizeStyles = {
|
|
33
|
-
md: {
|
|
34
|
-
paddingHorizontal: t.spacings.s8,
|
|
35
|
-
paddingVertical: t.spacings.s4
|
|
36
|
-
},
|
|
37
|
-
sm: {
|
|
38
|
-
paddingHorizontal: t.spacings.s4,
|
|
39
|
-
paddingVertical: t.spacings.s2
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
const textTypography = size === 'md' ? t.typographies.body3 : t.typographies.body4;
|
|
43
|
-
return {
|
|
44
|
-
root: StyleSheet.flatten([{
|
|
45
|
-
flexDirection: 'row',
|
|
46
|
-
alignItems: 'center',
|
|
47
|
-
justifyContent: 'center',
|
|
48
|
-
gap: t.spacings.s4,
|
|
49
|
-
borderRadius: t.borderRadius.xs,
|
|
50
|
-
backgroundColor: bgColors[appearance],
|
|
51
|
-
...sizeStyles[size]
|
|
52
|
-
}, disabled && {
|
|
53
|
-
backgroundColor: t.colors.bg.disabled
|
|
54
|
-
}]),
|
|
55
|
-
text: StyleSheet.flatten([textTypography, {
|
|
56
|
-
color: textColors[appearance]
|
|
57
|
-
}, disabled && {
|
|
58
|
-
color: t.colors.text.disabled
|
|
59
|
-
}]),
|
|
60
|
-
icon: StyleSheet.flatten([{
|
|
61
|
-
flexShrink: 0,
|
|
62
|
-
color: textColors[appearance]
|
|
63
|
-
}, disabled && {
|
|
64
|
-
color: t.colors.text.disabled
|
|
65
|
-
}])
|
|
66
|
-
};
|
|
67
|
-
}, [appearance, size, disabled]);
|
|
68
|
-
};
|
|
3
|
+
import { BaseTag } from "../BaseTag/index.js";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
69
5
|
const iconSizeMap = {
|
|
70
6
|
md: 16,
|
|
71
7
|
sm: 12
|
|
@@ -99,42 +35,21 @@ const iconSizeMap = {
|
|
|
99
35
|
* <Tag label="Small" size="sm" />
|
|
100
36
|
*/
|
|
101
37
|
export const Tag = ({
|
|
102
|
-
appearance = 'accent',
|
|
103
|
-
size = 'md',
|
|
104
38
|
icon,
|
|
105
|
-
|
|
106
|
-
disabled: disabledProp = false,
|
|
107
|
-
lx = {},
|
|
108
|
-
style,
|
|
109
|
-
ref,
|
|
39
|
+
size = 'md',
|
|
110
40
|
...props
|
|
111
41
|
}) => {
|
|
112
|
-
const disabled = useDisabledContext({
|
|
113
|
-
consumerName: 'Tag',
|
|
114
|
-
mergeWith: {
|
|
115
|
-
disabled: disabledProp
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
const styles = useStyles({
|
|
119
|
-
appearance,
|
|
120
|
-
size,
|
|
121
|
-
disabled: !!disabled
|
|
122
|
-
});
|
|
123
42
|
const IconComponent = icon;
|
|
124
43
|
const iconSize = iconSizeMap[size];
|
|
125
|
-
return /*#__PURE__*/
|
|
126
|
-
ref: ref,
|
|
127
|
-
lx: lx,
|
|
128
|
-
style: StyleSheet.flatten([styles.root, style]),
|
|
44
|
+
return /*#__PURE__*/_jsx(BaseTag, {
|
|
129
45
|
...props,
|
|
130
|
-
|
|
46
|
+
size: size,
|
|
47
|
+
variant: "tag",
|
|
48
|
+
consumerName: "Tag",
|
|
49
|
+
renderIcon: IconComponent ? iconStyle => /*#__PURE__*/_jsx(IconComponent, {
|
|
131
50
|
size: iconSize,
|
|
132
|
-
style:
|
|
133
|
-
})
|
|
134
|
-
style: styles.text,
|
|
135
|
-
numberOfLines: 1,
|
|
136
|
-
children: label
|
|
137
|
-
})]
|
|
51
|
+
style: iconStyle
|
|
52
|
+
}) : undefined
|
|
138
53
|
});
|
|
139
54
|
};
|
|
140
55
|
//# sourceMappingURL=Tag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["BaseTag","jsx","_jsx","iconSizeMap","md","sm","Tag","icon","size","props","IconComponent","iconSize","variant","consumerName","renderIcon","iconStyle","style","undefined"],"sourceRoot":"../../../../../src","sources":["lib/Components/Tag/Tag.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMrC,MAAMC,WAAmC,GAAG;EAC1CC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,GAAG,GAAGA,CAAC;EAAEC,IAAI;EAAEC,IAAI,GAAG,IAAI;EAAE,GAAGC;AAAgB,CAAC,KAAK;EAChE,MAAMC,aAAa,GAAGH,IAAI;EAC1B,MAAMI,QAAQ,GAAGR,WAAW,CAACK,IAAI,CAAC;EAElC,oBACEN,IAAA,CAACF,OAAO;IAAA,GACFS,KAAK;IACTD,IAAI,EAAEA,IAAK;IACXI,OAAO,EAAC,KAAK;IACbC,YAAY,EAAC,KAAK;IAClBC,UAAU,EACRJ,aAAa,GACRK,SAAS,iBAAKb,IAAA,CAACQ,aAAa;MAACF,IAAI,EAAEG,QAAS;MAACK,KAAK,EAAED;IAAU,CAAE,CAAC,GAClEE;EACL,CACF,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { Box } from '../Utility/Box';
|
|
|
7
7
|
|
|
8
8
|
<Meta title='Components/Tag' of={TagStories} />
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# Tag
|
|
11
11
|
|
|
12
12
|
<CustomTabs>
|
|
13
13
|
<Tab label="Overview">
|
|
@@ -53,16 +53,6 @@ When a tag's label exceeds the available space, the text is automatically trunca
|
|
|
53
53
|
|
|
54
54
|
<Canvas of={TagStories.TruncateShowcase} />
|
|
55
55
|
|
|
56
|
-
### Accessibility
|
|
57
|
-
|
|
58
|
-
To be implemented:
|
|
59
|
-
|
|
60
|
-
- **Color contrast**
|
|
61
|
-
- **Text zoom**
|
|
62
|
-
- **Touch targets**
|
|
63
|
-
- **Screen reader support**
|
|
64
|
-
- **Semantic labeling**
|
|
65
|
-
|
|
66
56
|
</Tab>
|
|
67
57
|
<Tab label="Implementation">
|
|
68
58
|
|
|
@@ -106,73 +96,5 @@ function MyComponent() {
|
|
|
106
96
|
}
|
|
107
97
|
```
|
|
108
98
|
|
|
109
|
-
|
|
110
|
-
## Do's and Don'ts
|
|
111
|
-
|
|
112
|
-
<Box lx={{ flexDirection: 'column', gap: 's24' }}>
|
|
113
|
-
<DoVsDontRow>
|
|
114
|
-
<DoBlockItem
|
|
115
|
-
title='Use standard size variants'
|
|
116
|
-
description='Use the size prop with predefined variants (sm, md)'
|
|
117
|
-
>
|
|
118
|
-
|
|
119
|
-
{/* prettier-ignore */}
|
|
120
|
-
```tsx
|
|
121
|
-
import { Check } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
122
|
-
|
|
123
|
-
<Tag size="sm" icon={Check} label="Success" />
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
</DoBlockItem>
|
|
127
|
-
<DontBlockItem
|
|
128
|
-
title="Don't use custom sizes"
|
|
129
|
-
description='Avoid using style prop to override standard sizes'
|
|
130
|
-
>
|
|
131
|
-
|
|
132
|
-
{/* prettier-ignore */}
|
|
133
|
-
```tsx
|
|
134
|
-
import { Check } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
135
|
-
|
|
136
|
-
<Tag style={{ height: 52 }} icon={Check} label="Success" />
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
</DontBlockItem>
|
|
140
|
-
</DoVsDontRow>
|
|
141
|
-
|
|
142
|
-
<DoVsDontRow>
|
|
143
|
-
<DoBlockItem
|
|
144
|
-
title='Provide proper accessibility props'
|
|
145
|
-
description='Use accessible and accessibilityRole props for screen reader support'
|
|
146
|
-
>
|
|
147
|
-
|
|
148
|
-
{/* prettier-ignore */}
|
|
149
|
-
```tsx
|
|
150
|
-
<Tag
|
|
151
|
-
label="Important"
|
|
152
|
-
accessible={true}
|
|
153
|
-
accessibilityRole="text"
|
|
154
|
-
/>
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
</DoBlockItem>
|
|
158
|
-
<DontBlockItem
|
|
159
|
-
title="Don't omit accessibility props"
|
|
160
|
-
description='Avoid creating tags without accessibility support for screen readers'
|
|
161
|
-
>
|
|
162
|
-
|
|
163
|
-
{/* prettier-ignore */}
|
|
164
|
-
```tsx
|
|
165
|
-
<Tag
|
|
166
|
-
label="Important"
|
|
167
|
-
/>
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
</DontBlockItem>
|
|
171
|
-
|
|
172
|
-
</DoVsDontRow>
|
|
173
|
-
|
|
174
|
-
<CommonRulesDoAndDont />
|
|
175
|
-
</Box>
|
|
176
|
-
|
|
177
99
|
</Tab>
|
|
178
100
|
</CustomTabs>
|
|
@@ -10,7 +10,7 @@ const meta = {
|
|
|
10
10
|
argTypes: {
|
|
11
11
|
appearance: {
|
|
12
12
|
control: 'select',
|
|
13
|
-
options: ['base', 'gray', 'accent', 'accent-subtle', 'success', 'error', 'warning']
|
|
13
|
+
options: ['base', 'gray', 'accent', 'accent-subtle', 'success', 'error', 'warning', 'white']
|
|
14
14
|
},
|
|
15
15
|
size: {
|
|
16
16
|
control: 'radio',
|
|
@@ -71,6 +71,9 @@ export const AppearanceShowcase = {
|
|
|
71
71
|
}), /*#__PURE__*/_jsx(Tag, {
|
|
72
72
|
appearance: "warning",
|
|
73
73
|
label: "Warning"
|
|
74
|
+
}), /*#__PURE__*/_jsx(Tag, {
|
|
75
|
+
appearance: "white",
|
|
76
|
+
label: "White"
|
|
74
77
|
}), /*#__PURE__*/_jsx(Tag, {
|
|
75
78
|
label: "Disabled",
|
|
76
79
|
disabled: true
|
|
@@ -108,6 +111,10 @@ export const AppearanceShowcase = {
|
|
|
108
111
|
appearance: "warning",
|
|
109
112
|
label: "Warning",
|
|
110
113
|
icon: Check
|
|
114
|
+
}), /*#__PURE__*/_jsx(Tag, {
|
|
115
|
+
appearance: "white",
|
|
116
|
+
label: "White",
|
|
117
|
+
icon: Check
|
|
111
118
|
}), /*#__PURE__*/_jsx(Tag, {
|
|
112
119
|
label: "Disabled",
|
|
113
120
|
icon: Check,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Check","Box","Tag","jsx","_jsx","jsxs","_jsxs","meta","component","title","argTypes","appearance","control","options","size","label","icon","type","description","Base","args","render","undefined","AppearanceShowcase","lx","flexDirection","gap","children","disabled","SizeShowcase","alignItems","ContentTypeShowcase","TruncateShowcase","width"],"sourceRoot":"../../../../../src","sources":["lib/Components/Tag/Tag.stories.tsx"],"mappings":";;AACA,SAASA,KAAK,QAAQ,8BAA2B;AACjD,SAASC,GAAG,QAAQ,yBAAgB;AACpC,SAASC,GAAG,QAAQ,UAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5B,MAAMC,IAAsB,GAAG;EAC7BC,SAAS,EAAEN,GAAG;EACdO,KAAK,EAAE,mBAAmB;EAC1BC,QAAQ,EAAE;IACRC,UAAU,EAAE;MACVC,OAAO,EAAE,QAAQ;MACjBC,OAAO,EAAE,CACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,EACT,OAAO,EACP,SAAS;
|
|
1
|
+
{"version":3,"names":["Check","Box","Tag","jsx","_jsx","jsxs","_jsxs","meta","component","title","argTypes","appearance","control","options","size","label","icon","type","description","Base","args","render","undefined","AppearanceShowcase","lx","flexDirection","gap","children","disabled","SizeShowcase","alignItems","ContentTypeShowcase","TruncateShowcase","width"],"sourceRoot":"../../../../../src","sources":["lib/Components/Tag/Tag.stories.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect, jest } from '@jest/globals';
|
|
4
|
+
import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
|
|
5
|
+
import { render, screen } from '@testing-library/react-native';
|
|
6
|
+
import { Text } from 'react-native';
|
|
7
|
+
import { ThemeProvider } from "../ThemeProvider/ThemeProvider.js";
|
|
8
|
+
import { Tag } from "./Tag.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const renderWithProvider = component => render(/*#__PURE__*/_jsx(ThemeProvider, {
|
|
11
|
+
themes: ledgerLiveThemes,
|
|
12
|
+
colorScheme: "dark",
|
|
13
|
+
locale: "en",
|
|
14
|
+
children: component
|
|
15
|
+
}));
|
|
16
|
+
describe('Tag Component', () => {
|
|
17
|
+
it('should render without icon', () => {
|
|
18
|
+
renderWithProvider(/*#__PURE__*/_jsx(Tag, {
|
|
19
|
+
label: "Label"
|
|
20
|
+
}));
|
|
21
|
+
expect(screen.getByText('Label')).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
it('should render the icon component when icon prop is provided', () => {
|
|
24
|
+
const Icon = jest.fn(({
|
|
25
|
+
size
|
|
26
|
+
}) => /*#__PURE__*/_jsxs(Text, {
|
|
27
|
+
testID: "tag-icon",
|
|
28
|
+
children: ["icon-", size]
|
|
29
|
+
}));
|
|
30
|
+
renderWithProvider(/*#__PURE__*/_jsx(Tag, {
|
|
31
|
+
label: "Label",
|
|
32
|
+
icon: Icon
|
|
33
|
+
}));
|
|
34
|
+
expect(screen.getByTestId('tag-icon')).toBeTruthy();
|
|
35
|
+
});
|
|
36
|
+
it('should inject size=16 into the icon when tag size is md', () => {
|
|
37
|
+
const Icon = jest.fn(({
|
|
38
|
+
size
|
|
39
|
+
}) => /*#__PURE__*/_jsxs(Text, {
|
|
40
|
+
testID: "tag-icon",
|
|
41
|
+
children: ["icon-", size]
|
|
42
|
+
}));
|
|
43
|
+
renderWithProvider(/*#__PURE__*/_jsx(Tag, {
|
|
44
|
+
label: "Label",
|
|
45
|
+
size: "md",
|
|
46
|
+
icon: Icon
|
|
47
|
+
}));
|
|
48
|
+
expect(Icon).toHaveBeenCalledWith(expect.objectContaining({
|
|
49
|
+
size: 16
|
|
50
|
+
}), undefined);
|
|
51
|
+
});
|
|
52
|
+
it('should inject size=12 into the icon when tag size is sm', () => {
|
|
53
|
+
const Icon = jest.fn(({
|
|
54
|
+
size
|
|
55
|
+
}) => /*#__PURE__*/_jsxs(Text, {
|
|
56
|
+
testID: "tag-icon",
|
|
57
|
+
children: ["icon-", size]
|
|
58
|
+
}));
|
|
59
|
+
renderWithProvider(/*#__PURE__*/_jsx(Tag, {
|
|
60
|
+
label: "Label",
|
|
61
|
+
size: "sm",
|
|
62
|
+
icon: Icon
|
|
63
|
+
}));
|
|
64
|
+
expect(Icon).toHaveBeenCalledWith(expect.objectContaining({
|
|
65
|
+
size: 12
|
|
66
|
+
}), undefined);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=Tag.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","it","expect","jest","ledgerLiveThemes","render","screen","Text","ThemeProvider","Tag","jsx","_jsx","jsxs","_jsxs","renderWithProvider","component","themes","colorScheme","locale","children","label","getByText","toBeTruthy","Icon","fn","size","testID","icon","getByTestId","toHaveBeenCalledWith","objectContaining","undefined"],"sourceRoot":"../../../../../src","sources":["lib/Components/Tag/Tag.test.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,EAAEC,IAAI,QAAQ,eAAe;AAC1D,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,MAAM,EAAEC,MAAM,QAAQ,+BAA+B;AAC9D,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,aAAa,QAAQ,mCAAgC;AAC9D,SAASC,GAAG,QAAQ,UAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5B,MAAMC,kBAAkB,GAAIC,SAA6B,IACvDV,MAAM,cACJM,IAAA,CAACH,aAAa;EAACQ,MAAM,EAAEZ,gBAAiB;EAACa,WAAW,EAAC,MAAM;EAACC,MAAM,EAAC,IAAI;EAAAC,QAAA,EACpEJ;AAAS,CACG,CACjB,CAAC;AAEHf,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9BC,EAAE,CAAC,4BAA4B,EAAE,MAAM;IACrCa,kBAAkB,cAACH,IAAA,CAACF,GAAG;MAACW,KAAK,EAAC;IAAO,CAAE,CAAC,CAAC;IACzClB,MAAM,CAACI,MAAM,CAACe,SAAS,CAAC,OAAO,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFrB,EAAE,CAAC,6DAA6D,EAAE,MAAM;IACtE,MAAMsB,IAAI,GAAGpB,IAAI,CAACqB,EAAE,CAAC,CAAC;MAAEC;IAAgB,CAAC,kBACvCZ,KAAA,CAACN,IAAI;MAACmB,MAAM,EAAC,UAAU;MAAAP,QAAA,GAAC,OAAK,EAACM,IAAI;IAAA,CAAO,CAC1C,CAAC;IACFX,kBAAkB,cAACH,IAAA,CAACF,GAAG;MAACW,KAAK,EAAC,OAAO;MAACO,IAAI,EAAEJ;IAAK,CAAE,CAAC,CAAC;IACrDrB,MAAM,CAACI,MAAM,CAACsB,WAAW,CAAC,UAAU,CAAC,CAAC,CAACN,UAAU,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFrB,EAAE,CAAC,yDAAyD,EAAE,MAAM;IAClE,MAAMsB,IAAI,GAAGpB,IAAI,CAACqB,EAAE,CAAC,CAAC;MAAEC;IAAgB,CAAC,kBACvCZ,KAAA,CAACN,IAAI;MAACmB,MAAM,EAAC,UAAU;MAAAP,QAAA,GAAC,OAAK,EAACM,IAAI;IAAA,CAAO,CAC1C,CAAC;IACFX,kBAAkB,cAACH,IAAA,CAACF,GAAG;MAACW,KAAK,EAAC,OAAO;MAACK,IAAI,EAAC,IAAI;MAACE,IAAI,EAAEJ;IAAK,CAAE,CAAC,CAAC;IAC/DrB,MAAM,CAACqB,IAAI,CAAC,CAACM,oBAAoB,CAC/B3B,MAAM,CAAC4B,gBAAgB,CAAC;MAAEL,IAAI,EAAE;IAAG,CAAC,CAAC,EACrCM,SACF,CAAC;EACH,CAAC,CAAC;EAEF9B,EAAE,CAAC,yDAAyD,EAAE,MAAM;IAClE,MAAMsB,IAAI,GAAGpB,IAAI,CAACqB,EAAE,CAAC,CAAC;MAAEC;IAAgB,CAAC,kBACvCZ,KAAA,CAACN,IAAI;MAACmB,MAAM,EAAC,UAAU;MAAAP,QAAA,GAAC,OAAK,EAACM,IAAI;IAAA,CAAO,CAC1C,CAAC;IACFX,kBAAkB,cAACH,IAAA,CAACF,GAAG;MAACW,KAAK,EAAC,OAAO;MAACK,IAAI,EAAC,IAAI;MAACE,IAAI,EAAEJ;IAAK,CAAE,CAAC,CAAC;IAC/DrB,MAAM,CAACqB,IAAI,CAAC,CAACM,oBAAoB,CAC/B3B,MAAM,CAAC4B,gBAAgB,CAAC;MAAEL,IAAI,EAAE;IAAG,CAAC,CAAC,EACrCM,SACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -25,6 +25,7 @@ export * from "./MediaBanner/index.js";
|
|
|
25
25
|
export * from "./MediaButton/index.js";
|
|
26
26
|
export * from "./MediaCard/index.js";
|
|
27
27
|
export * from "./MediaImage/index.js";
|
|
28
|
+
export * from "./MediaTag/index.js";
|
|
28
29
|
export * from "./NavBar/index.js";
|
|
29
30
|
export * from "./OptionList/index.js";
|
|
30
31
|
export * from "./PageIndicator/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/Components/index.ts"],"mappings":";;AAAA,cAAc,yBAAgB;AAC9B,cAAc,0BAAiB;AAC/B,cAAc,wBAAe;AAC7B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,wBAAe;AAC7B,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,qBAAY;AAC1B,cAAc,0BAAiB;AAC/B,cAAc,oBAAW;AACzB,cAAc,qBAAY;AAC1B,cAAc,oBAAW;AACzB,cAAc,yBAAgB;AAC9B,cAAc,sBAAa;AAC3B,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,4BAAmB;AACjC,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,wBAAe;AAC7B,cAAc,wBAAe;AAC7B,cAAc,sBAAa;AAC3B,cAAc,uBAAc;AAC5B,cAAc,mBAAU;AACxB,cAAc,uBAAc;AAC5B,cAAc,0BAAiB;AAC/B,cAAc,wBAAe;AAC7B,cAAc,6BAAoB;AAClC,cAAc,mBAAU;AACxB,cAAc,qBAAY;AAC1B,cAAc,oBAAW;AACzB,cAAc,iBAAQ;AACtB,cAAc,oBAAW;AACzB,cAAc,sBAAa;AAC3B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,gBAAO;AACrB,cAAc,sBAAa;AAC3B,cAAc,0BAAiB;AAC/B,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,kBAAS;AACvB,cAAc,oBAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/Components/index.ts"],"mappings":";;AAAA,cAAc,yBAAgB;AAC9B,cAAc,0BAAiB;AAC/B,cAAc,wBAAe;AAC7B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,wBAAe;AAC7B,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,qBAAY;AAC1B,cAAc,0BAAiB;AAC/B,cAAc,oBAAW;AACzB,cAAc,qBAAY;AAC1B,cAAc,oBAAW;AACzB,cAAc,yBAAgB;AAC9B,cAAc,sBAAa;AAC3B,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,4BAAmB;AACjC,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,wBAAe;AAC7B,cAAc,wBAAe;AAC7B,cAAc,sBAAa;AAC3B,cAAc,uBAAc;AAC5B,cAAc,qBAAY;AAC1B,cAAc,mBAAU;AACxB,cAAc,uBAAc;AAC5B,cAAc,0BAAiB;AAC/B,cAAc,wBAAe;AAC7B,cAAc,6BAAoB;AAClC,cAAc,mBAAU;AACxB,cAAc,qBAAY;AAC1B,cAAc,oBAAW;AACzB,cAAc,iBAAQ;AACtB,cAAc,oBAAW;AACzB,cAAc,sBAAa;AAC3B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,gBAAO;AACrB,cAAc,sBAAa;AAC3B,cAAc,0BAAiB;AAC/B,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,kBAAS;AACvB,cAAc,oBAAW","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Svg, { Path } from 'react-native-svg';
|
|
4
|
+
import createIcon from "../../Components/Icon/createIcon.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Lightbulb icon component for React Native.
|
|
8
|
+
*
|
|
9
|
+
* This icon component is automatically generated from SVG files and uses the createIcon utility
|
|
10
|
+
* to create a consistent icon interface. It supports all standard SVG props (from react-native-svg)
|
|
11
|
+
* and additional size variants defined in the Icon component.
|
|
12
|
+
*
|
|
13
|
+
* @component
|
|
14
|
+
* @param {16 | 20 | 24 | 40 | 48 | 56} [size=24] - The size of the icon in pixels.
|
|
15
|
+
* @param {string} [color] - The color of the icon.
|
|
16
|
+
* @param {SVGProps} [...props] - All standard SVG element props (from react-native-svg).
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Basic usage with default size (24px)
|
|
20
|
+
* import { Lightbulb } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
21
|
+
*
|
|
22
|
+
* <Lightbulb />
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // With custom size and style
|
|
26
|
+
* <Lightbulb size={40} color="warning" lx={{ marginTop: 's4' }} />
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Used within a Button component
|
|
30
|
+
* import { Button } from '@ledgerhq/lumen-ui-rnative';
|
|
31
|
+
*
|
|
32
|
+
* <Button icon={Lightbulb} size="md">
|
|
33
|
+
* Click me
|
|
34
|
+
* </Button>
|
|
35
|
+
*/
|
|
36
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
37
|
+
export const Lightbulb = createIcon('Lightbulb', /*#__PURE__*/_jsx(Svg, {
|
|
38
|
+
width: 24,
|
|
39
|
+
height: 24,
|
|
40
|
+
fill: "currentColor",
|
|
41
|
+
viewBox: "0 0 24 24",
|
|
42
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
43
|
+
stroke: "currentColor",
|
|
44
|
+
strokeLinecap: "round",
|
|
45
|
+
strokeLinejoin: "round",
|
|
46
|
+
strokeWidth: 1.5,
|
|
47
|
+
d: "M15 15.19H9M20 5l1.19-1.19M4 15l-1.19 1.19M5 4 3.81 2.81M20 15l1.19 1.19M21 10h1.69M1.31 10H3m6 8h5.87m-6.33-3.104c-1.78-1.26-2.85-3.45-2.47-5.86.4-2.607 2.57-4.688 5.2-4.995a5.996 5.996 0 0 1 6.725 5.95c0 2.02-1.01 3.81-2.55 4.898-.28.19-.46.49-.46.83v2.76a2.5 2.5 0 0 1-2.5 2.5h-1c-1.39 0-2.5-1.12-2.5-2.5v-2.763c0-.35-.19-.65-.46-.85z"
|
|
48
|
+
})
|
|
49
|
+
}));
|
|
50
|
+
//# sourceMappingURL=Lightbulb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Svg","Path","createIcon","jsx","_jsx","Lightbulb","width","height","fill","viewBox","children","stroke","strokeLinecap","strokeLinejoin","strokeWidth","d"],"sourceRoot":"../../../../../src","sources":["lib/Symbols/Icons/Lightbulb.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,qCAAkC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7BA,SAAAC,GAAA,IAAAC,IAAA;AA8BA,OAAO,MAAMC,SAAS,GAAGH,UAAU,CACjC,WAAW,eACXE,IAAA,CAACJ,GAAG;EAACM,KAAK,EAAE,EAAG;EAACC,MAAM,EAAE,EAAG;EAACC,IAAI,EAAC,cAAc;EAACC,OAAO,EAAC,WAAW;EAAAC,QAAA,eACjEN,IAAA,CAACH,IAAI;IACHU,MAAM,EAAC,cAAc;IACrBC,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAC,OAAO;IACtBC,WAAW,EAAE,GAAI;IACjBC,CAAC,EAAC;EAAmV,CACtV;AAAC,CACC,CACP,CAAC","ignoreList":[]}
|
|
@@ -141,6 +141,7 @@ export { LedgerLogo } from "./Icons/LedgerLogo.js";
|
|
|
141
141
|
export { Legal } from "./Icons/Legal.js";
|
|
142
142
|
export { LifeRing } from "./Icons/LifeRing.js";
|
|
143
143
|
export { LifeRingFill } from "./Icons/LifeRingFill.js";
|
|
144
|
+
export { Lightbulb } from "./Icons/Lightbulb.js";
|
|
144
145
|
export { Link } from "./Icons/Link.js";
|
|
145
146
|
export { Linkedin } from "./Icons/Linkedin.js";
|
|
146
147
|
export { Linux } from "./Icons/Linux.js";
|