@idealyst/mcp-server 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/components/Button.d.ts +1 -0
- package/dist/data/components/Button.d.ts.map +1 -1
- package/dist/data/components/Button.js +24 -1
- package/dist/data/components/Button.js.map +1 -1
- package/dist/data/components/TabBar.d.ts +2 -0
- package/dist/data/components/TabBar.d.ts.map +1 -1
- package/dist/data/components/TabBar.js +123 -27
- package/dist/data/components/TabBar.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/data/components/Button.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/data/components/Button.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CA4GlB,CAAC"}
|
|
@@ -6,9 +6,10 @@ export const Button = {
|
|
|
6
6
|
- \`title\`: string - The text title to display inside the button (for web)
|
|
7
7
|
- \`onPress\`: function - Called when the button is pressed
|
|
8
8
|
- \`disabled\`: boolean - Whether the button is disabled
|
|
9
|
-
- \`type\`: ButtonType - The visual style type of the button
|
|
9
|
+
- \`type\`: ButtonType - The visual style type of the button ('contained' | 'outlined' | 'text')
|
|
10
10
|
- \`intent\`: ButtonIntentVariant - The intent/color scheme of the button
|
|
11
11
|
- \`size\`: ButtonSizeVariant - The size of the button
|
|
12
|
+
- \`gradient\`: ButtonGradient - Optional gradient overlay effect ('darken' | 'lighten'). Only applies to 'contained' type buttons.
|
|
12
13
|
- \`leftIcon\`: IconName | React.ReactNode - Icon to display on the left side. Can be an icon name or custom component (ReactNode)
|
|
13
14
|
- \`rightIcon\`: IconName | React.ReactNode - Icon to display on the right side. Can be an icon name or custom component (ReactNode)
|
|
14
15
|
`,
|
|
@@ -16,6 +17,7 @@ export const Button = {
|
|
|
16
17
|
"Three variants: contained, outlined, text",
|
|
17
18
|
"Five intent colors for semantic meaning",
|
|
18
19
|
"Three sizes: sm, md, lg",
|
|
20
|
+
"Gradient overlay effects (darken/lighten) for contained buttons",
|
|
19
21
|
"Icon support with string names or custom React elements",
|
|
20
22
|
"Loading and disabled states",
|
|
21
23
|
"Full width option",
|
|
@@ -26,6 +28,7 @@ export const Button = {
|
|
|
26
28
|
"Use 'contained' variant for prominent actions",
|
|
27
29
|
"Use icon names (strings) for consistency with design system",
|
|
28
30
|
"Keep button labels concise and action-oriented",
|
|
31
|
+
"Use gradient='darken' for a subtle depth effect on hero/CTA buttons",
|
|
29
32
|
],
|
|
30
33
|
usage: `
|
|
31
34
|
import { Button } from '@idealyst/components';
|
|
@@ -82,6 +85,26 @@ function Example() {
|
|
|
82
85
|
</Button>
|
|
83
86
|
);
|
|
84
87
|
}`,
|
|
88
|
+
gradient: `import { Button } from '@idealyst/components';
|
|
89
|
+
|
|
90
|
+
// Gradient overlay adds subtle depth to contained buttons
|
|
91
|
+
<Button type="contained" intent="primary" gradient="darken">
|
|
92
|
+
Darken Effect
|
|
93
|
+
</Button>
|
|
94
|
+
|
|
95
|
+
<Button type="contained" intent="success" gradient="lighten">
|
|
96
|
+
Lighten Effect
|
|
97
|
+
</Button>
|
|
98
|
+
|
|
99
|
+
// Gradient with icons
|
|
100
|
+
<Button
|
|
101
|
+
type="contained"
|
|
102
|
+
intent="primary"
|
|
103
|
+
gradient="darken"
|
|
104
|
+
leftIcon="rocket-launch"
|
|
105
|
+
>
|
|
106
|
+
Launch
|
|
107
|
+
</Button>`,
|
|
85
108
|
}
|
|
86
109
|
};
|
|
87
110
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/data/components/Button.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACtB,QAAQ,EAAE,MAAM;IACZ,WAAW,EAAE,8EAA8E;IACvF,KAAK,EAAE
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/data/components/Button.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACtB,QAAQ,EAAE,MAAM;IACZ,WAAW,EAAE,8EAA8E;IACvF,KAAK,EAAE;;;;;;;;;;;CAWd;IACG,QAAQ,EAAE;QACR,2CAA2C;QAC3C,yCAAyC;QACzC,yBAAyB;QACzB,iEAAiE;QACjE,yDAAyD;QACzD,6BAA6B;QAC7B,mBAAmB;QACnB,uCAAuC;KACxC;IACD,aAAa,EAAE;QACb,uCAAuC;QACvC,+CAA+C;QAC/C,6DAA6D;QAC7D,gDAAgD;QAChD,qEAAqE;KACtE;IACD,KAAK,EAAE;;;;;;;;;;;CAWV;IACG,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;UAKH;QACJ,QAAQ,EAAE;;;;;mDAKmC;QAC7C,YAAY,EAAE;;;;;;;;wBAQI;QAClB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;EAoBjB;QACI,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;UAmBN;KACL;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/data/components/TabBar.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/data/components/TabBar.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAuPlB,CAAC"}
|
|
@@ -1,38 +1,46 @@
|
|
|
1
1
|
export const TabBar = {
|
|
2
2
|
category: "navigation",
|
|
3
|
-
description: "Tab bar navigation component with spacing variants for switching between views or sections",
|
|
3
|
+
description: "Tab bar navigation component with icons, layout options, and spacing variants for switching between views or sections",
|
|
4
4
|
props: `
|
|
5
5
|
- \`items\`: TabBarItem[] - Array of tab items to display
|
|
6
|
+
- \`value\`: string - Unique identifier for the tab
|
|
7
|
+
- \`label\`: string - Display text for the tab
|
|
8
|
+
- \`icon\`: ReactNode | ((props: { active: boolean; size: number }) => ReactNode) - Optional icon
|
|
9
|
+
- \`disabled\`: boolean - Whether the tab is disabled
|
|
6
10
|
- \`value\`: string - The currently selected tab value (controlled)
|
|
7
11
|
- \`defaultValue\`: string - The default selected tab for uncontrolled usage
|
|
8
12
|
- \`onChange\`: function - Called when the selected tab changes
|
|
9
|
-
- \`type\`:
|
|
10
|
-
- \`size\`:
|
|
11
|
-
- \`
|
|
13
|
+
- \`type\`: 'standard' | 'pills' | 'underline' - The visual style variant
|
|
14
|
+
- \`size\`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' - The size variant of the tabs
|
|
15
|
+
- \`iconPosition\`: 'left' | 'top' - Position of icon relative to label (default: 'left')
|
|
16
|
+
- \`justify\`: 'start' | 'center' | 'equal' | 'space-between' - Layout justification (default: 'start')
|
|
17
|
+
- \`pillMode\`: 'light' | 'dark' - Mode for pills variant
|
|
18
|
+
- \`gap\`: Size - Space between tabs
|
|
12
19
|
- \`padding\`: Size - Padding on all sides
|
|
13
20
|
- \`paddingVertical\`: Size - Top and bottom padding
|
|
14
21
|
- \`paddingHorizontal\`: Size - Left and right padding
|
|
15
22
|
- \`margin\`: Size - Margin on all sides
|
|
16
23
|
- \`marginVertical\`: Size - Top and bottom margin
|
|
17
24
|
- \`marginHorizontal\`: Size - Left and right margin
|
|
18
|
-
- \`pillMode\`: TabBarPillMode - Mode for pills variant: 'light' for light backgrounds (dark pill), 'dark' for dark backgrounds (light pill)
|
|
19
25
|
`,
|
|
20
26
|
features: [
|
|
21
|
-
"Three visual variants",
|
|
27
|
+
"Three visual variants (standard, pills, underline)",
|
|
28
|
+
"Icon support with render function for active state",
|
|
29
|
+
"Icon position: left (horizontal) or top (stacked)",
|
|
30
|
+
"Layout justification: start, center, equal, space-between",
|
|
22
31
|
"Controlled and uncontrolled modes",
|
|
23
|
-
"
|
|
32
|
+
"Five sizes (xs, sm, md, lg, xl)",
|
|
24
33
|
"Gap, padding, and margin variants",
|
|
25
|
-
"Five intent colors",
|
|
26
34
|
"Disabled tabs",
|
|
27
|
-
"Simple configuration",
|
|
28
35
|
],
|
|
29
36
|
bestPractices: [
|
|
30
37
|
"Use 'underline' variant for page-level navigation",
|
|
31
38
|
"Use 'pills' variant for contained sections",
|
|
39
|
+
"Use justify='equal' with iconPosition='top' for bottom navigation style",
|
|
40
|
+
"Use icon render function to change color based on active state",
|
|
32
41
|
"Keep tab labels short (1-2 words)",
|
|
33
42
|
"Use 3-5 tabs for optimal UX",
|
|
34
43
|
"Disable tabs when content is unavailable",
|
|
35
|
-
"Preload tab content for smooth transitions",
|
|
36
44
|
],
|
|
37
45
|
usage: `
|
|
38
46
|
import { TabBar } from '@idealyst/components';
|
|
@@ -73,33 +81,48 @@ const items = [
|
|
|
73
81
|
{ value: 'b', label: 'Second' },
|
|
74
82
|
];
|
|
75
83
|
|
|
76
|
-
<View
|
|
77
|
-
<TabBar items={items} type="
|
|
84
|
+
<View gap="md">
|
|
85
|
+
<TabBar items={items} type="standard" />
|
|
78
86
|
<TabBar items={items} type="pills" />
|
|
79
87
|
<TabBar items={items} type="underline" />
|
|
80
88
|
</View>`,
|
|
81
|
-
"with-icons": `import { TabBar, View,
|
|
89
|
+
"with-icons": `import { TabBar, View, Icon } from '@idealyst/components';
|
|
82
90
|
import { useState } from 'react';
|
|
83
91
|
|
|
84
92
|
function Example() {
|
|
85
|
-
const [tab, setTab] = useState('
|
|
93
|
+
const [tab, setTab] = useState('home');
|
|
86
94
|
|
|
87
95
|
const items = [
|
|
88
|
-
{
|
|
89
|
-
|
|
90
|
-
|
|
96
|
+
{
|
|
97
|
+
value: 'home',
|
|
98
|
+
label: 'Home',
|
|
99
|
+
icon: ({ active, size }) => (
|
|
100
|
+
<Icon name="home" size={size} color={active ? 'primary' : 'secondary'} />
|
|
101
|
+
),
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
value: 'search',
|
|
105
|
+
label: 'Search',
|
|
106
|
+
icon: ({ active, size }) => (
|
|
107
|
+
<Icon name="magnify" size={size} color={active ? 'primary' : 'secondary'} />
|
|
108
|
+
),
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
value: 'profile',
|
|
112
|
+
label: 'Profile',
|
|
113
|
+
icon: ({ active, size }) => (
|
|
114
|
+
<Icon name="account" size={size} color={active ? 'primary' : 'secondary'} />
|
|
115
|
+
),
|
|
116
|
+
},
|
|
91
117
|
];
|
|
92
118
|
|
|
93
119
|
return (
|
|
94
|
-
<View
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
intent="primary"
|
|
101
|
-
/>
|
|
102
|
-
<Text>{tab} content here</Text>
|
|
120
|
+
<View gap="md">
|
|
121
|
+
{/* Icons on left (default) */}
|
|
122
|
+
<TabBar items={items} value={tab} onChange={setTab} iconPosition="left" />
|
|
123
|
+
|
|
124
|
+
{/* Icons on top (stacked) */}
|
|
125
|
+
<TabBar items={items} value={tab} onChange={setTab} iconPosition="top" />
|
|
103
126
|
</View>
|
|
104
127
|
);
|
|
105
128
|
}`,
|
|
@@ -130,7 +153,7 @@ function Example() {
|
|
|
130
153
|
};
|
|
131
154
|
|
|
132
155
|
return (
|
|
133
|
-
<View
|
|
156
|
+
<View gap="md">
|
|
134
157
|
<TabBar
|
|
135
158
|
items={items}
|
|
136
159
|
value={activeTab}
|
|
@@ -142,6 +165,79 @@ function Example() {
|
|
|
142
165
|
</Card>
|
|
143
166
|
</View>
|
|
144
167
|
);
|
|
168
|
+
}`,
|
|
169
|
+
justify: `import { TabBar, View, Text } from '@idealyst/components';
|
|
170
|
+
|
|
171
|
+
const items = [
|
|
172
|
+
{ value: 'tab1', label: 'Tab 1' },
|
|
173
|
+
{ value: 'tab2', label: 'Tab 2' },
|
|
174
|
+
{ value: 'tab3', label: 'Tab 3' },
|
|
175
|
+
];
|
|
176
|
+
|
|
177
|
+
<View gap="md">
|
|
178
|
+
{/* Left aligned (default) */}
|
|
179
|
+
<Text typography="caption">justify="start"</Text>
|
|
180
|
+
<TabBar items={items} justify="start" />
|
|
181
|
+
|
|
182
|
+
{/* Centered */}
|
|
183
|
+
<Text typography="caption">justify="center"</Text>
|
|
184
|
+
<TabBar items={items} justify="center" />
|
|
185
|
+
|
|
186
|
+
{/* Full width, equal sized tabs */}
|
|
187
|
+
<Text typography="caption">justify="equal"</Text>
|
|
188
|
+
<TabBar items={items} justify="equal" />
|
|
189
|
+
|
|
190
|
+
{/* Space between tabs */}
|
|
191
|
+
<Text typography="caption">justify="space-between"</Text>
|
|
192
|
+
<TabBar items={items} justify="space-between" />
|
|
193
|
+
</View>`,
|
|
194
|
+
"bottom-nav": `import { TabBar, Icon } from '@idealyst/components';
|
|
195
|
+
import { useState } from 'react';
|
|
196
|
+
|
|
197
|
+
// Bottom navigation style: full width with stacked icons
|
|
198
|
+
function BottomNav() {
|
|
199
|
+
const [tab, setTab] = useState('home');
|
|
200
|
+
|
|
201
|
+
const items = [
|
|
202
|
+
{
|
|
203
|
+
value: 'home',
|
|
204
|
+
label: 'Home',
|
|
205
|
+
icon: ({ active, size }) => (
|
|
206
|
+
<Icon name="home" size={size} color={active ? 'primary' : 'secondary'} />
|
|
207
|
+
),
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
value: 'search',
|
|
211
|
+
label: 'Search',
|
|
212
|
+
icon: ({ active, size }) => (
|
|
213
|
+
<Icon name="magnify" size={size} color={active ? 'primary' : 'secondary'} />
|
|
214
|
+
),
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
value: 'notifications',
|
|
218
|
+
label: 'Alerts',
|
|
219
|
+
icon: ({ active, size }) => (
|
|
220
|
+
<Icon name="bell" size={size} color={active ? 'primary' : 'secondary'} />
|
|
221
|
+
),
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
value: 'profile',
|
|
225
|
+
label: 'Profile',
|
|
226
|
+
icon: ({ active, size }) => (
|
|
227
|
+
<Icon name="account" size={size} color={active ? 'primary' : 'secondary'} />
|
|
228
|
+
),
|
|
229
|
+
},
|
|
230
|
+
];
|
|
231
|
+
|
|
232
|
+
return (
|
|
233
|
+
<TabBar
|
|
234
|
+
items={items}
|
|
235
|
+
value={tab}
|
|
236
|
+
onChange={setTab}
|
|
237
|
+
justify="equal"
|
|
238
|
+
iconPosition="top"
|
|
239
|
+
/>
|
|
240
|
+
);
|
|
145
241
|
}`,
|
|
146
242
|
},
|
|
147
243
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../src/data/components/TabBar.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../src/data/components/TabBar.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,uHAAuH;IAChI,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBZ;IACC,QAAQ,EAAE;QACR,oDAAoD;QACpD,oDAAoD;QACpD,mDAAmD;QACnD,2DAA2D;QAC3D,mCAAmC;QACnC,iCAAiC;QACjC,mCAAmC;QACnC,eAAe;KAChB;IACD,aAAa,EAAE;QACb,mDAAmD;QACnD,4CAA4C;QAC5C,yEAAyE;QACzE,gEAAgE;QAChE,mCAAmC;QACnC,6BAA6B;QAC7B,0CAA0C;KAC3C;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;;;0CAO+B;QAEtC,QAAQ,EAAE;;;;;;;;;;;QAWN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuChB;QAEE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCf;QAEE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;QAwBL;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+ChB;KACC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idealyst/mcp-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "MCP server providing documentation and examples for the Idealyst framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"author": "Idealyst",
|
|
36
36
|
"license": "MIT",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@idealyst/components": "^1.1.
|
|
39
|
-
"@idealyst/navigation": "^1.1.
|
|
40
|
-
"@idealyst/theme": "^1.1.
|
|
38
|
+
"@idealyst/components": "^1.1.4",
|
|
39
|
+
"@idealyst/navigation": "^1.1.4",
|
|
40
|
+
"@idealyst/theme": "^1.1.4",
|
|
41
41
|
"@modelcontextprotocol/sdk": "^1.0.4"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|