@idealyst/mcp-server 1.0.84
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 +202 -0
- package/dist/data/cli-commands.d.ts +2 -0
- package/dist/data/cli-commands.d.ts.map +1 -0
- package/dist/data/cli-commands.js +100 -0
- package/dist/data/cli-commands.js.map +1 -0
- package/dist/data/components/Accordion.d.ts +15 -0
- package/dist/data/components/Accordion.d.ts.map +1 -0
- package/dist/data/components/Accordion.js +112 -0
- package/dist/data/components/Accordion.js.map +1 -0
- package/dist/data/components/ActivityIndicator.d.ts +15 -0
- package/dist/data/components/ActivityIndicator.d.ts.map +1 -0
- package/dist/data/components/ActivityIndicator.js +82 -0
- package/dist/data/components/ActivityIndicator.js.map +1 -0
- package/dist/data/components/Alert.d.ts +15 -0
- package/dist/data/components/Alert.d.ts.map +1 -0
- package/dist/data/components/Alert.js +132 -0
- package/dist/data/components/Alert.js.map +1 -0
- package/dist/data/components/Avatar.d.ts +15 -0
- package/dist/data/components/Avatar.d.ts.map +1 -0
- package/dist/data/components/Avatar.js +93 -0
- package/dist/data/components/Avatar.js.map +1 -0
- package/dist/data/components/Badge.d.ts +15 -0
- package/dist/data/components/Badge.d.ts.map +1 -0
- package/dist/data/components/Badge.js +64 -0
- package/dist/data/components/Badge.js.map +1 -0
- package/dist/data/components/Breadcrumb.d.ts +15 -0
- package/dist/data/components/Breadcrumb.d.ts.map +1 -0
- package/dist/data/components/Breadcrumb.js +96 -0
- package/dist/data/components/Breadcrumb.js.map +1 -0
- package/dist/data/components/Button.d.ts +15 -0
- package/dist/data/components/Button.d.ts.map +1 -0
- package/dist/data/components/Button.js +87 -0
- package/dist/data/components/Button.js.map +1 -0
- package/dist/data/components/Card.d.ts +15 -0
- package/dist/data/components/Card.d.ts.map +1 -0
- package/dist/data/components/Card.js +67 -0
- package/dist/data/components/Card.js.map +1 -0
- package/dist/data/components/Checkbox.d.ts +15 -0
- package/dist/data/components/Checkbox.d.ts.map +1 -0
- package/dist/data/components/Checkbox.js +118 -0
- package/dist/data/components/Checkbox.js.map +1 -0
- package/dist/data/components/Chip.d.ts +15 -0
- package/dist/data/components/Chip.d.ts.map +1 -0
- package/dist/data/components/Chip.js +76 -0
- package/dist/data/components/Chip.js.map +1 -0
- package/dist/data/components/Dialog.d.ts +15 -0
- package/dist/data/components/Dialog.d.ts.map +1 -0
- package/dist/data/components/Dialog.js +137 -0
- package/dist/data/components/Dialog.js.map +1 -0
- package/dist/data/components/Divider.d.ts +15 -0
- package/dist/data/components/Divider.d.ts.map +1 -0
- package/dist/data/components/Divider.js +71 -0
- package/dist/data/components/Divider.js.map +1 -0
- package/dist/data/components/Icon.d.ts +15 -0
- package/dist/data/components/Icon.d.ts.map +1 -0
- package/dist/data/components/Icon.js +70 -0
- package/dist/data/components/Icon.js.map +1 -0
- package/dist/data/components/Image.d.ts +15 -0
- package/dist/data/components/Image.d.ts.map +1 -0
- package/dist/data/components/Image.js +122 -0
- package/dist/data/components/Image.js.map +1 -0
- package/dist/data/components/Input.d.ts +15 -0
- package/dist/data/components/Input.d.ts.map +1 -0
- package/dist/data/components/Input.js +109 -0
- package/dist/data/components/Input.js.map +1 -0
- package/dist/data/components/List.d.ts +15 -0
- package/dist/data/components/List.d.ts.map +1 -0
- package/dist/data/components/List.js +113 -0
- package/dist/data/components/List.js.map +1 -0
- package/dist/data/components/Menu.d.ts +15 -0
- package/dist/data/components/Menu.d.ts.map +1 -0
- package/dist/data/components/Menu.js +132 -0
- package/dist/data/components/Menu.js.map +1 -0
- package/dist/data/components/Popover.d.ts +15 -0
- package/dist/data/components/Popover.d.ts.map +1 -0
- package/dist/data/components/Popover.js +159 -0
- package/dist/data/components/Popover.js.map +1 -0
- package/dist/data/components/Pressable.d.ts +15 -0
- package/dist/data/components/Pressable.d.ts.map +1 -0
- package/dist/data/components/Pressable.js +125 -0
- package/dist/data/components/Pressable.js.map +1 -0
- package/dist/data/components/Progress.d.ts +15 -0
- package/dist/data/components/Progress.d.ts.map +1 -0
- package/dist/data/components/Progress.js +95 -0
- package/dist/data/components/Progress.js.map +1 -0
- package/dist/data/components/RadioButton.d.ts +15 -0
- package/dist/data/components/RadioButton.d.ts.map +1 -0
- package/dist/data/components/RadioButton.js +140 -0
- package/dist/data/components/RadioButton.js.map +1 -0
- package/dist/data/components/SVGImage.d.ts +15 -0
- package/dist/data/components/SVGImage.d.ts.map +1 -0
- package/dist/data/components/SVGImage.js +112 -0
- package/dist/data/components/SVGImage.js.map +1 -0
- package/dist/data/components/Screen.d.ts +15 -0
- package/dist/data/components/Screen.d.ts.map +1 -0
- package/dist/data/components/Screen.js +99 -0
- package/dist/data/components/Screen.js.map +1 -0
- package/dist/data/components/Select.d.ts +15 -0
- package/dist/data/components/Select.d.ts.map +1 -0
- package/dist/data/components/Select.js +146 -0
- package/dist/data/components/Select.js.map +1 -0
- package/dist/data/components/Skeleton.d.ts +15 -0
- package/dist/data/components/Skeleton.d.ts.map +1 -0
- package/dist/data/components/Skeleton.js +110 -0
- package/dist/data/components/Skeleton.js.map +1 -0
- package/dist/data/components/Slider.d.ts +15 -0
- package/dist/data/components/Slider.d.ts.map +1 -0
- package/dist/data/components/Slider.js +129 -0
- package/dist/data/components/Slider.js.map +1 -0
- package/dist/data/components/Switch.d.ts +15 -0
- package/dist/data/components/Switch.d.ts.map +1 -0
- package/dist/data/components/Switch.js +127 -0
- package/dist/data/components/Switch.js.map +1 -0
- package/dist/data/components/TabBar.d.ts +15 -0
- package/dist/data/components/TabBar.d.ts.map +1 -0
- package/dist/data/components/TabBar.js +145 -0
- package/dist/data/components/TabBar.js.map +1 -0
- package/dist/data/components/Table.d.ts +15 -0
- package/dist/data/components/Table.d.ts.map +1 -0
- package/dist/data/components/Table.js +151 -0
- package/dist/data/components/Table.js.map +1 -0
- package/dist/data/components/Tabs.d.ts +15 -0
- package/dist/data/components/Tabs.d.ts.map +1 -0
- package/dist/data/components/Tabs.js +150 -0
- package/dist/data/components/Tabs.js.map +1 -0
- package/dist/data/components/Text.d.ts +15 -0
- package/dist/data/components/Text.d.ts.map +1 -0
- package/dist/data/components/Text.js +85 -0
- package/dist/data/components/Text.js.map +1 -0
- package/dist/data/components/TextArea.d.ts +15 -0
- package/dist/data/components/TextArea.d.ts.map +1 -0
- package/dist/data/components/TextArea.js +155 -0
- package/dist/data/components/TextArea.js.map +1 -0
- package/dist/data/components/Tooltip.d.ts +15 -0
- package/dist/data/components/Tooltip.d.ts.map +1 -0
- package/dist/data/components/Tooltip.js +105 -0
- package/dist/data/components/Tooltip.js.map +1 -0
- package/dist/data/components/Video.d.ts +15 -0
- package/dist/data/components/Video.d.ts.map +1 -0
- package/dist/data/components/Video.js +168 -0
- package/dist/data/components/Video.js.map +1 -0
- package/dist/data/components/View.d.ts +15 -0
- package/dist/data/components/View.d.ts.map +1 -0
- package/dist/data/components/View.js +126 -0
- package/dist/data/components/View.js.map +1 -0
- package/dist/data/components/index.d.ts +37 -0
- package/dist/data/components/index.d.ts.map +1 -0
- package/dist/data/components/index.js +110 -0
- package/dist/data/components/index.js.map +1 -0
- package/dist/data/framework-guides.d.ts +2 -0
- package/dist/data/framework-guides.d.ts.map +1 -0
- package/dist/data/framework-guides.js +589 -0
- package/dist/data/framework-guides.js.map +1 -0
- package/dist/data/icon-guide.d.ts +2 -0
- package/dist/data/icon-guide.d.ts.map +1 -0
- package/dist/data/icon-guide.js +285 -0
- package/dist/data/icon-guide.js.map +1 -0
- package/dist/data/icons.json +7452 -0
- package/dist/data/navigation-guides.d.ts +2 -0
- package/dist/data/navigation-guides.d.ts.map +1 -0
- package/dist/data/navigation-guides.js +1196 -0
- package/dist/data/navigation-guides.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +422 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
- package/src/data/cli-commands.ts +103 -0
- package/src/data/components/Accordion.ts +106 -0
- package/src/data/components/ActivityIndicator.ts +82 -0
- package/src/data/components/Alert.ts +132 -0
- package/src/data/components/Avatar.ts +93 -0
- package/src/data/components/Badge.ts +63 -0
- package/src/data/components/Breadcrumb.ts +94 -0
- package/src/data/components/Button.ts +86 -0
- package/src/data/components/Card.ts +67 -0
- package/src/data/components/Checkbox.ts +117 -0
- package/src/data/components/Chip.ts +93 -0
- package/src/data/components/Dialog.ts +136 -0
- package/src/data/components/Divider.ts +70 -0
- package/src/data/components/Icon.ts +70 -0
- package/src/data/components/Image.ts +121 -0
- package/src/data/components/Input.ts +150 -0
- package/src/data/components/List.ts +103 -0
- package/src/data/components/Menu.ts +125 -0
- package/src/data/components/Popover.ts +159 -0
- package/src/data/components/Pressable.ts +123 -0
- package/src/data/components/Progress.ts +95 -0
- package/src/data/components/RadioButton.ts +130 -0
- package/src/data/components/SVGImage.ts +114 -0
- package/src/data/components/Screen.ts +103 -0
- package/src/data/components/Select.ts +140 -0
- package/src/data/components/Skeleton.ts +102 -0
- package/src/data/components/Slider.ts +150 -0
- package/src/data/components/Switch.ts +127 -0
- package/src/data/components/TabBar.ts +142 -0
- package/src/data/components/Table.ts +153 -0
- package/src/data/components/Tabs.ts +152 -0
- package/src/data/components/Text.ts +85 -0
- package/src/data/components/TextArea.ts +155 -0
- package/src/data/components/Tooltip.ts +105 -0
- package/src/data/components/Video.ts +168 -0
- package/src/data/components/View.ts +126 -0
- package/src/data/components/index.ts +109 -0
- package/src/data/framework-guides.ts +593 -0
- package/src/data/icon-guide.ts +284 -0
- package/src/data/icons.json +7452 -0
- package/src/data/navigation-guides.ts +1199 -0
- package/src/index.ts +473 -0
- package/test-client.js +86 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export const Tabs = {
|
|
2
|
+
category: "navigation",
|
|
3
|
+
description: "Tabs component with content panels for organizing information into tabbed sections",
|
|
4
|
+
props: `
|
|
5
|
+
Tab Props:
|
|
6
|
+
- \`value\`: string - Unique tab identifier
|
|
7
|
+
- \`label\`: string - Tab label text
|
|
8
|
+
- \`disabled\`: boolean - Whether tab is disabled
|
|
9
|
+
- \`children\`: ReactNode - Tab panel content
|
|
10
|
+
|
|
11
|
+
Tabs Props:
|
|
12
|
+
- \`value\`: string - Currently active tab value
|
|
13
|
+
- \`defaultValue\`: string - Default tab (uncontrolled)
|
|
14
|
+
- \`onChange\`: (value: string) => void - Tab change handler
|
|
15
|
+
- \`variant\`: 'default' | 'pills' | 'underline' - Visual style
|
|
16
|
+
- \`size\`: 'small' | 'medium' | 'large' - Tab size
|
|
17
|
+
- \`intent\`: 'primary' | 'neutral' | 'success' | 'error' | 'warning' - Color scheme
|
|
18
|
+
- \`style\`: ViewStyle - Additional styles
|
|
19
|
+
- \`testID\`: string - Test identifier
|
|
20
|
+
- \`children\`: ReactNode - Tab components
|
|
21
|
+
`,
|
|
22
|
+
features: [
|
|
23
|
+
"Integrated tab navigation and content panels",
|
|
24
|
+
"Three visual variants",
|
|
25
|
+
"Controlled and uncontrolled modes",
|
|
26
|
+
"Three sizes",
|
|
27
|
+
"Five intent colors",
|
|
28
|
+
"Disabled tabs",
|
|
29
|
+
"Automatic content switching",
|
|
30
|
+
],
|
|
31
|
+
bestPractices: [
|
|
32
|
+
"Use Tabs for content that belongs together",
|
|
33
|
+
"Use TabBar for navigation without content management",
|
|
34
|
+
"Keep 3-5 tabs for optimal UX",
|
|
35
|
+
"Lazy load tab content if heavy",
|
|
36
|
+
"Use descriptive tab labels",
|
|
37
|
+
"Consider vertical tabs for many options",
|
|
38
|
+
],
|
|
39
|
+
usage: `
|
|
40
|
+
import { Tabs, Tab, Text } from '@idealyst/components';
|
|
41
|
+
|
|
42
|
+
<Tabs defaultValue="tab1" variant="underline">
|
|
43
|
+
<Tab value="tab1" label="Overview">
|
|
44
|
+
<Text>Overview content</Text>
|
|
45
|
+
</Tab>
|
|
46
|
+
<Tab value="tab2" label="Details">
|
|
47
|
+
<Text>Details content</Text>
|
|
48
|
+
</Tab>
|
|
49
|
+
<Tab value="tab3" label="Settings">
|
|
50
|
+
<Text>Settings content</Text>
|
|
51
|
+
</Tab>
|
|
52
|
+
</Tabs>
|
|
53
|
+
`,
|
|
54
|
+
examples: {
|
|
55
|
+
basic: `import { Tabs, Tab, Text } from '@idealyst/components';
|
|
56
|
+
|
|
57
|
+
<Tabs defaultValue="1">
|
|
58
|
+
<Tab value="1" label="First">
|
|
59
|
+
<Text>First tab content</Text>
|
|
60
|
+
</Tab>
|
|
61
|
+
<Tab value="2" label="Second">
|
|
62
|
+
<Text>Second tab content</Text>
|
|
63
|
+
</Tab>
|
|
64
|
+
</Tabs>`,
|
|
65
|
+
variants: `import { Tabs, Tab, View, Text } from '@idealyst/components';
|
|
66
|
+
|
|
67
|
+
<View spacing="lg">
|
|
68
|
+
<Tabs defaultValue="a" variant="default">
|
|
69
|
+
<Tab value="a" label="Default"><Text>Content A</Text></Tab>
|
|
70
|
+
<Tab value="b" label="Style"><Text>Content B</Text></Tab>
|
|
71
|
+
</Tabs>
|
|
72
|
+
|
|
73
|
+
<Tabs defaultValue="a" variant="pills">
|
|
74
|
+
<Tab value="a" label="Pills"><Text>Content A</Text></Tab>
|
|
75
|
+
<Tab value="b" label="Style"><Text>Content B</Text></Tab>
|
|
76
|
+
</Tabs>
|
|
77
|
+
|
|
78
|
+
<Tabs defaultValue="a" variant="underline">
|
|
79
|
+
<Tab value="a" label="Underline"><Text>Content A</Text></Tab>
|
|
80
|
+
<Tab value="b" label="Style"><Text>Content B</Text></Tab>
|
|
81
|
+
</Tabs>
|
|
82
|
+
</View>`,
|
|
83
|
+
"with-icons": `import { Tabs, Tab, View, Text, Card } from '@idealyst/components';
|
|
84
|
+
|
|
85
|
+
<Tabs defaultValue="profile" variant="pills" intent="primary">
|
|
86
|
+
<Tab value="profile" label="Profile">
|
|
87
|
+
<Card padding="medium">
|
|
88
|
+
<View spacing="md">
|
|
89
|
+
<Text weight="bold">Profile Settings</Text>
|
|
90
|
+
<Text>Update your profile information</Text>
|
|
91
|
+
</View>
|
|
92
|
+
</Card>
|
|
93
|
+
</Tab>
|
|
94
|
+
<Tab value="security" label="Security">
|
|
95
|
+
<Card padding="medium">
|
|
96
|
+
<View spacing="md">
|
|
97
|
+
<Text weight="bold">Security Settings</Text>
|
|
98
|
+
<Text>Manage your security preferences</Text>
|
|
99
|
+
</View>
|
|
100
|
+
</Card>
|
|
101
|
+
</Tab>
|
|
102
|
+
</Tabs>`,
|
|
103
|
+
interactive: `import { Tabs, Tab, View, Text, Input, Button } from '@idealyst/components';
|
|
104
|
+
import { useState } from 'react';
|
|
105
|
+
|
|
106
|
+
function Example() {
|
|
107
|
+
const [activeTab, setActiveTab] = useState('account');
|
|
108
|
+
const [name, setName] = useState('');
|
|
109
|
+
const [email, setEmail] = useState('');
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<Tabs value={activeTab} onChange={setActiveTab} variant="underline">
|
|
113
|
+
<Tab value="account" label="Account">
|
|
114
|
+
<View spacing="md" style={{ padding: 16 }}>
|
|
115
|
+
<Text weight="bold">Account Information</Text>
|
|
116
|
+
<Input
|
|
117
|
+
label="Name"
|
|
118
|
+
value={name}
|
|
119
|
+
onChangeText={setName}
|
|
120
|
+
placeholder="Enter your name"
|
|
121
|
+
/>
|
|
122
|
+
<Input
|
|
123
|
+
label="Email"
|
|
124
|
+
value={email}
|
|
125
|
+
onChangeText={setEmail}
|
|
126
|
+
placeholder="Enter your email"
|
|
127
|
+
/>
|
|
128
|
+
<Button intent="primary">Save Changes</Button>
|
|
129
|
+
</View>
|
|
130
|
+
</Tab>
|
|
131
|
+
|
|
132
|
+
<Tab value="privacy" label="Privacy">
|
|
133
|
+
<View spacing="md" style={{ padding: 16 }}>
|
|
134
|
+
<Text weight="bold">Privacy Settings</Text>
|
|
135
|
+
<Text>Manage your privacy preferences here</Text>
|
|
136
|
+
</View>
|
|
137
|
+
</Tab>
|
|
138
|
+
|
|
139
|
+
<Tab value="notifications" label="Notifications">
|
|
140
|
+
<View spacing="md" style={{ padding: 16 }}>
|
|
141
|
+
<Text weight="bold">Notification Preferences</Text>
|
|
142
|
+
<Text>Configure how you receive notifications</Text>
|
|
143
|
+
</View>
|
|
144
|
+
</Tab>
|
|
145
|
+
</Tabs>
|
|
146
|
+
);
|
|
147
|
+
}`,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/data/components/Tabs.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,oFAAoF;IACjG,KAAK,EAAE;;;;;;;;;;;;;;;;;CAiBR;IACC,QAAQ,EAAE;QACR,8CAA8C;QAC9C,uBAAuB;QACvB,mCAAmC;QACnC,aAAa;QACb,oBAAoB;QACpB,eAAe;QACf,6BAA6B;KAC9B;IACD,aAAa,EAAE;QACb,4CAA4C;QAC5C,sDAAsD;QACtD,8BAA8B;QAC9B,gCAAgC;QAChC,4BAA4B;QAC5B,yCAAyC;KAC1C;IACD,KAAK,EAAE;;;;;;;;;;;;;;CAcR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;;;;;QASH;QAEJ,QAAQ,EAAE;;;;;;;;;;;;;;;;;QAiBN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;QAmBV;QAEJ,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4Cf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Text: {
|
|
2
|
+
category: string;
|
|
3
|
+
description: string;
|
|
4
|
+
props: string;
|
|
5
|
+
features: string[];
|
|
6
|
+
bestPractices: string[];
|
|
7
|
+
usage: string;
|
|
8
|
+
examples: {
|
|
9
|
+
basic: string;
|
|
10
|
+
variants: string;
|
|
11
|
+
"with-icons": string;
|
|
12
|
+
interactive: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/data/components/Text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI;;;;;;;;;;;;;CAsFhB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export const Text = {
|
|
2
|
+
category: "typography",
|
|
3
|
+
description: "Styled text component with size, weight, and color variants",
|
|
4
|
+
props: `
|
|
5
|
+
- \`children\`: ReactNode - The text content to display
|
|
6
|
+
- \`size\`: 'small' | 'medium' | 'large' | 'xlarge' - Text size variant
|
|
7
|
+
- \`weight\`: 'light' | 'normal' | 'medium' | 'semibold' | 'bold' - Font weight
|
|
8
|
+
- \`color\`: DisplayColorVariant - Text color from theme
|
|
9
|
+
- \`align\`: 'left' | 'center' | 'right' - Text alignment
|
|
10
|
+
- \`style\`: any - Additional custom styles
|
|
11
|
+
- \`testID\`: string - Test identifier
|
|
12
|
+
`,
|
|
13
|
+
features: [
|
|
14
|
+
"Four size variants",
|
|
15
|
+
"Five weight options",
|
|
16
|
+
"Theme color variants",
|
|
17
|
+
"Three alignment options",
|
|
18
|
+
"Cross-platform support",
|
|
19
|
+
"Inherits parent text styles",
|
|
20
|
+
],
|
|
21
|
+
bestPractices: [
|
|
22
|
+
"Use semantic sizes (xlarge for headings, small for captions)",
|
|
23
|
+
"Use appropriate weights for hierarchy",
|
|
24
|
+
"Prefer theme colors over custom colors",
|
|
25
|
+
"Use 'left' alignment for body text",
|
|
26
|
+
"Use 'center' for short, important text",
|
|
27
|
+
"Nest Text components for mixed styles",
|
|
28
|
+
],
|
|
29
|
+
usage: `
|
|
30
|
+
import { Text } from '@idealyst/components';
|
|
31
|
+
|
|
32
|
+
<Text size="xlarge" weight="bold" color="primary">
|
|
33
|
+
Heading Text
|
|
34
|
+
</Text>
|
|
35
|
+
|
|
36
|
+
<Text size="medium" color="secondary">
|
|
37
|
+
Body text with normal weight
|
|
38
|
+
</Text>
|
|
39
|
+
`,
|
|
40
|
+
examples: {
|
|
41
|
+
basic: `import { Text } from '@idealyst/components';
|
|
42
|
+
|
|
43
|
+
<Text>Simple text content</Text>`,
|
|
44
|
+
variants: `import { Text, View } from '@idealyst/components';
|
|
45
|
+
|
|
46
|
+
<View spacing="md">
|
|
47
|
+
<Text size="small">Small text</Text>
|
|
48
|
+
<Text size="medium">Medium text</Text>
|
|
49
|
+
<Text size="large">Large text</Text>
|
|
50
|
+
<Text size="xlarge">Extra large text</Text>
|
|
51
|
+
</View>`,
|
|
52
|
+
"with-icons": `import { Text, View, Icon } from '@idealyst/components';
|
|
53
|
+
|
|
54
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
|
|
55
|
+
<Icon name="check-circle" size="md" color="success" />
|
|
56
|
+
<Text color="success" weight="medium">
|
|
57
|
+
Verified Account
|
|
58
|
+
</Text>
|
|
59
|
+
</View>`,
|
|
60
|
+
interactive: `import { Text, View, Button } from '@idealyst/components';
|
|
61
|
+
import { useState } from 'react';
|
|
62
|
+
|
|
63
|
+
function Example() {
|
|
64
|
+
const [count, setCount] = useState(0);
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<View spacing="md">
|
|
68
|
+
<Text size="xlarge" weight="bold" align="center">
|
|
69
|
+
Counter: {count}
|
|
70
|
+
</Text>
|
|
71
|
+
|
|
72
|
+
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'center' }}>
|
|
73
|
+
<Button onPress={() => setCount(count - 1)}>-</Button>
|
|
74
|
+
<Button onPress={() => setCount(count + 1)}>+</Button>
|
|
75
|
+
</View>
|
|
76
|
+
|
|
77
|
+
<Text size="small" color="secondary" align="center">
|
|
78
|
+
Click buttons to change the count
|
|
79
|
+
</Text>
|
|
80
|
+
</View>
|
|
81
|
+
);
|
|
82
|
+
}`,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=Text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/data/components/Text.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,6DAA6D;IAC1E,KAAK,EAAE;;;;;;;;CAQR;IACC,QAAQ,EAAE;QACR,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,yBAAyB;QACzB,wBAAwB;QACxB,6BAA6B;KAC9B;IACD,aAAa,EAAE;QACb,8DAA8D;QAC9D,uCAAuC;QACvC,wCAAwC;QACxC,oCAAoC;QACpC,wCAAwC;QACxC,uCAAuC;KACxC;IACD,KAAK,EAAE;;;;;;;;;;CAUR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;iCAEsB;QAE7B,QAAQ,EAAE;;;;;;;QAON;QAEJ,YAAY,EAAE;;;;;;;QAOV;QAEJ,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;EAsBf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const TextArea: {
|
|
2
|
+
category: string;
|
|
3
|
+
description: string;
|
|
4
|
+
props: string;
|
|
5
|
+
features: string[];
|
|
6
|
+
bestPractices: string[];
|
|
7
|
+
usage: string;
|
|
8
|
+
examples: {
|
|
9
|
+
basic: string;
|
|
10
|
+
variants: string;
|
|
11
|
+
"with-icons": string;
|
|
12
|
+
interactive: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=TextArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/data/components/TextArea.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CA4JpB,CAAC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export const TextArea = {
|
|
2
|
+
category: "form",
|
|
3
|
+
description: "Multi-line text input field for longer text content",
|
|
4
|
+
props: `
|
|
5
|
+
- \`value\`: string - Current text value
|
|
6
|
+
- \`defaultValue\`: string - Default value (uncontrolled)
|
|
7
|
+
- \`onChange\`: (value: string) => void - Text change handler
|
|
8
|
+
- \`placeholder\`: string - Placeholder text
|
|
9
|
+
- \`disabled\`: boolean - Whether textarea is disabled
|
|
10
|
+
- \`rows\`: number - Initial number of rows
|
|
11
|
+
- \`minHeight\`: number - Minimum height in pixels
|
|
12
|
+
- \`maxHeight\`: number - Maximum height in pixels
|
|
13
|
+
- \`autoGrow\`: boolean - Automatically grow to fit content
|
|
14
|
+
- \`maxLength\`: number - Maximum character length
|
|
15
|
+
- \`label\`: string - Label text above textarea
|
|
16
|
+
- \`error\`: string - Error message to display
|
|
17
|
+
- \`helperText\`: string - Helper text below textarea
|
|
18
|
+
- \`resize\`: 'none' | 'vertical' | 'horizontal' | 'both' - Resize behavior (web)
|
|
19
|
+
- \`showCharacterCount\`: boolean - Show character count
|
|
20
|
+
- \`intent\`: 'primary' | 'neutral' | 'success' | 'error' | 'warning' - Color scheme
|
|
21
|
+
- \`size\`: 'small' | 'medium' | 'large' - TextArea size
|
|
22
|
+
- \`style\`: ViewStyle - Additional styles
|
|
23
|
+
- \`textareaStyle\`: TextStyle - Textarea-specific styles
|
|
24
|
+
- \`testID\`: string - Test identifier
|
|
25
|
+
`,
|
|
26
|
+
features: [
|
|
27
|
+
"Multi-line text input",
|
|
28
|
+
"Auto-grow to fit content",
|
|
29
|
+
"Character count display",
|
|
30
|
+
"Min/max height constraints",
|
|
31
|
+
"Max length validation",
|
|
32
|
+
"Label and helper text",
|
|
33
|
+
"Error state",
|
|
34
|
+
"Resize control (web)",
|
|
35
|
+
"Three sizes",
|
|
36
|
+
],
|
|
37
|
+
bestPractices: [
|
|
38
|
+
"Always provide a label",
|
|
39
|
+
"Use helperText to guide users",
|
|
40
|
+
"Set maxLength to prevent excessive input",
|
|
41
|
+
"Show character count for limited fields",
|
|
42
|
+
"Use autoGrow for dynamic content",
|
|
43
|
+
"Set minHeight for comfortable input area",
|
|
44
|
+
"Show inline error messages",
|
|
45
|
+
],
|
|
46
|
+
usage: `
|
|
47
|
+
import { TextArea } from '@idealyst/components';
|
|
48
|
+
import { useState } from 'react';
|
|
49
|
+
|
|
50
|
+
function Example() {
|
|
51
|
+
const [text, setText] = useState('');
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<TextArea
|
|
55
|
+
label="Description"
|
|
56
|
+
value={text}
|
|
57
|
+
onChange={setText}
|
|
58
|
+
placeholder="Enter a detailed description"
|
|
59
|
+
rows={4}
|
|
60
|
+
maxLength={500}
|
|
61
|
+
showCharacterCount
|
|
62
|
+
helperText="Provide as much detail as possible"
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
`,
|
|
67
|
+
examples: {
|
|
68
|
+
basic: `import { TextArea } from '@idealyst/components';
|
|
69
|
+
|
|
70
|
+
<TextArea
|
|
71
|
+
label="Message"
|
|
72
|
+
placeholder="Enter your message"
|
|
73
|
+
rows={4}
|
|
74
|
+
/>`,
|
|
75
|
+
variants: `import { TextArea, View } from '@idealyst/components';
|
|
76
|
+
|
|
77
|
+
<View spacing="md">
|
|
78
|
+
<TextArea label="Small" size="small" rows={3} />
|
|
79
|
+
<TextArea label="Medium" size="medium" rows={4} />
|
|
80
|
+
<TextArea label="Large" size="large" rows={5} />
|
|
81
|
+
</View>`,
|
|
82
|
+
"with-icons": `import { TextArea, View, Text } from '@idealyst/components';
|
|
83
|
+
import { useState } from 'react';
|
|
84
|
+
|
|
85
|
+
function Example() {
|
|
86
|
+
const [feedback, setFeedback] = useState('');
|
|
87
|
+
const maxLength = 200;
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<View spacing="sm">
|
|
91
|
+
<TextArea
|
|
92
|
+
label="Feedback"
|
|
93
|
+
value={feedback}
|
|
94
|
+
onChange={setFeedback}
|
|
95
|
+
placeholder="Share your thoughts..."
|
|
96
|
+
maxLength={maxLength}
|
|
97
|
+
showCharacterCount
|
|
98
|
+
autoGrow
|
|
99
|
+
minHeight={100}
|
|
100
|
+
maxHeight={300}
|
|
101
|
+
/>
|
|
102
|
+
<Text size="small" color="secondary">
|
|
103
|
+
{feedback.length}/{maxLength} characters
|
|
104
|
+
</Text>
|
|
105
|
+
</View>
|
|
106
|
+
);
|
|
107
|
+
}`,
|
|
108
|
+
interactive: `import { TextArea, View, Button, Text } from '@idealyst/components';
|
|
109
|
+
import { useState } from 'react';
|
|
110
|
+
|
|
111
|
+
function Example() {
|
|
112
|
+
const [message, setMessage] = useState('');
|
|
113
|
+
const [error, setError] = useState('');
|
|
114
|
+
const [submitted, setSubmitted] = useState(false);
|
|
115
|
+
|
|
116
|
+
const handleSubmit = () => {
|
|
117
|
+
if (message.trim().length < 10) {
|
|
118
|
+
setError('Message must be at least 10 characters');
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
setError('');
|
|
122
|
+
setSubmitted(true);
|
|
123
|
+
// Submit logic here
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
if (submitted) {
|
|
127
|
+
return <Text color="success">Message submitted successfully!</Text>;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return (
|
|
131
|
+
<View spacing="md">
|
|
132
|
+
<TextArea
|
|
133
|
+
label="Your Message"
|
|
134
|
+
value={message}
|
|
135
|
+
onChange={(val) => {
|
|
136
|
+
setMessage(val);
|
|
137
|
+
setError('');
|
|
138
|
+
}}
|
|
139
|
+
placeholder="Type your message here..."
|
|
140
|
+
rows={5}
|
|
141
|
+
maxLength={500}
|
|
142
|
+
showCharacterCount
|
|
143
|
+
error={error}
|
|
144
|
+
helperText={error || 'Minimum 10 characters required'}
|
|
145
|
+
autoGrow
|
|
146
|
+
/>
|
|
147
|
+
<Button intent="primary" onPress={handleSubmit}>
|
|
148
|
+
Submit
|
|
149
|
+
</Button>
|
|
150
|
+
</View>
|
|
151
|
+
);
|
|
152
|
+
}`,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=TextArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../src/data/components/TextArea.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,qDAAqD;IAClE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBR;IACC,QAAQ,EAAE;QACR,uBAAuB;QACvB,0BAA0B;QAC1B,yBAAyB;QACzB,4BAA4B;QAC5B,uBAAuB;QACvB,uBAAuB;QACvB,aAAa;QACb,sBAAsB;QACtB,aAAa;KACd;IACD,aAAa,EAAE;QACb,wBAAwB;QACxB,+BAA+B;QAC/B,0CAA0C;QAC1C,yCAAyC;QACzC,kCAAkC;QAClC,0CAA0C;QAC1C,4BAA4B;KAC7B;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;CAoBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;;GAMR;QAEC,QAAQ,EAAE;;;;;;QAMN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;EAyBhB;QAEE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4Cf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Tooltip: {
|
|
2
|
+
category: string;
|
|
3
|
+
description: string;
|
|
4
|
+
props: string;
|
|
5
|
+
features: string[];
|
|
6
|
+
bestPractices: string[];
|
|
7
|
+
usage: string;
|
|
8
|
+
examples: {
|
|
9
|
+
basic: string;
|
|
10
|
+
variants: string;
|
|
11
|
+
"with-icons": string;
|
|
12
|
+
interactive: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/data/components/Tooltip.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;CA0GnB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
export const Tooltip = {
|
|
2
|
+
category: "overlay",
|
|
3
|
+
description: "Contextual tooltip that displays information on hover or focus",
|
|
4
|
+
props: `
|
|
5
|
+
- \`content\`: string | ReactNode - Tooltip content to display
|
|
6
|
+
- \`children\`: ReactNode - Element that triggers the tooltip
|
|
7
|
+
- \`placement\`: 'top' | 'bottom' | 'left' | 'right' - Tooltip placement
|
|
8
|
+
- \`delay\`: number - Delay before showing tooltip (milliseconds)
|
|
9
|
+
- \`intent\`: 'primary' | 'neutral' | 'success' | 'error' | 'warning' - Color scheme
|
|
10
|
+
- \`size\`: 'small' | 'medium' | 'large' - Tooltip size
|
|
11
|
+
- \`style\`: ViewStyle - Additional styles
|
|
12
|
+
- \`testID\`: string - Test identifier
|
|
13
|
+
`,
|
|
14
|
+
features: [
|
|
15
|
+
"Hover and focus triggers",
|
|
16
|
+
"Four placement options",
|
|
17
|
+
"Configurable delay",
|
|
18
|
+
"Five intent colors",
|
|
19
|
+
"Three sizes",
|
|
20
|
+
"String or custom content",
|
|
21
|
+
"Auto-positioning on overflow",
|
|
22
|
+
],
|
|
23
|
+
bestPractices: [
|
|
24
|
+
"Keep tooltip content concise",
|
|
25
|
+
"Use for supplementary information only",
|
|
26
|
+
"Don't hide critical information in tooltips",
|
|
27
|
+
"Ensure tooltips are keyboard accessible",
|
|
28
|
+
"Use appropriate placement to avoid obscuring content",
|
|
29
|
+
"Add small delay to prevent flashing",
|
|
30
|
+
],
|
|
31
|
+
usage: `
|
|
32
|
+
import { Tooltip, Button } from '@idealyst/components';
|
|
33
|
+
|
|
34
|
+
<Tooltip content="Click to save your changes" placement="top">
|
|
35
|
+
<Button icon="content-save">Save</Button>
|
|
36
|
+
</Tooltip>
|
|
37
|
+
`,
|
|
38
|
+
examples: {
|
|
39
|
+
basic: `import { Tooltip, Button } from '@idealyst/components';
|
|
40
|
+
|
|
41
|
+
<Tooltip content="This is a tooltip">
|
|
42
|
+
<Button>Hover me</Button>
|
|
43
|
+
</Tooltip>`,
|
|
44
|
+
variants: `import { Tooltip, Button, View } from '@idealyst/components';
|
|
45
|
+
|
|
46
|
+
<View spacing="md">
|
|
47
|
+
<Tooltip content="Top placement" placement="top">
|
|
48
|
+
<Button>Top</Button>
|
|
49
|
+
</Tooltip>
|
|
50
|
+
<Tooltip content="Bottom placement" placement="bottom">
|
|
51
|
+
<Button>Bottom</Button>
|
|
52
|
+
</Tooltip>
|
|
53
|
+
<Tooltip content="Left placement" placement="left">
|
|
54
|
+
<Button>Left</Button>
|
|
55
|
+
</Tooltip>
|
|
56
|
+
<Tooltip content="Right placement" placement="right">
|
|
57
|
+
<Button>Right</Button>
|
|
58
|
+
</Tooltip>
|
|
59
|
+
</View>`,
|
|
60
|
+
"with-icons": `import { Tooltip, Icon, Text, View } from '@idealyst/components';
|
|
61
|
+
|
|
62
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
|
|
63
|
+
<Text>Need help?</Text>
|
|
64
|
+
<Tooltip
|
|
65
|
+
content="Click here for assistance"
|
|
66
|
+
placement="right"
|
|
67
|
+
intent="primary"
|
|
68
|
+
>
|
|
69
|
+
<Icon name="help-circle" size="md" color="primary" />
|
|
70
|
+
</Tooltip>
|
|
71
|
+
</View>`,
|
|
72
|
+
interactive: `import { Tooltip, Button, View, Text } from '@idealyst/components';
|
|
73
|
+
|
|
74
|
+
function ActionButtons() {
|
|
75
|
+
return (
|
|
76
|
+
<View spacing="sm">
|
|
77
|
+
<View style={{ flexDirection: 'row', gap: 8 }}>
|
|
78
|
+
<Tooltip content="Save your work" placement="top" delay={500}>
|
|
79
|
+
<Button icon="content-save" variant="contained" intent="primary">
|
|
80
|
+
Save
|
|
81
|
+
</Button>
|
|
82
|
+
</Tooltip>
|
|
83
|
+
|
|
84
|
+
<Tooltip content="Undo last action" placement="top" delay={500}>
|
|
85
|
+
<Button icon="undo" variant="outlined">
|
|
86
|
+
Undo
|
|
87
|
+
</Button>
|
|
88
|
+
</Tooltip>
|
|
89
|
+
|
|
90
|
+
<Tooltip content="Delete selected items" placement="top" intent="error" delay={500}>
|
|
91
|
+
<Button icon="delete" variant="outlined" intent="error">
|
|
92
|
+
Delete
|
|
93
|
+
</Button>
|
|
94
|
+
</Tooltip>
|
|
95
|
+
</View>
|
|
96
|
+
|
|
97
|
+
<Text size="small" color="secondary">
|
|
98
|
+
Hover over buttons to see tooltips
|
|
99
|
+
</Text>
|
|
100
|
+
</View>
|
|
101
|
+
);
|
|
102
|
+
}`,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/data/components/Tooltip.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,gEAAgE;IAC7E,KAAK,EAAE;;;;;;;;;CASR;IACC,QAAQ,EAAE;QACR,0BAA0B;QAC1B,wBAAwB;QACxB,oBAAoB;QACpB,oBAAoB;QACpB,aAAa;QACb,0BAA0B;QAC1B,8BAA8B;KAC/B;IACD,aAAa,EAAE;QACb,8BAA8B;QAC9B,wCAAwC;QACxC,6CAA6C;QAC7C,yCAAyC;QACzC,sDAAsD;QACtD,qCAAqC;KACtC;IACD,KAAK,EAAE;;;;;;CAMR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;WAIA;QAEP,QAAQ,EAAE;;;;;;;;;;;;;;;QAeN;QAEJ,YAAY,EAAE;;;;;;;;;;;QAWV;QAEJ,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Bf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Video: {
|
|
2
|
+
category: string;
|
|
3
|
+
description: string;
|
|
4
|
+
props: string;
|
|
5
|
+
features: string[];
|
|
6
|
+
bestPractices: string[];
|
|
7
|
+
usage: string;
|
|
8
|
+
examples: {
|
|
9
|
+
basic: string;
|
|
10
|
+
variants: string;
|
|
11
|
+
"with-icons": string;
|
|
12
|
+
interactive: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../../src/data/components/Video.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;;;;;CAyKjB,CAAC"}
|