@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,129 @@
|
|
|
1
|
+
export const Slider = {
|
|
2
|
+
category: "form",
|
|
3
|
+
description: "Input slider for selecting numeric values from a range",
|
|
4
|
+
props: `
|
|
5
|
+
- \`value\`: number - Current slider value
|
|
6
|
+
- \`defaultValue\`: number - Default value (uncontrolled)
|
|
7
|
+
- \`min\`: number - Minimum value (default: 0)
|
|
8
|
+
- \`max\`: number - Maximum value (default: 100)
|
|
9
|
+
- \`step\`: number - Step increment (default: 1)
|
|
10
|
+
- \`disabled\`: boolean - Whether slider is disabled
|
|
11
|
+
- \`showValue\`: boolean - Show current value label
|
|
12
|
+
- \`showMinMax\`: boolean - Show min/max labels
|
|
13
|
+
- \`marks\`: SliderMark[] - Custom marks on slider
|
|
14
|
+
- \`value\`: number - Mark position
|
|
15
|
+
- \`label\`: string - Mark label (optional)
|
|
16
|
+
- \`intent\`: 'primary' | 'success' | 'error' | 'warning' | 'neutral' - Color scheme
|
|
17
|
+
- \`size\`: 'small' | 'medium' | 'large' - Slider size
|
|
18
|
+
- \`onValueChange\`: (value: number) => void - Called during drag
|
|
19
|
+
- \`onValueCommit\`: (value: number) => void - Called when drag ends
|
|
20
|
+
- \`style\`: ViewStyle - Additional styles
|
|
21
|
+
- \`testID\`: string - Test identifier
|
|
22
|
+
`,
|
|
23
|
+
features: [
|
|
24
|
+
"Controlled and uncontrolled modes",
|
|
25
|
+
"Min/max value constraints",
|
|
26
|
+
"Step increment",
|
|
27
|
+
"Custom marks",
|
|
28
|
+
"Value display",
|
|
29
|
+
"Min/max labels",
|
|
30
|
+
"Three sizes",
|
|
31
|
+
"Five intent colors",
|
|
32
|
+
"Change and commit callbacks",
|
|
33
|
+
],
|
|
34
|
+
bestPractices: [
|
|
35
|
+
"Use for continuous numeric values",
|
|
36
|
+
"Show current value for user feedback",
|
|
37
|
+
"Use marks for important values",
|
|
38
|
+
"Set appropriate step size for precision",
|
|
39
|
+
"Use onValueCommit for expensive operations",
|
|
40
|
+
"Provide min/max labels for context",
|
|
41
|
+
],
|
|
42
|
+
usage: `
|
|
43
|
+
import { Slider } from '@idealyst/components';
|
|
44
|
+
import { useState } from 'react';
|
|
45
|
+
|
|
46
|
+
function Example() {
|
|
47
|
+
const [value, setValue] = useState(50);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<Slider
|
|
51
|
+
value={value}
|
|
52
|
+
onValueChange={setValue}
|
|
53
|
+
min={0}
|
|
54
|
+
max={100}
|
|
55
|
+
step={5}
|
|
56
|
+
showValue
|
|
57
|
+
showMinMax
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
`,
|
|
62
|
+
examples: {
|
|
63
|
+
basic: `import { Slider } from '@idealyst/components';
|
|
64
|
+
|
|
65
|
+
<Slider min={0} max={100} defaultValue={50} />`,
|
|
66
|
+
variants: `import { Slider, View } from '@idealyst/components';
|
|
67
|
+
|
|
68
|
+
<View spacing="md">
|
|
69
|
+
<Slider size="small" value={25} />
|
|
70
|
+
<Slider size="medium" value={50} />
|
|
71
|
+
<Slider size="large" value={75} />
|
|
72
|
+
</View>`,
|
|
73
|
+
"with-icons": `import { Slider, View, Text, Icon } from '@idealyst/components';
|
|
74
|
+
import { useState } from 'react';
|
|
75
|
+
|
|
76
|
+
function VolumeControl() {
|
|
77
|
+
const [volume, setVolume] = useState(50);
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<View spacing="sm">
|
|
81
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 12 }}>
|
|
82
|
+
<Icon name="volume-low" size="md" />
|
|
83
|
+
<Slider
|
|
84
|
+
value={volume}
|
|
85
|
+
onValueChange={setVolume}
|
|
86
|
+
min={0}
|
|
87
|
+
max={100}
|
|
88
|
+
style={{ flex: 1 }}
|
|
89
|
+
/>
|
|
90
|
+
<Icon name="volume-high" size="md" />
|
|
91
|
+
</View>
|
|
92
|
+
<Text align="center">{volume}%</Text>
|
|
93
|
+
</View>
|
|
94
|
+
);
|
|
95
|
+
}`,
|
|
96
|
+
interactive: `import { Slider, View, Text, Button } from '@idealyst/components';
|
|
97
|
+
import { useState } from 'react';
|
|
98
|
+
|
|
99
|
+
function Example() {
|
|
100
|
+
const [price, setPrice] = useState(50);
|
|
101
|
+
|
|
102
|
+
const marks = [
|
|
103
|
+
{ value: 0, label: '$0' },
|
|
104
|
+
{ value: 50, label: '$50' },
|
|
105
|
+
{ value: 100, label: '$100' },
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
<View spacing="md">
|
|
110
|
+
<Text weight="bold">Price Range: \${price}</Text>
|
|
111
|
+
<Slider
|
|
112
|
+
value={price}
|
|
113
|
+
onValueChange={setPrice}
|
|
114
|
+
min={0}
|
|
115
|
+
max={100}
|
|
116
|
+
step={5}
|
|
117
|
+
marks={marks}
|
|
118
|
+
showValue
|
|
119
|
+
intent="primary"
|
|
120
|
+
/>
|
|
121
|
+
<Button onPress={() => console.log('Filter:', price)}>
|
|
122
|
+
Apply Filter
|
|
123
|
+
</Button>
|
|
124
|
+
</View>
|
|
125
|
+
);
|
|
126
|
+
}`,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=Slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../src/data/components/Slider.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,wDAAwD;IACrE,KAAK,EAAE;;;;;;;;;;;;;;;;;;CAkBR;IACC,QAAQ,EAAE;QACR,mCAAmC;QACnC,2BAA2B;QAC3B,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,oBAAoB;QACpB,6BAA6B;KAC9B;IACD,aAAa,EAAE;QACb,mCAAmC;QACnC,sCAAsC;QACtC,gCAAgC;QAChC,yCAAyC;QACzC,4CAA4C;QAC5C,oCAAoC;KACrC;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;;;;CAmBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;+CAEoC;QAE3C,QAAQ,EAAE;;;;;;QAMN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;EAsBhB;QAEE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Bf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Switch: {
|
|
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=Switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/data/components/Switch.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAgIlB,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export const Switch = {
|
|
2
|
+
category: "form",
|
|
3
|
+
description: "Toggle switch for binary on/off states",
|
|
4
|
+
props: `
|
|
5
|
+
- \`checked\`: boolean - Whether the switch is checked/on
|
|
6
|
+
- \`onCheckedChange\`: (checked: boolean) => void - Called when switch toggles
|
|
7
|
+
- \`disabled\`: boolean - Whether the switch is disabled
|
|
8
|
+
- \`label\`: string - Label text next to switch
|
|
9
|
+
- \`labelPosition\`: 'left' | 'right' - Position of label relative to switch
|
|
10
|
+
- \`intent\`: 'primary' | 'neutral' | 'success' | 'error' | 'warning' - Color scheme
|
|
11
|
+
- \`size\`: 'small' | 'medium' | 'large' - Switch size
|
|
12
|
+
- \`enabledIcon\`: IconName | ReactNode - Icon shown when enabled
|
|
13
|
+
- \`disabledIcon\`: IconName | ReactNode - Icon shown when disabled
|
|
14
|
+
- \`style\`: ViewStyle - Additional styles
|
|
15
|
+
- \`testID\`: string - Test identifier
|
|
16
|
+
`,
|
|
17
|
+
features: [
|
|
18
|
+
"Binary on/off toggle",
|
|
19
|
+
"Label with configurable position",
|
|
20
|
+
"Three sizes",
|
|
21
|
+
"Five intent colors",
|
|
22
|
+
"Custom icons for states",
|
|
23
|
+
"Disabled state",
|
|
24
|
+
"Animated transition",
|
|
25
|
+
],
|
|
26
|
+
bestPractices: [
|
|
27
|
+
"Use for binary settings (on/off, enabled/disabled)",
|
|
28
|
+
"Provide clear labels",
|
|
29
|
+
"Use intent colors to indicate state meaning",
|
|
30
|
+
"Place label on left for form layouts",
|
|
31
|
+
"Use icons sparingly for clarity",
|
|
32
|
+
"Immediate effect - no submit button needed",
|
|
33
|
+
],
|
|
34
|
+
usage: `
|
|
35
|
+
import { Switch } from '@idealyst/components';
|
|
36
|
+
import { useState } from 'react';
|
|
37
|
+
|
|
38
|
+
function Example() {
|
|
39
|
+
const [enabled, setEnabled] = useState(false);
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<Switch
|
|
43
|
+
checked={enabled}
|
|
44
|
+
onCheckedChange={setEnabled}
|
|
45
|
+
label="Enable notifications"
|
|
46
|
+
intent="primary"
|
|
47
|
+
/>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
`,
|
|
51
|
+
examples: {
|
|
52
|
+
basic: `import { Switch } from '@idealyst/components';
|
|
53
|
+
|
|
54
|
+
<Switch label="Enable feature" />`,
|
|
55
|
+
variants: `import { Switch, View } from '@idealyst/components';
|
|
56
|
+
|
|
57
|
+
<View spacing="md">
|
|
58
|
+
<Switch label="Small" size="small" checked />
|
|
59
|
+
<Switch label="Medium" size="medium" checked />
|
|
60
|
+
<Switch label="Large" size="large" checked />
|
|
61
|
+
</View>`,
|
|
62
|
+
"with-icons": `import { Switch, View } from '@idealyst/components';
|
|
63
|
+
import { useState } from 'react';
|
|
64
|
+
|
|
65
|
+
function Example() {
|
|
66
|
+
const [darkMode, setDarkMode] = useState(false);
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<Switch
|
|
70
|
+
checked={darkMode}
|
|
71
|
+
onCheckedChange={setDarkMode}
|
|
72
|
+
label="Dark Mode"
|
|
73
|
+
enabledIcon="weather-night"
|
|
74
|
+
disabledIcon="white-balance-sunny"
|
|
75
|
+
intent="primary"
|
|
76
|
+
/>
|
|
77
|
+
);
|
|
78
|
+
}`,
|
|
79
|
+
interactive: `import { Switch, View, Text, Card } from '@idealyst/components';
|
|
80
|
+
import { useState } from 'react';
|
|
81
|
+
|
|
82
|
+
function SettingsPanel() {
|
|
83
|
+
const [settings, setSettings] = useState({
|
|
84
|
+
notifications: true,
|
|
85
|
+
location: false,
|
|
86
|
+
analytics: true,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const toggle = (key: string) => {
|
|
90
|
+
setSettings({ ...settings, [key]: !settings[key] });
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
return (
|
|
94
|
+
<Card variant="outlined" padding="medium">
|
|
95
|
+
<View spacing="md">
|
|
96
|
+
<Text weight="bold">Privacy Settings</Text>
|
|
97
|
+
|
|
98
|
+
<Switch
|
|
99
|
+
checked={settings.notifications}
|
|
100
|
+
onCheckedChange={() => toggle('notifications')}
|
|
101
|
+
label="Push Notifications"
|
|
102
|
+
labelPosition="left"
|
|
103
|
+
intent="primary"
|
|
104
|
+
/>
|
|
105
|
+
|
|
106
|
+
<Switch
|
|
107
|
+
checked={settings.location}
|
|
108
|
+
onCheckedChange={() => toggle('location')}
|
|
109
|
+
label="Location Services"
|
|
110
|
+
labelPosition="left"
|
|
111
|
+
intent="warning"
|
|
112
|
+
/>
|
|
113
|
+
|
|
114
|
+
<Switch
|
|
115
|
+
checked={settings.analytics}
|
|
116
|
+
onCheckedChange={() => toggle('analytics')}
|
|
117
|
+
label="Analytics & Data"
|
|
118
|
+
labelPosition="left"
|
|
119
|
+
intent="neutral"
|
|
120
|
+
/>
|
|
121
|
+
</View>
|
|
122
|
+
</Card>
|
|
123
|
+
);
|
|
124
|
+
}`,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=Switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/data/components/Switch.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,wCAAwC;IACrD,KAAK,EAAE;;;;;;;;;;;;CAYR;IACC,QAAQ,EAAE;QACR,sBAAsB;QACtB,kCAAkC;QAClC,aAAa;QACb,oBAAoB;QACpB,yBAAyB;QACzB,gBAAgB;QAChB,qBAAqB;KACtB;IACD,aAAa,EAAE;QACb,oDAAoD;QACpD,sBAAsB;QACtB,6CAA6C;QAC7C,sCAAsC;QACtC,iCAAiC;QACjC,4CAA4C;KAC7C;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;CAgBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;kCAEuB;QAE9B,QAAQ,EAAE;;;;;;QAMN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;EAgBhB;QAEE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6Cf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const TabBar: {
|
|
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=TabBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/data/components/TabBar.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAkJlB,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
export const TabBar = {
|
|
2
|
+
category: "navigation",
|
|
3
|
+
description: "Tab bar navigation component for switching between views or sections",
|
|
4
|
+
props: `
|
|
5
|
+
- \`items\`: TabBarItem[] - Array of tab items
|
|
6
|
+
- \`value\`: string - Unique tab value
|
|
7
|
+
- \`label\`: string - Tab label text
|
|
8
|
+
- \`disabled\`: boolean - Whether tab is disabled
|
|
9
|
+
- \`value\`: string - Currently active tab value
|
|
10
|
+
- \`defaultValue\`: string - Default tab (uncontrolled)
|
|
11
|
+
- \`onChange\`: (value: string) => void - Tab change handler
|
|
12
|
+
- \`variant\`: 'default' | 'pills' | 'underline' - Visual style
|
|
13
|
+
- \`size\`: 'small' | 'medium' | 'large' - Tab size
|
|
14
|
+
- \`intent\`: 'primary' | 'neutral' | 'success' | 'error' | 'warning' - Color scheme
|
|
15
|
+
- \`style\`: ViewStyle - Additional styles
|
|
16
|
+
- \`testID\`: string - Test identifier
|
|
17
|
+
`,
|
|
18
|
+
features: [
|
|
19
|
+
"Three visual variants",
|
|
20
|
+
"Controlled and uncontrolled modes",
|
|
21
|
+
"Three sizes",
|
|
22
|
+
"Five intent colors",
|
|
23
|
+
"Disabled tabs",
|
|
24
|
+
"Simple configuration",
|
|
25
|
+
],
|
|
26
|
+
bestPractices: [
|
|
27
|
+
"Use 'underline' variant for page-level navigation",
|
|
28
|
+
"Use 'pills' variant for contained sections",
|
|
29
|
+
"Keep tab labels short (1-2 words)",
|
|
30
|
+
"Use 3-5 tabs for optimal UX",
|
|
31
|
+
"Disable tabs when content is unavailable",
|
|
32
|
+
"Preload tab content for smooth transitions",
|
|
33
|
+
],
|
|
34
|
+
usage: `
|
|
35
|
+
import { TabBar } from '@idealyst/components';
|
|
36
|
+
import { useState } from 'react';
|
|
37
|
+
|
|
38
|
+
function Example() {
|
|
39
|
+
const [activeTab, setActiveTab] = useState('home');
|
|
40
|
+
|
|
41
|
+
const items = [
|
|
42
|
+
{ value: 'home', label: 'Home' },
|
|
43
|
+
{ value: 'profile', label: 'Profile' },
|
|
44
|
+
{ value: 'settings', label: 'Settings' },
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<TabBar
|
|
49
|
+
items={items}
|
|
50
|
+
value={activeTab}
|
|
51
|
+
onChange={setActiveTab}
|
|
52
|
+
variant="underline"
|
|
53
|
+
/>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
`,
|
|
57
|
+
examples: {
|
|
58
|
+
basic: `import { TabBar } from '@idealyst/components';
|
|
59
|
+
|
|
60
|
+
const items = [
|
|
61
|
+
{ value: '1', label: 'Tab 1' },
|
|
62
|
+
{ value: '2', label: 'Tab 2' },
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
<TabBar items={items} defaultValue="1" />`,
|
|
66
|
+
variants: `import { TabBar, View } from '@idealyst/components';
|
|
67
|
+
|
|
68
|
+
const items = [
|
|
69
|
+
{ value: 'a', label: 'First' },
|
|
70
|
+
{ value: 'b', label: 'Second' },
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
<View spacing="md">
|
|
74
|
+
<TabBar items={items} variant="default" />
|
|
75
|
+
<TabBar items={items} variant="pills" />
|
|
76
|
+
<TabBar items={items} variant="underline" />
|
|
77
|
+
</View>`,
|
|
78
|
+
"with-icons": `import { TabBar, View, Text } from '@idealyst/components';
|
|
79
|
+
import { useState } from 'react';
|
|
80
|
+
|
|
81
|
+
function Example() {
|
|
82
|
+
const [tab, setTab] = useState('overview');
|
|
83
|
+
|
|
84
|
+
const items = [
|
|
85
|
+
{ value: 'overview', label: 'Overview' },
|
|
86
|
+
{ value: 'analytics', label: 'Analytics' },
|
|
87
|
+
{ value: 'reports', label: 'Reports' },
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<View spacing="md">
|
|
92
|
+
<TabBar
|
|
93
|
+
items={items}
|
|
94
|
+
value={tab}
|
|
95
|
+
onChange={setTab}
|
|
96
|
+
variant="underline"
|
|
97
|
+
intent="primary"
|
|
98
|
+
/>
|
|
99
|
+
<Text>{tab} content here</Text>
|
|
100
|
+
</View>
|
|
101
|
+
);
|
|
102
|
+
}`,
|
|
103
|
+
interactive: `import { TabBar, View, Text, Card } from '@idealyst/components';
|
|
104
|
+
import { useState } from 'react';
|
|
105
|
+
|
|
106
|
+
function Example() {
|
|
107
|
+
const [activeTab, setActiveTab] = useState('personal');
|
|
108
|
+
|
|
109
|
+
const items = [
|
|
110
|
+
{ value: 'personal', label: 'Personal Info' },
|
|
111
|
+
{ value: 'security', label: 'Security' },
|
|
112
|
+
{ value: 'notifications', label: 'Notifications' },
|
|
113
|
+
{ value: 'billing', label: 'Billing', disabled: true },
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
const renderContent = () => {
|
|
117
|
+
switch (activeTab) {
|
|
118
|
+
case 'personal':
|
|
119
|
+
return <Text>Personal information settings</Text>;
|
|
120
|
+
case 'security':
|
|
121
|
+
return <Text>Security and privacy settings</Text>;
|
|
122
|
+
case 'notifications':
|
|
123
|
+
return <Text>Notification preferences</Text>;
|
|
124
|
+
default:
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
return (
|
|
130
|
+
<View spacing="md">
|
|
131
|
+
<TabBar
|
|
132
|
+
items={items}
|
|
133
|
+
value={activeTab}
|
|
134
|
+
onChange={setActiveTab}
|
|
135
|
+
variant="pills"
|
|
136
|
+
/>
|
|
137
|
+
<Card variant="outlined" padding="medium">
|
|
138
|
+
{renderContent()}
|
|
139
|
+
</Card>
|
|
140
|
+
</View>
|
|
141
|
+
);
|
|
142
|
+
}`,
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=TabBar.js.map
|
|
@@ -0,0 +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,sEAAsE;IACnF,KAAK,EAAE;;;;;;;;;;;;;CAaR;IACC,QAAQ,EAAE;QACR,uBAAuB;QACvB,mCAAmC;QACnC,aAAa;QACb,oBAAoB;QACpB,eAAe;QACf,sBAAsB;KACvB;IACD,aAAa,EAAE;QACb,mDAAmD;QACnD,4CAA4C;QAC5C,mCAAmC;QACnC,6BAA6B;QAC7B,0CAA0C;QAC1C,4CAA4C;KAC7C;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;;;0CAO+B;QAEtC,QAAQ,EAAE;;;;;;;;;;;QAWN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EAwBhB;QAEE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Table: {
|
|
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=Table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/data/components/Table.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;;;;;CAwJjB,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
export const Table = {
|
|
2
|
+
category: "data",
|
|
3
|
+
description: "Data table component for displaying structured tabular data",
|
|
4
|
+
props: `
|
|
5
|
+
- \`columns\`: TableColumn<T>[] - Column definitions
|
|
6
|
+
- \`key\`: string - Unique column key
|
|
7
|
+
- \`title\`: string - Column header title
|
|
8
|
+
- \`dataIndex\`: string - Key in data object (optional)
|
|
9
|
+
- \`render\`: (value, row, index) => ReactNode - Custom cell renderer
|
|
10
|
+
- \`width\`: number | string - Column width
|
|
11
|
+
- \`align\`: 'left' | 'center' | 'right' - Text alignment
|
|
12
|
+
- \`data\`: T[] - Array of data objects
|
|
13
|
+
- \`variant\`: 'default' | 'bordered' | 'striped' - Visual style
|
|
14
|
+
- \`size\`: 'small' | 'medium' | 'large' - Cell padding/size
|
|
15
|
+
- \`stickyHeader\`: boolean - Keep header fixed on scroll
|
|
16
|
+
- \`onRowPress\`: (row: T, index: number) => void - Row click handler
|
|
17
|
+
- \`style\`: ViewStyle - Additional styles
|
|
18
|
+
- \`testID\`: string - Test identifier
|
|
19
|
+
`,
|
|
20
|
+
features: [
|
|
21
|
+
"Column-based configuration",
|
|
22
|
+
"Custom cell renderers",
|
|
23
|
+
"Three visual variants",
|
|
24
|
+
"Three sizes",
|
|
25
|
+
"Sticky header support",
|
|
26
|
+
"Row click handling",
|
|
27
|
+
"Column alignment",
|
|
28
|
+
"Custom column widths",
|
|
29
|
+
],
|
|
30
|
+
bestPractices: [
|
|
31
|
+
"Use render function for complex cell content",
|
|
32
|
+
"Enable stickyHeader for long tables",
|
|
33
|
+
"Use 'striped' variant for better readability",
|
|
34
|
+
"Set column widths for important columns",
|
|
35
|
+
"Keep column count reasonable for mobile",
|
|
36
|
+
"Use appropriate size for data density",
|
|
37
|
+
],
|
|
38
|
+
usage: `
|
|
39
|
+
import { Table } from '@idealyst/components';
|
|
40
|
+
|
|
41
|
+
const columns = [
|
|
42
|
+
{ key: 'name', title: 'Name', dataIndex: 'name' },
|
|
43
|
+
{ key: 'email', title: 'Email', dataIndex: 'email' },
|
|
44
|
+
{
|
|
45
|
+
key: 'status',
|
|
46
|
+
title: 'Status',
|
|
47
|
+
render: (_, row) => <Badge>{row.status}</Badge>,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const data = [
|
|
52
|
+
{ id: 1, name: 'John Doe', email: 'john@example.com', status: 'Active' },
|
|
53
|
+
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', status: 'Inactive' },
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
<Table columns={columns} data={data} variant="striped" />
|
|
57
|
+
`,
|
|
58
|
+
examples: {
|
|
59
|
+
basic: `import { Table } from '@idealyst/components';
|
|
60
|
+
|
|
61
|
+
const columns = [
|
|
62
|
+
{ key: 'id', title: 'ID', dataIndex: 'id' },
|
|
63
|
+
{ key: 'name', title: 'Name', dataIndex: 'name' },
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const data = [
|
|
67
|
+
{ id: 1, name: 'Item 1' },
|
|
68
|
+
{ id: 2, name: 'Item 2' },
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
<Table columns={columns} data={data} />`,
|
|
72
|
+
variants: `import { Table, View } from '@idealyst/components';
|
|
73
|
+
|
|
74
|
+
const columns = [{ key: 'name', title: 'Name', dataIndex: 'name' }];
|
|
75
|
+
const data = [{ name: 'Test' }];
|
|
76
|
+
|
|
77
|
+
<View spacing="md">
|
|
78
|
+
<Table columns={columns} data={data} variant="default" />
|
|
79
|
+
<Table columns={columns} data={data} variant="bordered" />
|
|
80
|
+
<Table columns={columns} data={data} variant="striped" />
|
|
81
|
+
</View>`,
|
|
82
|
+
"with-icons": `import { Table, Badge, Icon, View, Text } from '@idealyst/components';
|
|
83
|
+
|
|
84
|
+
const columns = [
|
|
85
|
+
{
|
|
86
|
+
key: 'user',
|
|
87
|
+
title: 'User',
|
|
88
|
+
render: (_, row) => (
|
|
89
|
+
<View style={{ flexDirection: 'row', gap: 8, alignItems: 'center' }}>
|
|
90
|
+
<Icon name="account-circle" size="sm" />
|
|
91
|
+
<Text>{row.name}</Text>
|
|
92
|
+
</View>
|
|
93
|
+
),
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
key: 'status',
|
|
97
|
+
title: 'Status',
|
|
98
|
+
render: (_, row) => (
|
|
99
|
+
<Badge color={row.active ? 'green' : 'gray'}>
|
|
100
|
+
{row.active ? 'Active' : 'Inactive'}
|
|
101
|
+
</Badge>
|
|
102
|
+
),
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
<Table columns={columns} data={users} />`,
|
|
107
|
+
interactive: `import { Table, Button, View, Text } from '@idealyst/components';
|
|
108
|
+
import { useState } from 'react';
|
|
109
|
+
|
|
110
|
+
function Example() {
|
|
111
|
+
const [selected, setSelected] = useState(null);
|
|
112
|
+
|
|
113
|
+
const columns = [
|
|
114
|
+
{ key: 'id', title: 'ID', dataIndex: 'id', width: 60 },
|
|
115
|
+
{ key: 'product', title: 'Product', dataIndex: 'name' },
|
|
116
|
+
{ key: 'price', title: 'Price', dataIndex: 'price', align: 'right' },
|
|
117
|
+
{
|
|
118
|
+
key: 'actions',
|
|
119
|
+
title: 'Actions',
|
|
120
|
+
render: (_, row) => (
|
|
121
|
+
<Button
|
|
122
|
+
size="small"
|
|
123
|
+
variant="outlined"
|
|
124
|
+
onPress={() => setSelected(row)}
|
|
125
|
+
>
|
|
126
|
+
View
|
|
127
|
+
</Button>
|
|
128
|
+
),
|
|
129
|
+
},
|
|
130
|
+
];
|
|
131
|
+
|
|
132
|
+
const data = [
|
|
133
|
+
{ id: 1, name: 'Product A', price: '$29.99' },
|
|
134
|
+
{ id: 2, name: 'Product B', price: '$49.99' },
|
|
135
|
+
];
|
|
136
|
+
|
|
137
|
+
return (
|
|
138
|
+
<View spacing="md">
|
|
139
|
+
<Table
|
|
140
|
+
columns={columns}
|
|
141
|
+
data={data}
|
|
142
|
+
variant="bordered"
|
|
143
|
+
onRowPress={(row) => setSelected(row)}
|
|
144
|
+
/>
|
|
145
|
+
{selected && <Text>Selected: {selected.name}</Text>}
|
|
146
|
+
</View>
|
|
147
|
+
);
|
|
148
|
+
}`,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/data/components/Table.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,6DAA6D;IAC1E,KAAK,EAAE;;;;;;;;;;;;;;;CAeR;IACC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,uBAAuB;QACvB,uBAAuB;QACvB,aAAa;QACb,uBAAuB;QACvB,oBAAoB;QACpB,kBAAkB;QAClB,sBAAsB;KACvB;IACD,aAAa,EAAE;QACb,8CAA8C;QAC9C,qCAAqC;QACrC,8CAA8C;QAC9C,yCAAyC;QACzC,yCAAyC;QACzC,uCAAuC;KACxC;IACD,KAAK,EAAE;;;;;;;;;;;;;;;;;;;CAmBR;IACC,QAAQ,EAAE;QACR,KAAK,EAAE;;;;;;;;;;;;wCAY6B;QAEpC,QAAQ,EAAE;;;;;;;;;QASN;QAEJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;yCAwBuB;QAErC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCf;KACC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Tabs: {
|
|
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=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/data/components/Tabs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI;;;;;;;;;;;;;CAuJhB,CAAC"}
|