@app-studio/web 0.9.41 → 0.9.44
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/bot/Bot.d.ts +15 -0
- package/dist/bot/Cache.d.ts +13 -0
- package/dist/bot/Config.d.ts +13 -0
- package/dist/bot/ContentFetcher.d.ts +9 -0
- package/dist/bot/DocuCode.d.ts +19 -0
- package/dist/bot/FileHandler.d.ts +39 -0
- package/dist/bot/ai/AnthropicConnector.d.ts +6 -0
- package/dist/bot/ai/GeminiConnector.d.ts +7 -0
- package/dist/bot/ai/GroqConnector.d.ts +7 -0
- package/dist/bot/ai/HuggingFaceConnector.d.ts +6 -0
- package/dist/bot/ai/OpenAIConnector.d.ts +11 -0
- package/dist/bot/ai/ReplicateConnector.d.ts +7 -0
- package/dist/bot/ai/SambaNovaConnector.d.ts +6 -0
- package/dist/bot/ai/ai.config.d.ts +12 -0
- package/dist/bot/ai/ai.service.d.ts +36 -0
- package/dist/bot/data.d.ts +19 -0
- package/dist/bot/extractors.d.ts +8 -0
- package/dist/bot/index.d.ts +1 -0
- package/dist/bot/prompt/1-project.d.ts +1 -0
- package/dist/bot/prompt/2-response.d.ts +1 -0
- package/dist/bot/prompt/3-comment.d.ts +1 -0
- package/dist/components/Title/Title/SlideEffect.d.ts +14 -0
- package/dist/components/Title/Title/Title.props.d.ts +20 -0
- package/dist/components/Title/Title/Title.state.d.ts +4 -0
- package/dist/web.cjs.development.js +265 -78
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +265 -78
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +265 -78
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/docs/components/Accordion.mdx +74 -121
- package/docs/components/Alert.mdx +19 -70
- package/docs/components/AspectRatio.mdx +13 -11
- package/docs/components/AudioInput.mdx +43 -0
- package/docs/components/Avatar.mdx +18 -43
- package/docs/components/Background.mdx +100 -492
- package/docs/components/Badge.mdx +45 -130
- package/docs/components/Button.mdx +76 -128
- package/docs/components/Calendar.mdx +7 -7
- package/docs/components/Card.mdx +247 -290
- package/docs/components/Carousel.mdx +94 -321
- package/docs/components/Chart.mdx +171 -26
- package/docs/components/ChatInput.mdx +327 -275
- package/docs/components/Checkbox.mdx +3 -5
- package/docs/components/ColorInput.mdx +6 -6
- package/docs/components/ColorPicker.mdx +452 -0
- package/docs/components/ComboBox.mdx +13 -13
- package/docs/components/Command.mdx +140 -188
- package/docs/components/ContextMenu.mdx +47 -171
- package/docs/components/CookieConsent.mdx +53 -0
- package/docs/components/CountryPicker.mdx +8 -8
- package/docs/components/DatePicker.mdx +3 -3
- package/docs/components/DragAndDrop.mdx +279 -463
- package/docs/components/Drawer.mdx +392 -231
- package/docs/components/DropdownMenu.mdx +37 -155
- package/docs/components/EmojiPicker.mdx +84 -0
- package/docs/components/File.mdx +130 -4
- package/docs/components/Formik.mdx +39 -39
- package/docs/components/Gradient.mdx +359 -182
- package/docs/components/Horizontal.mdx +1 -2
- package/docs/components/HoverCard.mdx +57 -125
- package/docs/components/KanbanBoard.mdx +9 -9
- package/docs/components/Link.mdx +22 -30
- package/docs/components/Loader.mdx +230 -413
- package/docs/components/Menubar.mdx +73 -69
- package/docs/components/Message.mdx +210 -525
- package/docs/components/Modal.mdx +351 -475
- package/docs/components/NavigationMenu.mdx +8 -8
- package/docs/components/OTPInput.mdx +194 -0
- package/docs/components/Pagination.mdx +451 -107
- package/docs/components/Password.mdx +8 -8
- package/docs/components/ProgressBar.mdx +460 -0
- package/docs/components/Resizable.mdx +103 -102
- package/docs/components/Select.mdx +5 -5
- package/docs/components/Separator.mdx +11 -98
- package/docs/components/ShareButton.mdx +29 -0
- package/docs/components/Sidebar.mdx +70 -131
- package/docs/components/Slider.mdx +99 -185
- package/docs/components/StatusIndicator.mdx +373 -0
- package/docs/components/Switch.mdx +3 -3
- package/docs/components/Table.mdx +25 -105
- package/docs/components/Tabs.mdx +40 -143
- package/docs/components/TagInput.mdx +17 -17
- package/docs/components/Text.mdx +3 -3
- package/docs/components/TextArea.mdx +6 -6
- package/docs/components/TextField.mdx +12 -12
- package/docs/components/Title.mdx +267 -525
- package/docs/components/Toast.mdx +65 -142
- package/docs/components/Toggle.mdx +37 -49
- package/docs/components/ToggleGroup.mdx +36 -57
- package/docs/components/Tooltip.mdx +501 -138
- package/docs/components/Uploader.mdx +205 -351
- package/package.json +1 -1
- package/dist/components/AuthGuard/AuthGuard.d.ts +0 -35
- package/dist/components/AuthGuard/index.d.ts +0 -1
- package/docs/adk-components.md +0 -319
- package/docs/adk-quick-start.md +0 -268
|
@@ -1,158 +1,111 @@
|
|
|
1
1
|
# Accordion
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Organizes content into collapsible sections for efficient space management.
|
|
4
4
|
|
|
5
5
|
### **Import**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
```tsx
|
|
7
|
+
import { Accordion } from '@app-studio/web';
|
|
8
|
+
```
|
|
9
9
|
|
|
10
10
|
### **Default**
|
|
11
11
|
```tsx
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { Accordion } from '
|
|
14
|
-
import { Text } from '
|
|
13
|
+
import { Accordion } from '@app-studio/web';
|
|
14
|
+
import { Text, Vertical } from 'app-studio';
|
|
15
15
|
|
|
16
16
|
export const DefaultAccordion = () => {
|
|
17
17
|
return (
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
</Accordion.
|
|
34
|
-
<Accordion.Content>
|
|
35
|
-
<Text>
|
|
36
|
-
Hooks are functions that let you "hook into" React state and lifecycle features from function components.
|
|
37
|
-
</Text>
|
|
38
|
-
</Accordion.Content>
|
|
39
|
-
</Accordion.Item>
|
|
40
|
-
</Accordion>
|
|
41
|
-
);
|
|
42
|
-
};
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### **Multiple**
|
|
46
|
-
Allow multiple items to be expanded at once.
|
|
18
|
+
<Vertical gap={20} width="100%" maxWidth={600}>
|
|
19
|
+
<Text marginBottom={10}>Default Accordion (Single)</Text>
|
|
20
|
+
<Accordion type="single" defaultValue="item-1">
|
|
21
|
+
<Accordion.Item value="item-1">
|
|
22
|
+
<Accordion.Trigger>
|
|
23
|
+
<Text fontWeight="bold">What is React?</Text>
|
|
24
|
+
</Accordion.Trigger>
|
|
25
|
+
<Accordion.Content>
|
|
26
|
+
<Text>
|
|
27
|
+
React is a JavaScript library for building user interfaces. It is
|
|
28
|
+
maintained by Facebook and a community of individual developers
|
|
29
|
+
and companies. React can be used as a base in the development of
|
|
30
|
+
single-page or mobile applications.
|
|
31
|
+
</Text>
|
|
32
|
+
</Accordion.Content>
|
|
33
|
+
</Accordion.Item>
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
<Accordion.Item value="item-2">
|
|
36
|
+
<Accordion.Trigger>
|
|
37
|
+
<Text fontWeight="bold">What are React Hooks?</Text>
|
|
38
|
+
</Accordion.Trigger>
|
|
39
|
+
<Accordion.Content>
|
|
40
|
+
<Text>
|
|
41
|
+
Hooks are functions that let you hook into React state and
|
|
42
|
+
lifecycle features from function components. Hooks dont work
|
|
43
|
+
inside classes — they let you use React without classes.
|
|
44
|
+
</Text>
|
|
45
|
+
</Accordion.Content>
|
|
46
|
+
</Accordion.Item>
|
|
52
47
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
</
|
|
64
|
-
</Accordion.
|
|
65
|
-
</Accordion
|
|
66
|
-
|
|
67
|
-
<Accordion.Item id="item-2">
|
|
68
|
-
<Accordion.Header>
|
|
69
|
-
<Text fontWeight="bold">Second Item</Text>
|
|
70
|
-
</Accordion.Header>
|
|
71
|
-
<Accordion.Content>
|
|
72
|
-
<Text>
|
|
73
|
-
This is the second item. Try expanding this while the first item is still open.
|
|
74
|
-
</Text>
|
|
75
|
-
</Accordion.Content>
|
|
76
|
-
</Accordion.Item>
|
|
77
|
-
</Accordion>
|
|
48
|
+
<Accordion.Item value="item-3">
|
|
49
|
+
<Accordion.Trigger>
|
|
50
|
+
<Text fontWeight="bold">What is JSX?</Text>
|
|
51
|
+
</Accordion.Trigger>
|
|
52
|
+
<Accordion.Content>
|
|
53
|
+
<Text>
|
|
54
|
+
JSX is a syntax extension for JavaScript. It was written to be
|
|
55
|
+
used with React and looks a lot like HTML. Because JSX is
|
|
56
|
+
JavaScript, you can use variables inside it.
|
|
57
|
+
</Text>
|
|
58
|
+
</Accordion.Content>
|
|
59
|
+
</Accordion.Item>
|
|
60
|
+
</Accordion>
|
|
61
|
+
</Vertical>
|
|
78
62
|
);
|
|
79
63
|
};
|
|
80
64
|
```
|
|
81
65
|
|
|
82
|
-
### **
|
|
83
|
-
|
|
66
|
+
### **collapsible**
|
|
67
|
+
If true, allows all accordion items to be collapsed, meaning no item has to be open.
|
|
68
|
+
|
|
69
|
+
- **Type:** `boolean`
|
|
70
|
+
- **Default:** `false`
|
|
84
71
|
|
|
85
72
|
```tsx
|
|
86
73
|
import React from 'react';
|
|
87
|
-
import { Accordion } from '
|
|
88
|
-
import { Text } from '
|
|
74
|
+
import { Accordion } from '@app-studio/web';
|
|
75
|
+
import { Text, Vertical } from 'app-studio';
|
|
89
76
|
|
|
90
|
-
export const
|
|
77
|
+
export const CollapsibleAccordion = () => {
|
|
91
78
|
return (
|
|
92
|
-
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
79
|
+
<Vertical gap={20} width="100%" maxWidth={600}>
|
|
80
|
+
<Text marginBottom={10}>Collapsible Accordion (Single)</Text>
|
|
81
|
+
<Accordion type="single" defaultValue="item-1" collapsible>
|
|
82
|
+
<Accordion.Item value="item-1">
|
|
83
|
+
<Accordion.Trigger>
|
|
84
|
+
<Text fontWeight="bold">Question 1</Text>
|
|
85
|
+
</Accordion.Trigger>
|
|
98
86
|
<Accordion.Content>
|
|
99
87
|
<Text>
|
|
100
|
-
This is the
|
|
88
|
+
This is the answer to question 1. Since `collapsible` is true, you
|
|
89
|
+
can click the trigger again to close this item, even though its
|
|
90
|
+
the only one.
|
|
101
91
|
</Text>
|
|
102
92
|
</Accordion.Content>
|
|
103
93
|
</Accordion.Item>
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
<Text fontWeight="bold">Filled Variant</Text>
|
|
110
|
-
</Accordion.Header>
|
|
94
|
+
|
|
95
|
+
<Accordion.Item value="item-2">
|
|
96
|
+
<Accordion.Trigger>
|
|
97
|
+
<Text fontWeight="bold">Question 2</Text>
|
|
98
|
+
</Accordion.Trigger>
|
|
111
99
|
<Accordion.Content>
|
|
112
100
|
<Text>
|
|
113
|
-
This is the
|
|
101
|
+
This is the answer to question 2. Only one item can be open, but
|
|
102
|
+
it can be closed entirely.
|
|
114
103
|
</Text>
|
|
115
104
|
</Accordion.Content>
|
|
116
105
|
</Accordion.Item>
|
|
117
106
|
</Accordion>
|
|
118
|
-
|
|
107
|
+
</Vertical>
|
|
119
108
|
);
|
|
120
109
|
};
|
|
121
110
|
```
|
|
122
111
|
|
|
123
|
-
### **Disabled**
|
|
124
|
-
Disable specific accordion items.
|
|
125
|
-
|
|
126
|
-
```tsx
|
|
127
|
-
import React from 'react';
|
|
128
|
-
import { Accordion } from '../Accordion';
|
|
129
|
-
import { Text } from '@app-studio/web';
|
|
130
|
-
|
|
131
|
-
export const DisabledAccordion = () => {
|
|
132
|
-
return (
|
|
133
|
-
<Accordion>
|
|
134
|
-
<Accordion.Item id="regular-1">
|
|
135
|
-
<Accordion.Header>
|
|
136
|
-
<Text fontWeight="bold">Regular Item</Text>
|
|
137
|
-
</Accordion.Header>
|
|
138
|
-
<Accordion.Content>
|
|
139
|
-
<Text>
|
|
140
|
-
This is a regular accordion item that can be expanded and collapsed.
|
|
141
|
-
</Text>
|
|
142
|
-
</Accordion.Content>
|
|
143
|
-
</Accordion.Item>
|
|
144
|
-
|
|
145
|
-
<Accordion.Item id="disabled-1" isDisabled>
|
|
146
|
-
<Accordion.Header>
|
|
147
|
-
<Text fontWeight="bold">Disabled Item</Text>
|
|
148
|
-
</Accordion.Header>
|
|
149
|
-
<Accordion.Content>
|
|
150
|
-
<Text>
|
|
151
|
-
This content won't be accessible because the item is disabled.
|
|
152
|
-
</Text>
|
|
153
|
-
</Accordion.Content>
|
|
154
|
-
</Accordion.Item>
|
|
155
|
-
</Accordion>
|
|
156
|
-
);
|
|
157
|
-
};
|
|
158
|
-
```
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# Alert
|
|
2
2
|
|
|
3
|
-
Displays
|
|
3
|
+
Displays important messages to users with various styles and states.
|
|
4
4
|
|
|
5
5
|
### **Import**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
```tsx
|
|
7
|
+
import { Alert } from '@app-studio/web';
|
|
8
|
+
```
|
|
9
9
|
|
|
10
10
|
### **Default**
|
|
11
11
|
```tsx
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { Alert } from '
|
|
13
|
+
import { Alert } from '@app-studio/web';
|
|
14
14
|
|
|
15
15
|
export const DefaultDemo = () => {
|
|
16
16
|
return (
|
|
@@ -20,37 +20,41 @@ export const DefaultDemo = () => {
|
|
|
20
20
|
/>
|
|
21
21
|
);
|
|
22
22
|
};
|
|
23
|
-
|
|
24
23
|
```
|
|
25
24
|
|
|
26
25
|
### **icon**
|
|
27
|
-
|
|
26
|
+
Custom icon element to display in the alert, overriding the default variant-based icon.
|
|
27
|
+
|
|
28
|
+
- **Type:** `ReactNode`
|
|
28
29
|
|
|
29
30
|
```tsx
|
|
30
31
|
import React from 'react';
|
|
31
|
-
import { EditIcon } from '
|
|
32
|
-
import { Alert } from '
|
|
32
|
+
import { EditIcon } from '@app-studio/web';
|
|
33
|
+
import { Alert } from '@app-studio/web';
|
|
33
34
|
|
|
34
35
|
export const IconDemo = () => {
|
|
35
36
|
return (
|
|
36
37
|
<Alert
|
|
37
38
|
title="Heads up!"
|
|
38
39
|
description="You can add components to your app using the cli."
|
|
39
|
-
icon={<EditIcon
|
|
40
|
+
icon={<EditIcon widthHeight={24} color="black" />}
|
|
40
41
|
/>
|
|
41
42
|
);
|
|
42
43
|
};
|
|
43
|
-
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### **variant**
|
|
47
|
-
|
|
47
|
+
Determines the visual style and semantic meaning of the alert.
|
|
48
|
+
|
|
49
|
+
- **Type:** `string`
|
|
50
|
+
- **Default:** `default`
|
|
51
|
+
- **Possible Values:** `default, info, success, error, warning`
|
|
48
52
|
|
|
49
53
|
```tsx
|
|
50
54
|
import React from 'react';
|
|
51
|
-
import { Horizontal } from '
|
|
52
|
-
import { Alert } from '
|
|
53
|
-
import { Variant } from '
|
|
55
|
+
import { Horizontal } from 'app-studio';
|
|
56
|
+
import { Alert } from '@app-studio/web';
|
|
57
|
+
import { Variant } from '@app-studio/web';
|
|
54
58
|
|
|
55
59
|
export const VariantDemo = () => (
|
|
56
60
|
<Horizontal gap={10}>
|
|
@@ -64,60 +68,5 @@ export const VariantDemo = () => (
|
|
|
64
68
|
))}
|
|
65
69
|
</Horizontal>
|
|
66
70
|
);
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### **styles**
|
|
71
|
-
Optional styles property to apply custom styles to the alert component
|
|
72
|
-
|
|
73
|
-
```tsx
|
|
74
|
-
import React from 'react';
|
|
75
|
-
import { Alert } from '../Alert';
|
|
76
|
-
|
|
77
|
-
export const StylesDemo = () => (
|
|
78
|
-
<Alert
|
|
79
|
-
title={'Heads Up!'}
|
|
80
|
-
description={'You can add components to your app using the cli.'}
|
|
81
|
-
views={{
|
|
82
|
-
container: { backgroundColor: 'black' },
|
|
83
|
-
title: { color: 'white' },
|
|
84
|
-
description: { color: 'white' },
|
|
85
|
-
icon: { color: 'white' },
|
|
86
|
-
}}
|
|
87
|
-
/>
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### **Theme Mode Support**
|
|
93
|
-
The Alert component supports both light and dark themes through the `themeMode` prop.
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
import React from 'react';
|
|
97
|
-
import { Alert } from '../Alert';
|
|
98
|
-
import { Vertical } from '@app-studio/web';
|
|
99
|
-
import { Text } from '@app-studio/web';
|
|
100
|
-
|
|
101
|
-
export const DarkModeDemo = () => {
|
|
102
|
-
return (
|
|
103
|
-
<Vertical gap={24}>
|
|
104
|
-
<Text fontSize={20} fontWeight="bold">Light Mode Alerts</Text>
|
|
105
|
-
<Alert
|
|
106
|
-
themeMode="light"
|
|
107
|
-
variant="info"
|
|
108
|
-
title="Info Alert (Light)"
|
|
109
|
-
description="This is an info alert in light mode."
|
|
110
|
-
/>
|
|
111
|
-
|
|
112
|
-
<Text fontSize={20} fontWeight="bold" marginTop={40}>Dark Mode Alerts</Text>
|
|
113
|
-
<Alert
|
|
114
|
-
themeMode="dark"
|
|
115
|
-
variant="info"
|
|
116
|
-
title="Info Alert (Dark)"
|
|
117
|
-
description="This is an info alert in dark mode."
|
|
118
|
-
/>
|
|
119
|
-
</Vertical>
|
|
120
|
-
);
|
|
121
|
-
};
|
|
122
71
|
```
|
|
123
72
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# AspectRatio
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This component ensures its content maintains a specified aspect ratio, adjusting its size responsively while preserving visual proportions.
|
|
4
4
|
|
|
5
5
|
### **Import**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
```tsx
|
|
7
|
+
import { AspectRatio } from '@app-studio/web';
|
|
8
|
+
```
|
|
9
9
|
|
|
10
10
|
### **Default**
|
|
11
11
|
```tsx
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { Image } from '
|
|
14
|
-
import { AspectRatio } from '
|
|
13
|
+
import { Image } from 'app-studio';
|
|
14
|
+
import { AspectRatio } from '@app-studio/web';
|
|
15
15
|
|
|
16
16
|
export const DefaultDemo = () => {
|
|
17
17
|
return (
|
|
@@ -26,16 +26,19 @@ export const DefaultDemo = () => {
|
|
|
26
26
|
</AspectRatio>
|
|
27
27
|
);
|
|
28
28
|
};
|
|
29
|
-
|
|
30
29
|
```
|
|
31
30
|
|
|
32
31
|
### **ratio**
|
|
33
|
-
|
|
32
|
+
Set a default aspect ratio of 16:9 if no ratio is provided as a prop.
|
|
33
|
+
|
|
34
|
+
- **Type:** `number`
|
|
35
|
+
- **Default:** `16 / 9`
|
|
36
|
+
- **Possible Values:** ``
|
|
34
37
|
|
|
35
38
|
```tsx
|
|
36
39
|
import React from 'react';
|
|
37
|
-
import { Image } from '
|
|
38
|
-
import { AspectRatio } from '
|
|
40
|
+
import { Image } from 'app-studio';
|
|
41
|
+
import { AspectRatio } from '@app-studio/web';
|
|
39
42
|
|
|
40
43
|
export const RatioDemo = () => {
|
|
41
44
|
return (
|
|
@@ -50,6 +53,5 @@ export const RatioDemo = () => {
|
|
|
50
53
|
</AspectRatio>
|
|
51
54
|
);
|
|
52
55
|
};
|
|
53
|
-
|
|
54
56
|
```
|
|
55
57
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# AudioInput
|
|
2
|
+
|
|
3
|
+
Provides a user interface for recording, playing, and uploading audio content.
|
|
4
|
+
|
|
5
|
+
### **Import**
|
|
6
|
+
```tsx
|
|
7
|
+
import { AudioInput } from '@app-studio/web';
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
### **Default**
|
|
11
|
+
```tsx
|
|
12
|
+
import React, { useState } from 'react';
|
|
13
|
+
import { AudioInput } from '@app-studio/web';
|
|
14
|
+
import { View, Text, Button } from 'app-studio';
|
|
15
|
+
|
|
16
|
+
export const Default = () => {
|
|
17
|
+
const [audioFile, setAudioFile] = useState<File | null>(null);
|
|
18
|
+
|
|
19
|
+
const handleAudio = (file: File) => {
|
|
20
|
+
setAudioFile(file);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<View flexDirection="column" gap={4} padding={4} alignItems="flex-start">
|
|
25
|
+
<Text variant="heading" size="lg">
|
|
26
|
+
Audio Input Example
|
|
27
|
+
</Text>
|
|
28
|
+
<AudioInput onAudio={handleAudio} />
|
|
29
|
+
{audioFile && (
|
|
30
|
+
<View flexDirection="column" gap={2}>
|
|
31
|
+
<Text>
|
|
32
|
+
Recorded Audio: <strong>{audioFile.name}</strong> (
|
|
33
|
+
{(audioFile.size / 1024).toFixed(2)} KB)
|
|
34
|
+
</Text>
|
|
35
|
+
<audio controls src={URL.createObjectURL(audioFile)} />
|
|
36
|
+
<Button onPress={() => setAudioFile(null)}>Clear Audio</Button>
|
|
37
|
+
</View>
|
|
38
|
+
)}
|
|
39
|
+
</View>
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
```
|
|
43
|
+
|
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
# Avatar
|
|
2
2
|
|
|
3
|
-
Displays a
|
|
3
|
+
Displays a user's avatar, which can be an image or initials, with customizable size and styles.
|
|
4
4
|
|
|
5
5
|
### **Import**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
```tsx
|
|
7
|
+
import { Avatar } from '@app-studio/web';
|
|
8
|
+
```
|
|
9
9
|
|
|
10
10
|
### **Default**
|
|
11
11
|
```tsx
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { Avatar } from '
|
|
13
|
+
import { Avatar } from '@app-studio/web';
|
|
14
14
|
|
|
15
15
|
export const DefaultDemo = () => (
|
|
16
16
|
<Avatar src="https://t3.ftcdn.net/jpg/06/17/13/26/360_F_617132669_YptvM7fIuczaUbYYpMe3VTLimwZwzlWf.jpg" />
|
|
17
17
|
);
|
|
18
|
-
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
### **size**
|
|
22
|
-
Optional
|
|
21
|
+
Optional size of the avatar, predefined in 'Size' type.
|
|
22
|
+
|
|
23
|
+
- **Type:** `Size`
|
|
24
|
+
- **Default:** `md`
|
|
25
|
+
- **Possible Values:** `xs, sm, md, lg, xl`
|
|
23
26
|
|
|
24
27
|
```tsx
|
|
25
28
|
import React from 'react';
|
|
26
|
-
import { Vertical } from '
|
|
27
|
-
import { Avatar } from '
|
|
28
|
-
import { Size } from '
|
|
29
|
+
import { Vertical } from 'app-studio';
|
|
30
|
+
import { Avatar } from '@app-studio/web';
|
|
31
|
+
import { Size } from '@app-studio/web';
|
|
29
32
|
|
|
30
33
|
export const SizeDemo = () => {
|
|
31
34
|
return (
|
|
@@ -40,46 +43,18 @@ export const SizeDemo = () => {
|
|
|
40
43
|
</Vertical>
|
|
41
44
|
);
|
|
42
45
|
};
|
|
43
|
-
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
### **fallback**
|
|
47
|
-
|
|
49
|
+
URL or path for the fallback image if the source fails to load.
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
import { Avatar } from '../Avatar';
|
|
52
|
-
|
|
53
|
-
export const FallbackDemo = () => <Avatar src="" fallback="ML" />;
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### **styles**
|
|
58
|
-
Optional object to apply custom styles to the avatar component.
|
|
51
|
+
- **Type:** `string`
|
|
52
|
+
- **Default:** `IM`
|
|
59
53
|
|
|
60
54
|
```tsx
|
|
61
55
|
import React from 'react';
|
|
62
|
-
import { Avatar } from '
|
|
63
|
-
|
|
64
|
-
export const StylesDemo = () => {
|
|
65
|
-
return (
|
|
66
|
-
<Avatar
|
|
67
|
-
src="https://t3.ftcdn.net/jpg/06/17/13/26/360_F_617132669_YptvM7fIuczaUbYYpMe3VTLimwZwzlWf.jpg"
|
|
68
|
-
views={{
|
|
69
|
-
container: {
|
|
70
|
-
boxShadow: 'none', // Add shadow effect
|
|
71
|
-
},
|
|
72
|
-
fallback: {
|
|
73
|
-
color: 'theme.secondary',
|
|
74
|
-
},
|
|
75
|
-
image: {
|
|
76
|
-
objectFit: 'fill',
|
|
77
|
-
},
|
|
78
|
-
}}
|
|
79
|
-
onClick={() => console.log('hello')}
|
|
80
|
-
/>
|
|
81
|
-
);
|
|
82
|
-
};
|
|
56
|
+
import { Avatar } from '@app-studio/web';
|
|
83
57
|
|
|
58
|
+
export const FallbackDemo = () => <Avatar src="" fallback="ML" />;
|
|
84
59
|
```
|
|
85
60
|
|