@idealyst/components 1.0.24 → 1.0.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.
- 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,134 +1,134 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { Screen, View, Text, Input } from '../index';
|
|
3
|
-
|
|
4
|
-
export const InputExamples = () => {
|
|
5
|
-
const [textValue, setTextValue] = useState('');
|
|
6
|
-
const [emailValue, setEmailValue] = useState('');
|
|
7
|
-
const [passwordValue, setPasswordValue] = useState('');
|
|
8
|
-
const [numberValue, setNumberValue] = useState('');
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<Screen background="primary" padding="lg">
|
|
12
|
-
<View spacing="none">
|
|
13
|
-
<Text size="large" weight="bold" align="center">
|
|
14
|
-
Input Examples
|
|
15
|
-
</Text>
|
|
16
|
-
|
|
17
|
-
{/* Input Types */}
|
|
18
|
-
<View spacing="md">
|
|
19
|
-
<Text size="medium" weight="semibold">Input Types</Text>
|
|
20
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
21
|
-
<Input
|
|
22
|
-
value={textValue}
|
|
23
|
-
onChangeText={setTextValue}
|
|
24
|
-
placeholder="Text input"
|
|
25
|
-
inputType="text"
|
|
26
|
-
/>
|
|
27
|
-
<Input
|
|
28
|
-
value={emailValue}
|
|
29
|
-
onChangeText={setEmailValue}
|
|
30
|
-
placeholder="Email input"
|
|
31
|
-
inputType="email"
|
|
32
|
-
/>
|
|
33
|
-
<Input
|
|
34
|
-
value={passwordValue}
|
|
35
|
-
onChangeText={setPasswordValue}
|
|
36
|
-
placeholder="Password input"
|
|
37
|
-
inputType="password"
|
|
38
|
-
secureTextEntry
|
|
39
|
-
/>
|
|
40
|
-
<Input
|
|
41
|
-
value={numberValue}
|
|
42
|
-
onChangeText={setNumberValue}
|
|
43
|
-
placeholder="Number input"
|
|
44
|
-
inputType="number"
|
|
45
|
-
/>
|
|
46
|
-
</View>
|
|
47
|
-
</View>
|
|
48
|
-
|
|
49
|
-
{/* Input Sizes */}
|
|
50
|
-
<View spacing="md">
|
|
51
|
-
<Text size="medium" weight="semibold">Sizes</Text>
|
|
52
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
53
|
-
<Input
|
|
54
|
-
placeholder="Small input"
|
|
55
|
-
size="small"
|
|
56
|
-
/>
|
|
57
|
-
<Input
|
|
58
|
-
placeholder="Medium input"
|
|
59
|
-
size="medium"
|
|
60
|
-
/>
|
|
61
|
-
<Input
|
|
62
|
-
placeholder="Large input"
|
|
63
|
-
size="large"
|
|
64
|
-
/>
|
|
65
|
-
</View>
|
|
66
|
-
</View>
|
|
67
|
-
|
|
68
|
-
{/* Input Variants */}
|
|
69
|
-
<View spacing="md">
|
|
70
|
-
<Text size="medium" weight="semibold">Variants</Text>
|
|
71
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
72
|
-
<Input
|
|
73
|
-
placeholder="Default variant"
|
|
74
|
-
variant="default"
|
|
75
|
-
/>
|
|
76
|
-
<Input
|
|
77
|
-
placeholder="Outlined variant"
|
|
78
|
-
variant="outlined"
|
|
79
|
-
/>
|
|
80
|
-
<Input
|
|
81
|
-
placeholder="Filled variant"
|
|
82
|
-
variant="filled"
|
|
83
|
-
/>
|
|
84
|
-
</View>
|
|
85
|
-
</View>
|
|
86
|
-
|
|
87
|
-
{/* Input States */}
|
|
88
|
-
<View spacing="md">
|
|
89
|
-
<Text size="medium" weight="semibold">States</Text>
|
|
90
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
91
|
-
<Input
|
|
92
|
-
placeholder="Normal state"
|
|
93
|
-
/>
|
|
94
|
-
<Input
|
|
95
|
-
placeholder="Disabled state"
|
|
96
|
-
disabled
|
|
97
|
-
/>
|
|
98
|
-
<Input
|
|
99
|
-
placeholder="Error state"
|
|
100
|
-
hasError
|
|
101
|
-
/>
|
|
102
|
-
<Input
|
|
103
|
-
value="Pre-filled value"
|
|
104
|
-
onChangeText={() => {}}
|
|
105
|
-
/>
|
|
106
|
-
</View>
|
|
107
|
-
</View>
|
|
108
|
-
|
|
109
|
-
{/* Auto-capitalization Examples */}
|
|
110
|
-
<View spacing="md">
|
|
111
|
-
<Text size="medium" weight="semibold">Auto-capitalization</Text>
|
|
112
|
-
<View spacing="sm" style={{ gap: 10 }}>
|
|
113
|
-
<Input
|
|
114
|
-
placeholder="No capitalization"
|
|
115
|
-
autoCapitalize="none"
|
|
116
|
-
/>
|
|
117
|
-
<Input
|
|
118
|
-
placeholder="Sentences capitalization"
|
|
119
|
-
autoCapitalize="sentences"
|
|
120
|
-
/>
|
|
121
|
-
<Input
|
|
122
|
-
placeholder="Words capitalization"
|
|
123
|
-
autoCapitalize="words"
|
|
124
|
-
/>
|
|
125
|
-
<Input
|
|
126
|
-
placeholder="Characters capitalization"
|
|
127
|
-
autoCapitalize="characters"
|
|
128
|
-
/>
|
|
129
|
-
</View>
|
|
130
|
-
</View>
|
|
131
|
-
</View>
|
|
132
|
-
</Screen>
|
|
133
|
-
);
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Screen, View, Text, Input } from '../index';
|
|
3
|
+
|
|
4
|
+
export const InputExamples = () => {
|
|
5
|
+
const [textValue, setTextValue] = useState('');
|
|
6
|
+
const [emailValue, setEmailValue] = useState('');
|
|
7
|
+
const [passwordValue, setPasswordValue] = useState('');
|
|
8
|
+
const [numberValue, setNumberValue] = useState('');
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Screen background="primary" padding="lg">
|
|
12
|
+
<View spacing="none">
|
|
13
|
+
<Text size="large" weight="bold" align="center">
|
|
14
|
+
Input Examples
|
|
15
|
+
</Text>
|
|
16
|
+
|
|
17
|
+
{/* Input Types */}
|
|
18
|
+
<View spacing="md">
|
|
19
|
+
<Text size="medium" weight="semibold">Input Types</Text>
|
|
20
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
21
|
+
<Input
|
|
22
|
+
value={textValue}
|
|
23
|
+
onChangeText={setTextValue}
|
|
24
|
+
placeholder="Text input"
|
|
25
|
+
inputType="text"
|
|
26
|
+
/>
|
|
27
|
+
<Input
|
|
28
|
+
value={emailValue}
|
|
29
|
+
onChangeText={setEmailValue}
|
|
30
|
+
placeholder="Email input"
|
|
31
|
+
inputType="email"
|
|
32
|
+
/>
|
|
33
|
+
<Input
|
|
34
|
+
value={passwordValue}
|
|
35
|
+
onChangeText={setPasswordValue}
|
|
36
|
+
placeholder="Password input"
|
|
37
|
+
inputType="password"
|
|
38
|
+
secureTextEntry
|
|
39
|
+
/>
|
|
40
|
+
<Input
|
|
41
|
+
value={numberValue}
|
|
42
|
+
onChangeText={setNumberValue}
|
|
43
|
+
placeholder="Number input"
|
|
44
|
+
inputType="number"
|
|
45
|
+
/>
|
|
46
|
+
</View>
|
|
47
|
+
</View>
|
|
48
|
+
|
|
49
|
+
{/* Input Sizes */}
|
|
50
|
+
<View spacing="md">
|
|
51
|
+
<Text size="medium" weight="semibold">Sizes</Text>
|
|
52
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
53
|
+
<Input
|
|
54
|
+
placeholder="Small input"
|
|
55
|
+
size="small"
|
|
56
|
+
/>
|
|
57
|
+
<Input
|
|
58
|
+
placeholder="Medium input"
|
|
59
|
+
size="medium"
|
|
60
|
+
/>
|
|
61
|
+
<Input
|
|
62
|
+
placeholder="Large input"
|
|
63
|
+
size="large"
|
|
64
|
+
/>
|
|
65
|
+
</View>
|
|
66
|
+
</View>
|
|
67
|
+
|
|
68
|
+
{/* Input Variants */}
|
|
69
|
+
<View spacing="md">
|
|
70
|
+
<Text size="medium" weight="semibold">Variants</Text>
|
|
71
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
72
|
+
<Input
|
|
73
|
+
placeholder="Default variant"
|
|
74
|
+
variant="default"
|
|
75
|
+
/>
|
|
76
|
+
<Input
|
|
77
|
+
placeholder="Outlined variant"
|
|
78
|
+
variant="outlined"
|
|
79
|
+
/>
|
|
80
|
+
<Input
|
|
81
|
+
placeholder="Filled variant"
|
|
82
|
+
variant="filled"
|
|
83
|
+
/>
|
|
84
|
+
</View>
|
|
85
|
+
</View>
|
|
86
|
+
|
|
87
|
+
{/* Input States */}
|
|
88
|
+
<View spacing="md">
|
|
89
|
+
<Text size="medium" weight="semibold">States</Text>
|
|
90
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
91
|
+
<Input
|
|
92
|
+
placeholder="Normal state"
|
|
93
|
+
/>
|
|
94
|
+
<Input
|
|
95
|
+
placeholder="Disabled state"
|
|
96
|
+
disabled
|
|
97
|
+
/>
|
|
98
|
+
<Input
|
|
99
|
+
placeholder="Error state"
|
|
100
|
+
hasError
|
|
101
|
+
/>
|
|
102
|
+
<Input
|
|
103
|
+
value="Pre-filled value"
|
|
104
|
+
onChangeText={() => {}}
|
|
105
|
+
/>
|
|
106
|
+
</View>
|
|
107
|
+
</View>
|
|
108
|
+
|
|
109
|
+
{/* Auto-capitalization Examples */}
|
|
110
|
+
<View spacing="md">
|
|
111
|
+
<Text size="medium" weight="semibold">Auto-capitalization</Text>
|
|
112
|
+
<View spacing="sm" style={{ gap: 10 }}>
|
|
113
|
+
<Input
|
|
114
|
+
placeholder="No capitalization"
|
|
115
|
+
autoCapitalize="none"
|
|
116
|
+
/>
|
|
117
|
+
<Input
|
|
118
|
+
placeholder="Sentences capitalization"
|
|
119
|
+
autoCapitalize="sentences"
|
|
120
|
+
/>
|
|
121
|
+
<Input
|
|
122
|
+
placeholder="Words capitalization"
|
|
123
|
+
autoCapitalize="words"
|
|
124
|
+
/>
|
|
125
|
+
<Input
|
|
126
|
+
placeholder="Characters capitalization"
|
|
127
|
+
autoCapitalize="characters"
|
|
128
|
+
/>
|
|
129
|
+
</View>
|
|
130
|
+
</View>
|
|
131
|
+
</View>
|
|
132
|
+
</Screen>
|
|
133
|
+
);
|
|
134
134
|
};
|
package/src/examples/README.md
CHANGED
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
# Component Examples
|
|
2
|
-
|
|
3
|
-
This directory contains comprehensive examples showcasing all components from the Idealyst component library. Each example demonstrates the various props, variants, and use cases for each component.
|
|
4
|
-
|
|
5
|
-
## Available Examples
|
|
6
|
-
|
|
7
|
-
### Individual Component Examples
|
|
8
|
-
- **ButtonExamples**: Demonstrates all button variants, sizes, intents, and states
|
|
9
|
-
- **TextExamples**: Shows text sizes, weights, colors, and alignment options
|
|
10
|
-
- **ViewExamples**: Displays layout capabilities with spacing, backgrounds, and borders
|
|
11
|
-
- **InputExamples**: Covers input types, sizes, variants, and states
|
|
12
|
-
- **CardExamples**: Showcases card layouts, variants, intents, and interactive features
|
|
13
|
-
- **CheckboxExamples**: Demonstrates checkbox states, sizes, intents, and custom content
|
|
14
|
-
- **DividerExamples**: Shows divider orientations, variants, and styling options
|
|
15
|
-
- **BadgeExamples**: Displays badge variants, intents, and use cases
|
|
16
|
-
- **AvatarExamples**: Demonstrates avatar sizes, shapes, and fallback options
|
|
17
|
-
|
|
18
|
-
### Master Example
|
|
19
|
-
- **AllExamples**: A comprehensive showcase of all components in one scrollable view
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
### Import Individual Examples
|
|
24
|
-
```typescript
|
|
25
|
-
import { ButtonExamples, TextExamples, CardExamples } from '@idealyst/components/examples';
|
|
26
|
-
|
|
27
|
-
// Use in your component
|
|
28
|
-
<ButtonExamples />
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Import All Examples
|
|
32
|
-
```typescript
|
|
33
|
-
import { AllExamples } from '@idealyst/components/examples';
|
|
34
|
-
|
|
35
|
-
// Display all examples at once
|
|
36
|
-
<AllExamples />
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Example Structure
|
|
40
|
-
|
|
41
|
-
Each example component follows this structure:
|
|
42
|
-
- **Header**: Component name and description
|
|
43
|
-
- **Grouped Sections**: Related variants and properties
|
|
44
|
-
- **Interactive Elements**: Demonstrating user interactions
|
|
45
|
-
- **Edge Cases**: Disabled states, error states, etc.
|
|
46
|
-
- **Real-world Usage**: Practical implementation examples
|
|
47
|
-
|
|
48
|
-
## Features Demonstrated
|
|
49
|
-
|
|
50
|
-
### Button Examples
|
|
51
|
-
- Variants: contained, outlined, text
|
|
52
|
-
- Sizes: small, medium, large
|
|
53
|
-
- Intents: primary, neutral, success, error, warning
|
|
54
|
-
- States: normal, disabled
|
|
55
|
-
|
|
56
|
-
### Text Examples
|
|
57
|
-
- Sizes: small, medium, large, xlarge
|
|
58
|
-
- Weights: light, normal, medium, semibold, bold
|
|
59
|
-
- Colors: primary, secondary, success, warning, error
|
|
60
|
-
- Alignment: left, center, right
|
|
61
|
-
|
|
62
|
-
### View Examples
|
|
63
|
-
- Spacing: none, xs, sm, md, lg, xl
|
|
64
|
-
- Backgrounds: transparent, surface, primary, secondary
|
|
65
|
-
- Border radius: none, xs, sm, md, lg, xl
|
|
66
|
-
- Borders: none, thin, thick
|
|
67
|
-
- Layout patterns: flex layouts, positioning
|
|
68
|
-
|
|
69
|
-
### Input Examples
|
|
70
|
-
- Types: text, email, password, number
|
|
71
|
-
- Sizes: small, medium, large
|
|
72
|
-
- Variants: default, outlined, filled
|
|
73
|
-
- States: normal, disabled, error, pre-filled
|
|
74
|
-
- Auto-capitalization: none, sentences, words, characters
|
|
75
|
-
|
|
76
|
-
### Card Examples
|
|
77
|
-
- Variants: default, outlined, elevated, filled
|
|
78
|
-
- Intents: neutral, primary, success, error, warning, info
|
|
79
|
-
- Padding: none, small, medium, large
|
|
80
|
-
- Radius: none, small, medium, large
|
|
81
|
-
- Interactive: clickable, disabled states
|
|
82
|
-
- Complex layouts: multi-element cards
|
|
83
|
-
|
|
84
|
-
### Checkbox Examples
|
|
85
|
-
- Basic states: checked, unchecked, indeterminate
|
|
86
|
-
- Sizes: small, medium, large
|
|
87
|
-
- Intents: primary, neutral, success, error, warning, info
|
|
88
|
-
- Variants: default, outlined
|
|
89
|
-
- States: normal, disabled
|
|
90
|
-
- Custom content: complex labels, helper text, errors
|
|
91
|
-
|
|
92
|
-
### Divider Examples
|
|
93
|
-
- Orientations: horizontal, vertical
|
|
94
|
-
- Variants: solid, dashed, dotted
|
|
95
|
-
- Thickness: thin, medium, thick
|
|
96
|
-
- Intents: primary, secondary, neutral, success, error, warning, info
|
|
97
|
-
- Spacing: none, small, medium, large
|
|
98
|
-
- With content: text labels, sections
|
|
99
|
-
|
|
100
|
-
### Badge Examples
|
|
101
|
-
- Variants: filled, outlined, dot
|
|
102
|
-
- Sizes: small, medium, large
|
|
103
|
-
- Intents: primary, success, error, warning, neutral, info
|
|
104
|
-
- Use cases: numbers, status, categories, notifications
|
|
105
|
-
|
|
106
|
-
### Avatar Examples
|
|
107
|
-
- Sizes: small, medium, large, xlarge
|
|
108
|
-
- Shapes: circle, square
|
|
109
|
-
- Fallbacks: initials, placeholder text
|
|
110
|
-
- Images: with proper fallbacks
|
|
111
|
-
- Groups: overlapping avatars
|
|
112
|
-
|
|
113
|
-
## Best Practices
|
|
114
|
-
|
|
115
|
-
1. **Interactive Testing**: All examples include interactive elements to test functionality
|
|
116
|
-
2. **Accessibility**: Examples demonstrate proper labeling and accessibility features
|
|
117
|
-
3. **Responsive Design**: Components adapt to different screen sizes
|
|
118
|
-
4. **Theme Integration**: All examples use the theme system properly
|
|
119
|
-
5. **Real-world Context**: Examples show practical usage scenarios
|
|
120
|
-
|
|
121
|
-
## Development Notes
|
|
122
|
-
|
|
123
|
-
- Examples are built using the same components they demonstrate
|
|
124
|
-
- All examples use TypeScript for type safety
|
|
125
|
-
- Components follow the established design system patterns
|
|
126
|
-
- Examples are optimized for both web and native platforms
|
|
127
|
-
|
|
128
|
-
## Contributing
|
|
129
|
-
|
|
130
|
-
When adding new components:
|
|
131
|
-
1. Create a new example file: `ComponentNameExamples.tsx`
|
|
132
|
-
2. Follow the established pattern of grouped sections
|
|
133
|
-
3. Include all variants, sizes, and states
|
|
134
|
-
4. Add interactive elements where applicable
|
|
135
|
-
5. Export the component in `index.ts`
|
|
1
|
+
# Component Examples
|
|
2
|
+
|
|
3
|
+
This directory contains comprehensive examples showcasing all components from the Idealyst component library. Each example demonstrates the various props, variants, and use cases for each component.
|
|
4
|
+
|
|
5
|
+
## Available Examples
|
|
6
|
+
|
|
7
|
+
### Individual Component Examples
|
|
8
|
+
- **ButtonExamples**: Demonstrates all button variants, sizes, intents, and states
|
|
9
|
+
- **TextExamples**: Shows text sizes, weights, colors, and alignment options
|
|
10
|
+
- **ViewExamples**: Displays layout capabilities with spacing, backgrounds, and borders
|
|
11
|
+
- **InputExamples**: Covers input types, sizes, variants, and states
|
|
12
|
+
- **CardExamples**: Showcases card layouts, variants, intents, and interactive features
|
|
13
|
+
- **CheckboxExamples**: Demonstrates checkbox states, sizes, intents, and custom content
|
|
14
|
+
- **DividerExamples**: Shows divider orientations, variants, and styling options
|
|
15
|
+
- **BadgeExamples**: Displays badge variants, intents, and use cases
|
|
16
|
+
- **AvatarExamples**: Demonstrates avatar sizes, shapes, and fallback options
|
|
17
|
+
|
|
18
|
+
### Master Example
|
|
19
|
+
- **AllExamples**: A comprehensive showcase of all components in one scrollable view
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
### Import Individual Examples
|
|
24
|
+
```typescript
|
|
25
|
+
import { ButtonExamples, TextExamples, CardExamples } from '@idealyst/components/examples';
|
|
26
|
+
|
|
27
|
+
// Use in your component
|
|
28
|
+
<ButtonExamples />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Import All Examples
|
|
32
|
+
```typescript
|
|
33
|
+
import { AllExamples } from '@idealyst/components/examples';
|
|
34
|
+
|
|
35
|
+
// Display all examples at once
|
|
36
|
+
<AllExamples />
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Example Structure
|
|
40
|
+
|
|
41
|
+
Each example component follows this structure:
|
|
42
|
+
- **Header**: Component name and description
|
|
43
|
+
- **Grouped Sections**: Related variants and properties
|
|
44
|
+
- **Interactive Elements**: Demonstrating user interactions
|
|
45
|
+
- **Edge Cases**: Disabled states, error states, etc.
|
|
46
|
+
- **Real-world Usage**: Practical implementation examples
|
|
47
|
+
|
|
48
|
+
## Features Demonstrated
|
|
49
|
+
|
|
50
|
+
### Button Examples
|
|
51
|
+
- Variants: contained, outlined, text
|
|
52
|
+
- Sizes: small, medium, large
|
|
53
|
+
- Intents: primary, neutral, success, error, warning
|
|
54
|
+
- States: normal, disabled
|
|
55
|
+
|
|
56
|
+
### Text Examples
|
|
57
|
+
- Sizes: small, medium, large, xlarge
|
|
58
|
+
- Weights: light, normal, medium, semibold, bold
|
|
59
|
+
- Colors: primary, secondary, success, warning, error
|
|
60
|
+
- Alignment: left, center, right
|
|
61
|
+
|
|
62
|
+
### View Examples
|
|
63
|
+
- Spacing: none, xs, sm, md, lg, xl
|
|
64
|
+
- Backgrounds: transparent, surface, primary, secondary
|
|
65
|
+
- Border radius: none, xs, sm, md, lg, xl
|
|
66
|
+
- Borders: none, thin, thick
|
|
67
|
+
- Layout patterns: flex layouts, positioning
|
|
68
|
+
|
|
69
|
+
### Input Examples
|
|
70
|
+
- Types: text, email, password, number
|
|
71
|
+
- Sizes: small, medium, large
|
|
72
|
+
- Variants: default, outlined, filled
|
|
73
|
+
- States: normal, disabled, error, pre-filled
|
|
74
|
+
- Auto-capitalization: none, sentences, words, characters
|
|
75
|
+
|
|
76
|
+
### Card Examples
|
|
77
|
+
- Variants: default, outlined, elevated, filled
|
|
78
|
+
- Intents: neutral, primary, success, error, warning, info
|
|
79
|
+
- Padding: none, small, medium, large
|
|
80
|
+
- Radius: none, small, medium, large
|
|
81
|
+
- Interactive: clickable, disabled states
|
|
82
|
+
- Complex layouts: multi-element cards
|
|
83
|
+
|
|
84
|
+
### Checkbox Examples
|
|
85
|
+
- Basic states: checked, unchecked, indeterminate
|
|
86
|
+
- Sizes: small, medium, large
|
|
87
|
+
- Intents: primary, neutral, success, error, warning, info
|
|
88
|
+
- Variants: default, outlined
|
|
89
|
+
- States: normal, disabled
|
|
90
|
+
- Custom content: complex labels, helper text, errors
|
|
91
|
+
|
|
92
|
+
### Divider Examples
|
|
93
|
+
- Orientations: horizontal, vertical
|
|
94
|
+
- Variants: solid, dashed, dotted
|
|
95
|
+
- Thickness: thin, medium, thick
|
|
96
|
+
- Intents: primary, secondary, neutral, success, error, warning, info
|
|
97
|
+
- Spacing: none, small, medium, large
|
|
98
|
+
- With content: text labels, sections
|
|
99
|
+
|
|
100
|
+
### Badge Examples
|
|
101
|
+
- Variants: filled, outlined, dot
|
|
102
|
+
- Sizes: small, medium, large
|
|
103
|
+
- Intents: primary, success, error, warning, neutral, info
|
|
104
|
+
- Use cases: numbers, status, categories, notifications
|
|
105
|
+
|
|
106
|
+
### Avatar Examples
|
|
107
|
+
- Sizes: small, medium, large, xlarge
|
|
108
|
+
- Shapes: circle, square
|
|
109
|
+
- Fallbacks: initials, placeholder text
|
|
110
|
+
- Images: with proper fallbacks
|
|
111
|
+
- Groups: overlapping avatars
|
|
112
|
+
|
|
113
|
+
## Best Practices
|
|
114
|
+
|
|
115
|
+
1. **Interactive Testing**: All examples include interactive elements to test functionality
|
|
116
|
+
2. **Accessibility**: Examples demonstrate proper labeling and accessibility features
|
|
117
|
+
3. **Responsive Design**: Components adapt to different screen sizes
|
|
118
|
+
4. **Theme Integration**: All examples use the theme system properly
|
|
119
|
+
5. **Real-world Context**: Examples show practical usage scenarios
|
|
120
|
+
|
|
121
|
+
## Development Notes
|
|
122
|
+
|
|
123
|
+
- Examples are built using the same components they demonstrate
|
|
124
|
+
- All examples use TypeScript for type safety
|
|
125
|
+
- Components follow the established design system patterns
|
|
126
|
+
- Examples are optimized for both web and native platforms
|
|
127
|
+
|
|
128
|
+
## Contributing
|
|
129
|
+
|
|
130
|
+
When adding new components:
|
|
131
|
+
1. Create a new example file: `ComponentNameExamples.tsx`
|
|
132
|
+
2. Follow the established pattern of grouped sections
|
|
133
|
+
3. Include all variants, sizes, and states
|
|
134
|
+
4. Add interactive elements where applicable
|
|
135
|
+
5. Export the component in `index.ts`
|
|
136
136
|
6. Update the `AllExamples` component to include the new example
|