@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.
Files changed (110) hide show
  1. package/README.md +567 -567
  2. package/package.json +2 -2
  3. package/plugin/web.js +319 -185
  4. package/src/Avatar/Avatar.native.tsx +43 -43
  5. package/src/Avatar/Avatar.styles.tsx +66 -66
  6. package/src/Avatar/Avatar.web.tsx +50 -50
  7. package/src/Avatar/index.native.ts +1 -1
  8. package/src/Avatar/index.ts +1 -1
  9. package/src/Avatar/index.web.ts +1 -1
  10. package/src/Avatar/types.ts +42 -42
  11. package/src/Badge/Badge.native.tsx +42 -42
  12. package/src/Badge/Badge.styles.tsx +153 -153
  13. package/src/Badge/Badge.web.tsx +44 -44
  14. package/src/Badge/index.native.ts +1 -1
  15. package/src/Badge/index.ts +1 -1
  16. package/src/Badge/index.web.ts +1 -1
  17. package/src/Badge/types.ts +33 -33
  18. package/src/Button/Button.native.tsx +38 -38
  19. package/src/Button/Button.styles.tsx +214 -214
  20. package/src/Button/Button.types.ts +11 -11
  21. package/src/Button/Button.web.tsx +55 -55
  22. package/src/Button/index.native.ts +2 -2
  23. package/src/Button/index.ts +4 -4
  24. package/src/Button/index.web.ts +2 -2
  25. package/src/Button/types.ts +48 -48
  26. package/src/Card/Card.native.tsx +51 -51
  27. package/src/Card/Card.styles.tsx +239 -239
  28. package/src/Card/Card.web.tsx +61 -61
  29. package/src/Card/index.native.ts +2 -2
  30. package/src/Card/index.ts +4 -4
  31. package/src/Card/index.web.ts +2 -2
  32. package/src/Card/types.ts +58 -58
  33. package/src/Checkbox/Checkbox.native.tsx +98 -98
  34. package/src/Checkbox/Checkbox.styles.tsx +291 -291
  35. package/src/Checkbox/Checkbox.web.tsx +130 -130
  36. package/src/Checkbox/index.native.ts +2 -2
  37. package/src/Checkbox/index.ts +4 -4
  38. package/src/Checkbox/index.web.ts +2 -2
  39. package/src/Checkbox/types.ts +78 -78
  40. package/src/Divider/Divider.native.tsx +144 -144
  41. package/src/Divider/Divider.styles.tsx +601 -601
  42. package/src/Divider/Divider.web.tsx +72 -72
  43. package/src/Divider/index.native.ts +2 -2
  44. package/src/Divider/index.ts +4 -4
  45. package/src/Divider/index.web.ts +2 -2
  46. package/src/Divider/types.ts +53 -53
  47. package/src/Icon/Icon.native.tsx +38 -38
  48. package/src/Icon/Icon.styles.tsx +49 -49
  49. package/src/Icon/Icon.web.tsx +46 -46
  50. package/src/Icon/icon-types.ts +7452 -7452
  51. package/src/Icon/index.native.ts +2 -2
  52. package/src/Icon/index.ts +4 -4
  53. package/src/Icon/index.web.ts +2 -2
  54. package/src/Icon/types.ts +35 -35
  55. package/src/Input/Input.native.tsx +74 -74
  56. package/src/Input/Input.styles.tsx +176 -176
  57. package/src/Input/Input.web.tsx +70 -70
  58. package/src/Input/index.native.ts +2 -2
  59. package/src/Input/index.ts +4 -4
  60. package/src/Input/index.web.ts +2 -2
  61. package/src/Input/types.ts +68 -68
  62. package/src/Screen/Screen.native.tsx +40 -40
  63. package/src/Screen/Screen.styles.tsx +59 -59
  64. package/src/Screen/Screen.web.tsx +32 -32
  65. package/src/Screen/index.native.ts +1 -1
  66. package/src/Screen/index.ts +1 -1
  67. package/src/Screen/index.web.ts +1 -1
  68. package/src/Screen/types.ts +37 -37
  69. package/src/Text/Text.native.tsx +35 -35
  70. package/src/Text/Text.styles.tsx +66 -66
  71. package/src/Text/Text.web.tsx +40 -40
  72. package/src/Text/index.native.ts +2 -2
  73. package/src/Text/index.ts +4 -4
  74. package/src/Text/index.web.ts +2 -2
  75. package/src/Text/types.ts +38 -38
  76. package/src/View/View.native.tsx +55 -55
  77. package/src/View/View.styles.tsx +102 -102
  78. package/src/View/View.web.tsx +59 -59
  79. package/src/View/index.native.ts +2 -2
  80. package/src/View/index.ts +4 -4
  81. package/src/View/index.web.ts +2 -2
  82. package/src/View/types.ts +72 -72
  83. package/src/examples/AllExamples.tsx +71 -71
  84. package/src/examples/AvatarExamples.tsx +96 -96
  85. package/src/examples/BadgeExamples.tsx +199 -199
  86. package/src/examples/ButtonExamples.tsx +149 -149
  87. package/src/examples/CardExamples.tsx +175 -175
  88. package/src/examples/CheckboxExamples.tsx +216 -216
  89. package/src/examples/DividerExamples.tsx +217 -217
  90. package/src/examples/IconExamples.tsx +341 -341
  91. package/src/examples/InputExamples.tsx +133 -133
  92. package/src/examples/README.md +135 -135
  93. package/src/examples/ScreenExamples.tsx +153 -153
  94. package/src/examples/TextExamples.tsx +88 -88
  95. package/src/examples/ThemeExtensionExamples.tsx +90 -90
  96. package/src/examples/ValidationExamples.tsx +94 -94
  97. package/src/examples/ViewExamples.tsx +128 -128
  98. package/src/examples/extendedTheme.ts +328 -328
  99. package/src/examples/index.ts +14 -14
  100. package/src/index.native.ts +48 -48
  101. package/src/index.ts +47 -47
  102. package/src/theme/breakpoints.ts +8 -8
  103. package/src/theme/colorResolver.ts +217 -217
  104. package/src/theme/colors.ts +314 -314
  105. package/src/theme/defaultThemes.ts +325 -325
  106. package/src/theme/index.ts +187 -187
  107. package/src/theme/themeBuilder.ts +601 -601
  108. package/src/theme/unistyles.d.ts +5 -5
  109. package/src/theme/variantHelpers.ts +583 -583
  110. 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
  };