@idealyst/components 1.0.24 → 1.0.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/README.md +567 -567
- package/package.json +2 -2
- package/plugin/web.js +319 -185
- package/src/Avatar/Avatar.native.tsx +43 -43
- package/src/Avatar/Avatar.styles.tsx +66 -66
- package/src/Avatar/Avatar.web.tsx +50 -50
- package/src/Avatar/index.native.ts +1 -1
- package/src/Avatar/index.ts +1 -1
- package/src/Avatar/index.web.ts +1 -1
- package/src/Avatar/types.ts +42 -42
- package/src/Badge/Badge.native.tsx +42 -42
- package/src/Badge/Badge.styles.tsx +153 -153
- package/src/Badge/Badge.web.tsx +44 -44
- package/src/Badge/index.native.ts +1 -1
- package/src/Badge/index.ts +1 -1
- package/src/Badge/index.web.ts +1 -1
- package/src/Badge/types.ts +33 -33
- package/src/Button/Button.native.tsx +38 -38
- package/src/Button/Button.styles.tsx +214 -214
- package/src/Button/Button.types.ts +11 -11
- package/src/Button/Button.web.tsx +55 -55
- package/src/Button/index.native.ts +2 -2
- package/src/Button/index.ts +4 -4
- package/src/Button/index.web.ts +2 -2
- package/src/Button/types.ts +48 -48
- package/src/Card/Card.native.tsx +51 -51
- package/src/Card/Card.styles.tsx +239 -239
- package/src/Card/Card.web.tsx +61 -61
- package/src/Card/index.native.ts +2 -2
- package/src/Card/index.ts +4 -4
- package/src/Card/index.web.ts +2 -2
- package/src/Card/types.ts +58 -58
- package/src/Checkbox/Checkbox.native.tsx +98 -98
- package/src/Checkbox/Checkbox.styles.tsx +291 -291
- package/src/Checkbox/Checkbox.web.tsx +130 -130
- package/src/Checkbox/index.native.ts +2 -2
- package/src/Checkbox/index.ts +4 -4
- package/src/Checkbox/index.web.ts +2 -2
- package/src/Checkbox/types.ts +78 -78
- package/src/Divider/Divider.native.tsx +144 -144
- package/src/Divider/Divider.styles.tsx +601 -601
- package/src/Divider/Divider.web.tsx +72 -72
- package/src/Divider/index.native.ts +2 -2
- package/src/Divider/index.ts +4 -4
- package/src/Divider/index.web.ts +2 -2
- package/src/Divider/types.ts +53 -53
- package/src/Icon/Icon.native.tsx +38 -38
- package/src/Icon/Icon.styles.tsx +49 -49
- package/src/Icon/Icon.web.tsx +46 -46
- package/src/Icon/icon-types.ts +7452 -7452
- package/src/Icon/index.native.ts +2 -2
- package/src/Icon/index.ts +4 -4
- package/src/Icon/index.web.ts +2 -2
- package/src/Icon/types.ts +35 -35
- package/src/Input/Input.native.tsx +74 -74
- package/src/Input/Input.styles.tsx +176 -176
- package/src/Input/Input.web.tsx +70 -70
- package/src/Input/index.native.ts +2 -2
- package/src/Input/index.ts +4 -4
- package/src/Input/index.web.ts +2 -2
- package/src/Input/types.ts +68 -68
- package/src/Screen/Screen.native.tsx +40 -40
- package/src/Screen/Screen.styles.tsx +59 -59
- package/src/Screen/Screen.web.tsx +32 -32
- package/src/Screen/index.native.ts +1 -1
- package/src/Screen/index.ts +1 -1
- package/src/Screen/index.web.ts +1 -1
- package/src/Screen/types.ts +37 -37
- package/src/Text/Text.native.tsx +35 -35
- package/src/Text/Text.styles.tsx +66 -66
- package/src/Text/Text.web.tsx +40 -40
- package/src/Text/index.native.ts +2 -2
- package/src/Text/index.ts +4 -4
- package/src/Text/index.web.ts +2 -2
- package/src/Text/types.ts +38 -38
- package/src/View/View.native.tsx +55 -55
- package/src/View/View.styles.tsx +102 -102
- package/src/View/View.web.tsx +59 -59
- package/src/View/index.native.ts +2 -2
- package/src/View/index.ts +4 -4
- package/src/View/index.web.ts +2 -2
- package/src/View/types.ts +72 -72
- package/src/examples/AllExamples.tsx +71 -71
- package/src/examples/AvatarExamples.tsx +96 -96
- package/src/examples/BadgeExamples.tsx +199 -199
- package/src/examples/ButtonExamples.tsx +149 -149
- package/src/examples/CardExamples.tsx +175 -175
- package/src/examples/CheckboxExamples.tsx +216 -216
- package/src/examples/DividerExamples.tsx +217 -217
- package/src/examples/IconExamples.tsx +341 -341
- package/src/examples/InputExamples.tsx +133 -133
- package/src/examples/README.md +135 -135
- package/src/examples/ScreenExamples.tsx +153 -153
- package/src/examples/TextExamples.tsx +88 -88
- package/src/examples/ThemeExtensionExamples.tsx +90 -90
- package/src/examples/ValidationExamples.tsx +94 -94
- package/src/examples/ViewExamples.tsx +128 -128
- package/src/examples/extendedTheme.ts +328 -328
- package/src/examples/index.ts +14 -14
- package/src/index.native.ts +48 -48
- package/src/index.ts +47 -47
- package/src/theme/breakpoints.ts +8 -8
- package/src/theme/colorResolver.ts +217 -217
- package/src/theme/colors.ts +314 -314
- package/src/theme/defaultThemes.ts +325 -325
- package/src/theme/index.ts +187 -187
- package/src/theme/themeBuilder.ts +601 -601
- package/src/theme/unistyles.d.ts +5 -5
- package/src/theme/variantHelpers.ts +583 -583
- package/src/theme/variants.ts +55 -55
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Screen, View, Button, Text } from '../index';
|
|
3
|
-
|
|
4
|
-
export const ButtonExamples = () => {
|
|
5
|
-
const handlePress = (buttonType: string) => {
|
|
6
|
-
console.log(`Button pressed: ${buttonType}`);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<Screen background="primary" padding="lg">
|
|
11
|
-
<View spacing="none">
|
|
12
|
-
<Text size="large" weight="bold" align="center">
|
|
13
|
-
Button Examples
|
|
14
|
-
</Text>
|
|
15
|
-
|
|
16
|
-
{/* Button Variants */}
|
|
17
|
-
<View spacing="md">
|
|
18
|
-
<Text size="medium" weight="semibold">Variants</Text>
|
|
19
|
-
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
20
|
-
<Button
|
|
21
|
-
variant="contained"
|
|
22
|
-
intent="primary"
|
|
23
|
-
onPress={() => handlePress('contained')}
|
|
24
|
-
>
|
|
25
|
-
Contained
|
|
26
|
-
</Button>
|
|
27
|
-
<Button
|
|
28
|
-
variant="outlined"
|
|
29
|
-
intent="primary"
|
|
30
|
-
onPress={() => handlePress('outlined')}
|
|
31
|
-
>
|
|
32
|
-
Outlined
|
|
33
|
-
</Button>
|
|
34
|
-
<Button
|
|
35
|
-
variant="text"
|
|
36
|
-
intent="primary"
|
|
37
|
-
onPress={() => handlePress('text')}
|
|
38
|
-
>
|
|
39
|
-
Text
|
|
40
|
-
</Button>
|
|
41
|
-
</View>
|
|
42
|
-
</View>
|
|
43
|
-
|
|
44
|
-
{/* Button Sizes */}
|
|
45
|
-
<View spacing="md">
|
|
46
|
-
<Text size="medium" weight="semibold">Sizes</Text>
|
|
47
|
-
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
|
|
48
|
-
<Button
|
|
49
|
-
size="small"
|
|
50
|
-
variant="contained"
|
|
51
|
-
intent="primary"
|
|
52
|
-
onPress={() => handlePress('small')}
|
|
53
|
-
>
|
|
54
|
-
Small
|
|
55
|
-
</Button>
|
|
56
|
-
<Button
|
|
57
|
-
size="medium"
|
|
58
|
-
variant="contained"
|
|
59
|
-
intent="primary"
|
|
60
|
-
onPress={() => handlePress('medium')}
|
|
61
|
-
>
|
|
62
|
-
Medium
|
|
63
|
-
</Button>
|
|
64
|
-
<Button
|
|
65
|
-
size="large"
|
|
66
|
-
variant="contained"
|
|
67
|
-
intent="primary"
|
|
68
|
-
onPress={() => handlePress('large')}
|
|
69
|
-
>
|
|
70
|
-
Large
|
|
71
|
-
</Button>
|
|
72
|
-
</View>
|
|
73
|
-
</View>
|
|
74
|
-
|
|
75
|
-
{/* Button Intents */}
|
|
76
|
-
<View spacing="md">
|
|
77
|
-
<Text size="medium" weight="semibold">Intents</Text>
|
|
78
|
-
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
79
|
-
<Button
|
|
80
|
-
intent="primary"
|
|
81
|
-
variant="contained"
|
|
82
|
-
onPress={() => handlePress('primary')}
|
|
83
|
-
>
|
|
84
|
-
Primary
|
|
85
|
-
</Button>
|
|
86
|
-
<Button
|
|
87
|
-
intent="neutral"
|
|
88
|
-
variant="contained"
|
|
89
|
-
onPress={() => handlePress('neutral')}
|
|
90
|
-
>
|
|
91
|
-
Neutral
|
|
92
|
-
</Button>
|
|
93
|
-
<Button
|
|
94
|
-
intent="success"
|
|
95
|
-
variant="contained"
|
|
96
|
-
onPress={() => handlePress('success')}
|
|
97
|
-
>
|
|
98
|
-
Success
|
|
99
|
-
</Button>
|
|
100
|
-
<Button
|
|
101
|
-
intent="error"
|
|
102
|
-
variant="contained"
|
|
103
|
-
onPress={() => handlePress('error')}
|
|
104
|
-
>
|
|
105
|
-
Error
|
|
106
|
-
</Button>
|
|
107
|
-
<Button
|
|
108
|
-
intent="warning"
|
|
109
|
-
variant="contained"
|
|
110
|
-
onPress={() => handlePress('warning')}
|
|
111
|
-
>
|
|
112
|
-
Warning
|
|
113
|
-
</Button>
|
|
114
|
-
</View>
|
|
115
|
-
</View>
|
|
116
|
-
|
|
117
|
-
{/* Disabled States */}
|
|
118
|
-
<View spacing="md">
|
|
119
|
-
<Text size="medium" weight="semibold">Disabled States</Text>
|
|
120
|
-
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
121
|
-
<Button
|
|
122
|
-
variant="contained"
|
|
123
|
-
intent="primary"
|
|
124
|
-
disabled
|
|
125
|
-
onPress={() => handlePress('disabled-contained')}
|
|
126
|
-
>
|
|
127
|
-
Disabled Contained
|
|
128
|
-
</Button>
|
|
129
|
-
<Button
|
|
130
|
-
variant="outlined"
|
|
131
|
-
intent="primary"
|
|
132
|
-
disabled
|
|
133
|
-
onPress={() => handlePress('disabled-outlined')}
|
|
134
|
-
>
|
|
135
|
-
Disabled Outlined
|
|
136
|
-
</Button>
|
|
137
|
-
<Button
|
|
138
|
-
variant="text"
|
|
139
|
-
intent="primary"
|
|
140
|
-
disabled
|
|
141
|
-
onPress={() => handlePress('disabled-text')}
|
|
142
|
-
>
|
|
143
|
-
Disabled Text
|
|
144
|
-
</Button>
|
|
145
|
-
</View>
|
|
146
|
-
</View>
|
|
147
|
-
</View>
|
|
148
|
-
</Screen>
|
|
149
|
-
);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Screen, View, Button, Text } from '../index';
|
|
3
|
+
|
|
4
|
+
export const ButtonExamples = () => {
|
|
5
|
+
const handlePress = (buttonType: string) => {
|
|
6
|
+
console.log(`Button pressed: ${buttonType}`);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<Screen background="primary" padding="lg">
|
|
11
|
+
<View spacing="none">
|
|
12
|
+
<Text size="large" weight="bold" align="center">
|
|
13
|
+
Button Examples
|
|
14
|
+
</Text>
|
|
15
|
+
|
|
16
|
+
{/* Button Variants */}
|
|
17
|
+
<View spacing="md">
|
|
18
|
+
<Text size="medium" weight="semibold">Variants</Text>
|
|
19
|
+
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
20
|
+
<Button
|
|
21
|
+
variant="contained"
|
|
22
|
+
intent="primary"
|
|
23
|
+
onPress={() => handlePress('contained')}
|
|
24
|
+
>
|
|
25
|
+
Contained
|
|
26
|
+
</Button>
|
|
27
|
+
<Button
|
|
28
|
+
variant="outlined"
|
|
29
|
+
intent="primary"
|
|
30
|
+
onPress={() => handlePress('outlined')}
|
|
31
|
+
>
|
|
32
|
+
Outlined
|
|
33
|
+
</Button>
|
|
34
|
+
<Button
|
|
35
|
+
variant="text"
|
|
36
|
+
intent="primary"
|
|
37
|
+
onPress={() => handlePress('text')}
|
|
38
|
+
>
|
|
39
|
+
Text
|
|
40
|
+
</Button>
|
|
41
|
+
</View>
|
|
42
|
+
</View>
|
|
43
|
+
|
|
44
|
+
{/* Button Sizes */}
|
|
45
|
+
<View spacing="md">
|
|
46
|
+
<Text size="medium" weight="semibold">Sizes</Text>
|
|
47
|
+
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
|
|
48
|
+
<Button
|
|
49
|
+
size="small"
|
|
50
|
+
variant="contained"
|
|
51
|
+
intent="primary"
|
|
52
|
+
onPress={() => handlePress('small')}
|
|
53
|
+
>
|
|
54
|
+
Small
|
|
55
|
+
</Button>
|
|
56
|
+
<Button
|
|
57
|
+
size="medium"
|
|
58
|
+
variant="contained"
|
|
59
|
+
intent="primary"
|
|
60
|
+
onPress={() => handlePress('medium')}
|
|
61
|
+
>
|
|
62
|
+
Medium
|
|
63
|
+
</Button>
|
|
64
|
+
<Button
|
|
65
|
+
size="large"
|
|
66
|
+
variant="contained"
|
|
67
|
+
intent="primary"
|
|
68
|
+
onPress={() => handlePress('large')}
|
|
69
|
+
>
|
|
70
|
+
Large
|
|
71
|
+
</Button>
|
|
72
|
+
</View>
|
|
73
|
+
</View>
|
|
74
|
+
|
|
75
|
+
{/* Button Intents */}
|
|
76
|
+
<View spacing="md">
|
|
77
|
+
<Text size="medium" weight="semibold">Intents</Text>
|
|
78
|
+
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
79
|
+
<Button
|
|
80
|
+
intent="primary"
|
|
81
|
+
variant="contained"
|
|
82
|
+
onPress={() => handlePress('primary')}
|
|
83
|
+
>
|
|
84
|
+
Primary
|
|
85
|
+
</Button>
|
|
86
|
+
<Button
|
|
87
|
+
intent="neutral"
|
|
88
|
+
variant="contained"
|
|
89
|
+
onPress={() => handlePress('neutral')}
|
|
90
|
+
>
|
|
91
|
+
Neutral
|
|
92
|
+
</Button>
|
|
93
|
+
<Button
|
|
94
|
+
intent="success"
|
|
95
|
+
variant="contained"
|
|
96
|
+
onPress={() => handlePress('success')}
|
|
97
|
+
>
|
|
98
|
+
Success
|
|
99
|
+
</Button>
|
|
100
|
+
<Button
|
|
101
|
+
intent="error"
|
|
102
|
+
variant="contained"
|
|
103
|
+
onPress={() => handlePress('error')}
|
|
104
|
+
>
|
|
105
|
+
Error
|
|
106
|
+
</Button>
|
|
107
|
+
<Button
|
|
108
|
+
intent="warning"
|
|
109
|
+
variant="contained"
|
|
110
|
+
onPress={() => handlePress('warning')}
|
|
111
|
+
>
|
|
112
|
+
Warning
|
|
113
|
+
</Button>
|
|
114
|
+
</View>
|
|
115
|
+
</View>
|
|
116
|
+
|
|
117
|
+
{/* Disabled States */}
|
|
118
|
+
<View spacing="md">
|
|
119
|
+
<Text size="medium" weight="semibold">Disabled States</Text>
|
|
120
|
+
<View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
|
|
121
|
+
<Button
|
|
122
|
+
variant="contained"
|
|
123
|
+
intent="primary"
|
|
124
|
+
disabled
|
|
125
|
+
onPress={() => handlePress('disabled-contained')}
|
|
126
|
+
>
|
|
127
|
+
Disabled Contained
|
|
128
|
+
</Button>
|
|
129
|
+
<Button
|
|
130
|
+
variant="outlined"
|
|
131
|
+
intent="primary"
|
|
132
|
+
disabled
|
|
133
|
+
onPress={() => handlePress('disabled-outlined')}
|
|
134
|
+
>
|
|
135
|
+
Disabled Outlined
|
|
136
|
+
</Button>
|
|
137
|
+
<Button
|
|
138
|
+
variant="text"
|
|
139
|
+
intent="primary"
|
|
140
|
+
disabled
|
|
141
|
+
onPress={() => handlePress('disabled-text')}
|
|
142
|
+
>
|
|
143
|
+
Disabled Text
|
|
144
|
+
</Button>
|
|
145
|
+
</View>
|
|
146
|
+
</View>
|
|
147
|
+
</View>
|
|
148
|
+
</Screen>
|
|
149
|
+
);
|
|
150
150
|
};
|
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Screen, View, Text, Card, Button } from '../index';
|
|
3
|
-
|
|
4
|
-
export const CardExamples = () => {
|
|
5
|
-
const handleCardPress = (cardType: string) => {
|
|
6
|
-
console.log(`Card pressed: ${cardType}`);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<Screen background="primary" padding="lg">
|
|
11
|
-
<View spacing="none">
|
|
12
|
-
<Text size="large" weight="bold" align="center">
|
|
13
|
-
Card Examples
|
|
14
|
-
</Text>
|
|
15
|
-
|
|
16
|
-
{/* Card Variants */}
|
|
17
|
-
<View spacing="md">
|
|
18
|
-
<Text size="medium" weight="semibold">Variants</Text>
|
|
19
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
20
|
-
<Card variant="default" padding="medium">
|
|
21
|
-
<Text>Default Card</Text>
|
|
22
|
-
<Text size="small" color="secondary">
|
|
23
|
-
This is a default card with standard styling
|
|
24
|
-
</Text>
|
|
25
|
-
</Card>
|
|
26
|
-
|
|
27
|
-
<Card variant="outlined" padding="medium">
|
|
28
|
-
<Text>Outlined Card</Text>
|
|
29
|
-
<Text size="small" color="secondary">
|
|
30
|
-
This is an outlined card with border
|
|
31
|
-
</Text>
|
|
32
|
-
</Card>
|
|
33
|
-
|
|
34
|
-
<Card variant="elevated" padding="medium">
|
|
35
|
-
<Text>Elevated Card</Text>
|
|
36
|
-
<Text size="small" color="secondary">
|
|
37
|
-
This is an elevated card with shadow
|
|
38
|
-
</Text>
|
|
39
|
-
</Card>
|
|
40
|
-
|
|
41
|
-
<Card variant="filled" padding="medium">
|
|
42
|
-
<Text>Filled Card</Text>
|
|
43
|
-
<Text size="small" color="secondary">
|
|
44
|
-
This is a filled card with background
|
|
45
|
-
</Text>
|
|
46
|
-
</Card>
|
|
47
|
-
</View>
|
|
48
|
-
</View>
|
|
49
|
-
|
|
50
|
-
{/* Card Intents */}
|
|
51
|
-
<View spacing="md">
|
|
52
|
-
<Text size="medium" weight="semibold">Intents</Text>
|
|
53
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
54
|
-
<Card intent="neutral" padding="medium" variant="outlined">
|
|
55
|
-
<Text>Neutral Card</Text>
|
|
56
|
-
</Card>
|
|
57
|
-
|
|
58
|
-
<Card intent="primary" padding="medium" variant="outlined">
|
|
59
|
-
<Text>Primary Card</Text>
|
|
60
|
-
</Card>
|
|
61
|
-
|
|
62
|
-
<Card intent="success" padding="medium" variant="outlined">
|
|
63
|
-
<Text>Success Card</Text>
|
|
64
|
-
</Card>
|
|
65
|
-
|
|
66
|
-
<Card intent="error" padding="medium" variant="outlined">
|
|
67
|
-
<Text>Error Card</Text>
|
|
68
|
-
</Card>
|
|
69
|
-
|
|
70
|
-
<Card intent="warning" padding="medium" variant="outlined">
|
|
71
|
-
<Text>Warning Card</Text>
|
|
72
|
-
</Card>
|
|
73
|
-
|
|
74
|
-
<Card intent="info" padding="medium" variant="outlined">
|
|
75
|
-
<Text>Info Card</Text>
|
|
76
|
-
</Card>
|
|
77
|
-
</View>
|
|
78
|
-
</View>
|
|
79
|
-
|
|
80
|
-
{/* Card Padding */}
|
|
81
|
-
<View spacing="md">
|
|
82
|
-
<Text size="medium" weight="semibold">Padding</Text>
|
|
83
|
-
<View spacing="sm">
|
|
84
|
-
<Card padding="none" variant="outlined">
|
|
85
|
-
<Text>No Padding</Text>
|
|
86
|
-
</Card>
|
|
87
|
-
|
|
88
|
-
<Card padding="small" variant="outlined">
|
|
89
|
-
<Text>Small Padding</Text>
|
|
90
|
-
</Card>
|
|
91
|
-
|
|
92
|
-
<Card padding="medium" variant="outlined">
|
|
93
|
-
<Text>Medium Padding</Text>
|
|
94
|
-
</Card>
|
|
95
|
-
|
|
96
|
-
<Card padding="large" variant="outlined">
|
|
97
|
-
<Text>Large Padding</Text>
|
|
98
|
-
</Card>
|
|
99
|
-
</View>
|
|
100
|
-
</View>
|
|
101
|
-
|
|
102
|
-
{/* Card Radius */}
|
|
103
|
-
<View spacing="md">
|
|
104
|
-
<Text size="medium" weight="semibold">Border Radius</Text>
|
|
105
|
-
<View spacing="sm">
|
|
106
|
-
<Card radius="none" variant="outlined" padding="medium">
|
|
107
|
-
<Text>No Radius</Text>
|
|
108
|
-
</Card>
|
|
109
|
-
|
|
110
|
-
<Card radius="small" variant="outlined" padding="medium">
|
|
111
|
-
<Text>Small Radius</Text>
|
|
112
|
-
</Card>
|
|
113
|
-
|
|
114
|
-
<Card radius="medium" variant="outlined" padding="medium">
|
|
115
|
-
<Text>Medium Radius</Text>
|
|
116
|
-
</Card>
|
|
117
|
-
|
|
118
|
-
<Card radius="large" variant="outlined" padding="medium">
|
|
119
|
-
<Text>Large Radius</Text>
|
|
120
|
-
</Card>
|
|
121
|
-
</View>
|
|
122
|
-
</View>
|
|
123
|
-
|
|
124
|
-
{/* Clickable Cards */}
|
|
125
|
-
<View spacing="md">
|
|
126
|
-
<Text size="medium" weight="semibold">Interactive Cards</Text>
|
|
127
|
-
<View spacing="sm">
|
|
128
|
-
<Card
|
|
129
|
-
clickable
|
|
130
|
-
onPress={() => handleCardPress('clickable')}
|
|
131
|
-
variant="outlined"
|
|
132
|
-
padding="medium"
|
|
133
|
-
>
|
|
134
|
-
<Text weight="semibold">Clickable Card</Text>
|
|
135
|
-
<Text size="small" color="secondary">
|
|
136
|
-
Click me to see interaction
|
|
137
|
-
</Text>
|
|
138
|
-
</Card>
|
|
139
|
-
|
|
140
|
-
<Card
|
|
141
|
-
clickable
|
|
142
|
-
disabled
|
|
143
|
-
onPress={() => handleCardPress('disabled')}
|
|
144
|
-
variant="outlined"
|
|
145
|
-
padding="medium"
|
|
146
|
-
>
|
|
147
|
-
<Text weight="semibold">Disabled Card</Text>
|
|
148
|
-
<Text size="small" color="secondary">
|
|
149
|
-
This card is disabled
|
|
150
|
-
</Text>
|
|
151
|
-
</Card>
|
|
152
|
-
</View>
|
|
153
|
-
</View>
|
|
154
|
-
|
|
155
|
-
{/* Complex Card Layout */}
|
|
156
|
-
<View spacing="md">
|
|
157
|
-
<Text size="medium" weight="semibold">Complex Layout</Text>
|
|
158
|
-
<Card variant="elevated" padding="large" radius="medium">
|
|
159
|
-
<Text size="large" weight="bold">Product Card</Text>
|
|
160
|
-
<Text size="small" color="secondary" style={{ marginVertical: 8 }}>
|
|
161
|
-
This is a more complex card layout with multiple elements
|
|
162
|
-
</Text>
|
|
163
|
-
<View style={{ flexDirection: 'row', gap: 8, marginTop: 12 }}>
|
|
164
|
-
<Button size="small" variant="contained" intent="primary">
|
|
165
|
-
Buy Now
|
|
166
|
-
</Button>
|
|
167
|
-
<Button size="small" variant="outlined" intent="neutral">
|
|
168
|
-
Add to Cart
|
|
169
|
-
</Button>
|
|
170
|
-
</View>
|
|
171
|
-
</Card>
|
|
172
|
-
</View>
|
|
173
|
-
</View>
|
|
174
|
-
</Screen>
|
|
175
|
-
);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Screen, View, Text, Card, Button } from '../index';
|
|
3
|
+
|
|
4
|
+
export const CardExamples = () => {
|
|
5
|
+
const handleCardPress = (cardType: string) => {
|
|
6
|
+
console.log(`Card pressed: ${cardType}`);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<Screen background="primary" padding="lg">
|
|
11
|
+
<View spacing="none">
|
|
12
|
+
<Text size="large" weight="bold" align="center">
|
|
13
|
+
Card Examples
|
|
14
|
+
</Text>
|
|
15
|
+
|
|
16
|
+
{/* Card Variants */}
|
|
17
|
+
<View spacing="md">
|
|
18
|
+
<Text size="medium" weight="semibold">Variants</Text>
|
|
19
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
20
|
+
<Card variant="default" padding="medium">
|
|
21
|
+
<Text>Default Card</Text>
|
|
22
|
+
<Text size="small" color="secondary">
|
|
23
|
+
This is a default card with standard styling
|
|
24
|
+
</Text>
|
|
25
|
+
</Card>
|
|
26
|
+
|
|
27
|
+
<Card variant="outlined" padding="medium">
|
|
28
|
+
<Text>Outlined Card</Text>
|
|
29
|
+
<Text size="small" color="secondary">
|
|
30
|
+
This is an outlined card with border
|
|
31
|
+
</Text>
|
|
32
|
+
</Card>
|
|
33
|
+
|
|
34
|
+
<Card variant="elevated" padding="medium">
|
|
35
|
+
<Text>Elevated Card</Text>
|
|
36
|
+
<Text size="small" color="secondary">
|
|
37
|
+
This is an elevated card with shadow
|
|
38
|
+
</Text>
|
|
39
|
+
</Card>
|
|
40
|
+
|
|
41
|
+
<Card variant="filled" padding="medium">
|
|
42
|
+
<Text>Filled Card</Text>
|
|
43
|
+
<Text size="small" color="secondary">
|
|
44
|
+
This is a filled card with background
|
|
45
|
+
</Text>
|
|
46
|
+
</Card>
|
|
47
|
+
</View>
|
|
48
|
+
</View>
|
|
49
|
+
|
|
50
|
+
{/* Card Intents */}
|
|
51
|
+
<View spacing="md">
|
|
52
|
+
<Text size="medium" weight="semibold">Intents</Text>
|
|
53
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
54
|
+
<Card intent="neutral" padding="medium" variant="outlined">
|
|
55
|
+
<Text>Neutral Card</Text>
|
|
56
|
+
</Card>
|
|
57
|
+
|
|
58
|
+
<Card intent="primary" padding="medium" variant="outlined">
|
|
59
|
+
<Text>Primary Card</Text>
|
|
60
|
+
</Card>
|
|
61
|
+
|
|
62
|
+
<Card intent="success" padding="medium" variant="outlined">
|
|
63
|
+
<Text>Success Card</Text>
|
|
64
|
+
</Card>
|
|
65
|
+
|
|
66
|
+
<Card intent="error" padding="medium" variant="outlined">
|
|
67
|
+
<Text>Error Card</Text>
|
|
68
|
+
</Card>
|
|
69
|
+
|
|
70
|
+
<Card intent="warning" padding="medium" variant="outlined">
|
|
71
|
+
<Text>Warning Card</Text>
|
|
72
|
+
</Card>
|
|
73
|
+
|
|
74
|
+
<Card intent="info" padding="medium" variant="outlined">
|
|
75
|
+
<Text>Info Card</Text>
|
|
76
|
+
</Card>
|
|
77
|
+
</View>
|
|
78
|
+
</View>
|
|
79
|
+
|
|
80
|
+
{/* Card Padding */}
|
|
81
|
+
<View spacing="md">
|
|
82
|
+
<Text size="medium" weight="semibold">Padding</Text>
|
|
83
|
+
<View spacing="sm">
|
|
84
|
+
<Card padding="none" variant="outlined">
|
|
85
|
+
<Text>No Padding</Text>
|
|
86
|
+
</Card>
|
|
87
|
+
|
|
88
|
+
<Card padding="small" variant="outlined">
|
|
89
|
+
<Text>Small Padding</Text>
|
|
90
|
+
</Card>
|
|
91
|
+
|
|
92
|
+
<Card padding="medium" variant="outlined">
|
|
93
|
+
<Text>Medium Padding</Text>
|
|
94
|
+
</Card>
|
|
95
|
+
|
|
96
|
+
<Card padding="large" variant="outlined">
|
|
97
|
+
<Text>Large Padding</Text>
|
|
98
|
+
</Card>
|
|
99
|
+
</View>
|
|
100
|
+
</View>
|
|
101
|
+
|
|
102
|
+
{/* Card Radius */}
|
|
103
|
+
<View spacing="md">
|
|
104
|
+
<Text size="medium" weight="semibold">Border Radius</Text>
|
|
105
|
+
<View spacing="sm">
|
|
106
|
+
<Card radius="none" variant="outlined" padding="medium">
|
|
107
|
+
<Text>No Radius</Text>
|
|
108
|
+
</Card>
|
|
109
|
+
|
|
110
|
+
<Card radius="small" variant="outlined" padding="medium">
|
|
111
|
+
<Text>Small Radius</Text>
|
|
112
|
+
</Card>
|
|
113
|
+
|
|
114
|
+
<Card radius="medium" variant="outlined" padding="medium">
|
|
115
|
+
<Text>Medium Radius</Text>
|
|
116
|
+
</Card>
|
|
117
|
+
|
|
118
|
+
<Card radius="large" variant="outlined" padding="medium">
|
|
119
|
+
<Text>Large Radius</Text>
|
|
120
|
+
</Card>
|
|
121
|
+
</View>
|
|
122
|
+
</View>
|
|
123
|
+
|
|
124
|
+
{/* Clickable Cards */}
|
|
125
|
+
<View spacing="md">
|
|
126
|
+
<Text size="medium" weight="semibold">Interactive Cards</Text>
|
|
127
|
+
<View spacing="sm">
|
|
128
|
+
<Card
|
|
129
|
+
clickable
|
|
130
|
+
onPress={() => handleCardPress('clickable')}
|
|
131
|
+
variant="outlined"
|
|
132
|
+
padding="medium"
|
|
133
|
+
>
|
|
134
|
+
<Text weight="semibold">Clickable Card</Text>
|
|
135
|
+
<Text size="small" color="secondary">
|
|
136
|
+
Click me to see interaction
|
|
137
|
+
</Text>
|
|
138
|
+
</Card>
|
|
139
|
+
|
|
140
|
+
<Card
|
|
141
|
+
clickable
|
|
142
|
+
disabled
|
|
143
|
+
onPress={() => handleCardPress('disabled')}
|
|
144
|
+
variant="outlined"
|
|
145
|
+
padding="medium"
|
|
146
|
+
>
|
|
147
|
+
<Text weight="semibold">Disabled Card</Text>
|
|
148
|
+
<Text size="small" color="secondary">
|
|
149
|
+
This card is disabled
|
|
150
|
+
</Text>
|
|
151
|
+
</Card>
|
|
152
|
+
</View>
|
|
153
|
+
</View>
|
|
154
|
+
|
|
155
|
+
{/* Complex Card Layout */}
|
|
156
|
+
<View spacing="md">
|
|
157
|
+
<Text size="medium" weight="semibold">Complex Layout</Text>
|
|
158
|
+
<Card variant="elevated" padding="large" radius="medium">
|
|
159
|
+
<Text size="large" weight="bold">Product Card</Text>
|
|
160
|
+
<Text size="small" color="secondary" style={{ marginVertical: 8 }}>
|
|
161
|
+
This is a more complex card layout with multiple elements
|
|
162
|
+
</Text>
|
|
163
|
+
<View style={{ flexDirection: 'row', gap: 8, marginTop: 12 }}>
|
|
164
|
+
<Button size="small" variant="contained" intent="primary">
|
|
165
|
+
Buy Now
|
|
166
|
+
</Button>
|
|
167
|
+
<Button size="small" variant="outlined" intent="neutral">
|
|
168
|
+
Add to Cart
|
|
169
|
+
</Button>
|
|
170
|
+
</View>
|
|
171
|
+
</Card>
|
|
172
|
+
</View>
|
|
173
|
+
</View>
|
|
174
|
+
</Screen>
|
|
175
|
+
);
|
|
176
176
|
};
|