@app-studio/web 0.9.20 → 0.9.21
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/components/adk/AgentChat/AgentChat/AgentChat.props.d.ts +26 -3
- package/dist/components/adk/AgentChat/examples/default.d.ts +1 -1
- package/dist/components/adk/AgentEval/AgentEval/AgentEval.props.d.ts +33 -2
- package/dist/components/adk/AgentSession/AgentSession/AgentSession.props.d.ts +23 -1
- package/dist/components/adk/AgentSession/examples/default.d.ts +6 -0
- package/dist/components/adk/AgentTrace/AgentTrace/AgentTrace.props.d.ts +38 -3
- package/dist/web.cjs.development.js +81 -5
- 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 +81 -5
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +81 -5
- 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/adk-customization-guide.md +204 -0
- package/docs/adk-customization-summary.md +157 -0
- package/package.json +1 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# ADK Components Customization Guide
|
|
2
|
+
|
|
3
|
+
This guide demonstrates how to customize ADK components using the enhanced `views` prop and `containerProps` for complete control over appearance and behavior.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
All ADK components now support comprehensive customization through:
|
|
8
|
+
|
|
9
|
+
1. **Enhanced `views` prop** - Granular control over individual component parts
|
|
10
|
+
2. **Container props** - Direct styling of the main container
|
|
11
|
+
3. **Theme props** - Built-in color schemes and layout options
|
|
12
|
+
4. **Responsive design** - Automatic adaptation across devices
|
|
13
|
+
|
|
14
|
+
## Component Customization
|
|
15
|
+
|
|
16
|
+
### AgentChat Component
|
|
17
|
+
|
|
18
|
+
The AgentChat component supports extensive customization of all its parts:
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
<AgentChat
|
|
22
|
+
appName="my-agent"
|
|
23
|
+
userId="user123"
|
|
24
|
+
colorScheme="purple"
|
|
25
|
+
compact={false}
|
|
26
|
+
rounded={true}
|
|
27
|
+
containerProps={{
|
|
28
|
+
backgroundColor: 'color.purple.25',
|
|
29
|
+
border: '2px solid',
|
|
30
|
+
borderColor: 'color.purple.300',
|
|
31
|
+
}}
|
|
32
|
+
views={{
|
|
33
|
+
// Main areas
|
|
34
|
+
container: { backgroundColor: 'color.purple.25' },
|
|
35
|
+
header: { backgroundColor: 'color.purple.500', color: 'white' },
|
|
36
|
+
messageList: { backgroundColor: 'color.white', padding: '20px' },
|
|
37
|
+
inputArea: { backgroundColor: 'color.purple.50', padding: '16px' },
|
|
38
|
+
|
|
39
|
+
// Message styling
|
|
40
|
+
userMessage: {
|
|
41
|
+
backgroundColor: 'color.purple.500',
|
|
42
|
+
color: 'white',
|
|
43
|
+
borderRadius: '18px 18px 4px 18px',
|
|
44
|
+
padding: '12px 16px',
|
|
45
|
+
},
|
|
46
|
+
botMessage: {
|
|
47
|
+
backgroundColor: 'color.purple.100',
|
|
48
|
+
color: 'color.purple.900',
|
|
49
|
+
borderRadius: '18px 18px 18px 4px',
|
|
50
|
+
padding: '12px 16px',
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
// Input components
|
|
54
|
+
inputField: {
|
|
55
|
+
borderRadius: '24px',
|
|
56
|
+
border: '2px solid',
|
|
57
|
+
borderColor: 'color.purple.200',
|
|
58
|
+
},
|
|
59
|
+
sendButton: {
|
|
60
|
+
backgroundColor: 'color.purple.500',
|
|
61
|
+
borderRadius: '50%',
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
// State indicators
|
|
65
|
+
typingIndicator: {
|
|
66
|
+
color: 'color.purple.600',
|
|
67
|
+
backgroundColor: 'color.purple.100',
|
|
68
|
+
borderRadius: '16px',
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
// Function calls and code
|
|
72
|
+
functionCall: {
|
|
73
|
+
backgroundColor: 'color.purple.50',
|
|
74
|
+
border: '1px solid',
|
|
75
|
+
borderColor: 'color.purple.200',
|
|
76
|
+
borderRadius: '8px',
|
|
77
|
+
},
|
|
78
|
+
codeBlock: {
|
|
79
|
+
backgroundColor: 'color.gray.900',
|
|
80
|
+
color: 'color.gray.100',
|
|
81
|
+
borderRadius: '8px',
|
|
82
|
+
},
|
|
83
|
+
}}
|
|
84
|
+
/>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### AgentSession Component
|
|
88
|
+
|
|
89
|
+
The AgentSession component provides comprehensive session management customization:
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<AgentSession
|
|
93
|
+
appName="my-agent"
|
|
94
|
+
userId="user123"
|
|
95
|
+
colorScheme="green"
|
|
96
|
+
layout="list"
|
|
97
|
+
showPreviews={true}
|
|
98
|
+
enableBulkOperations={true}
|
|
99
|
+
containerProps={{
|
|
100
|
+
backgroundColor: 'color.green.25',
|
|
101
|
+
border: '2px solid',
|
|
102
|
+
borderColor: 'color.green.300',
|
|
103
|
+
}}
|
|
104
|
+
views={{
|
|
105
|
+
// Main areas
|
|
106
|
+
container: { backgroundColor: 'color.green.25' },
|
|
107
|
+
header: { backgroundColor: 'color.green.500', color: 'white' },
|
|
108
|
+
sessionList: { backgroundColor: 'color.white', padding: '16px' },
|
|
109
|
+
|
|
110
|
+
// Session items
|
|
111
|
+
sessionItem: {
|
|
112
|
+
backgroundColor: 'color.green.50',
|
|
113
|
+
borderRadius: '8px',
|
|
114
|
+
padding: '12px',
|
|
115
|
+
border: '1px solid',
|
|
116
|
+
borderColor: 'color.green.200',
|
|
117
|
+
},
|
|
118
|
+
activeSessionItem: {
|
|
119
|
+
backgroundColor: 'color.green.100',
|
|
120
|
+
borderColor: 'color.green.500',
|
|
121
|
+
borderWidth: '2px',
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
// Session content
|
|
125
|
+
sessionTitle: { fontWeight: '600', color: 'color.green.900' },
|
|
126
|
+
sessionDescription: { color: 'color.green.700' },
|
|
127
|
+
sessionTimestamp: { color: 'color.green.600', fontSize: '12px' },
|
|
128
|
+
|
|
129
|
+
// Action buttons
|
|
130
|
+
createButton: {
|
|
131
|
+
backgroundColor: 'color.green.500',
|
|
132
|
+
color: 'white',
|
|
133
|
+
borderRadius: '8px',
|
|
134
|
+
},
|
|
135
|
+
deleteButton: {
|
|
136
|
+
backgroundColor: 'color.red.500',
|
|
137
|
+
color: 'white',
|
|
138
|
+
borderRadius: '6px',
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
// Search and filters
|
|
142
|
+
searchInput: {
|
|
143
|
+
borderRadius: '20px',
|
|
144
|
+
border: '2px solid',
|
|
145
|
+
borderColor: 'color.green.200',
|
|
146
|
+
},
|
|
147
|
+
}}
|
|
148
|
+
/>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Available Views Properties
|
|
152
|
+
|
|
153
|
+
### AgentChat Views
|
|
154
|
+
|
|
155
|
+
- **Main Areas**: `container`, `header`, `messageList`, `inputArea`, `attachmentArea`
|
|
156
|
+
- **Messages**: `message`, `userMessage`, `botMessage`, `systemMessage`, `messageContent`, `messageTimestamp`, `messageAvatar`, `messageActions`
|
|
157
|
+
- **Input**: `inputField`, `sendButton`, `attachButton`, `recordButton`, `inputToolbar`
|
|
158
|
+
- **States**: `loadingIndicator`, `typingIndicator`, `errorMessage`, `emptyState`
|
|
159
|
+
- **Features**: `functionCall`, `functionResponse`, `codeBlock`, `codeOutput`, `thoughtBubble`
|
|
160
|
+
- **Attachments**: `attachmentPreview`, `attachmentItem`, `attachmentRemoveButton`
|
|
161
|
+
|
|
162
|
+
### AgentSession Views
|
|
163
|
+
|
|
164
|
+
- **Main Areas**: `container`, `header`, `toolbar`, `sessionList`, `sessionActions`, `filtersPanel`
|
|
165
|
+
- **Session Items**: `sessionItem`, `activeSessionItem`, `sessionInfo`, `sessionTitle`, `sessionDescription`, `sessionMetadata`, `sessionTimestamp`, `sessionTags`, `sessionStats`
|
|
166
|
+
- **Actions**: `createButton`, `deleteButton`, `exportButton`, `importButton`, `refreshButton`, `selectButton`, `duplicateButton`
|
|
167
|
+
- **Search/Filter**: `searchInput`, `filterDropdown`, `sortDropdown`, `dateRangePicker`, `tagFilter`
|
|
168
|
+
- **States**: `emptyState`, `loadingState`, `errorState`
|
|
169
|
+
- **Bulk Operations**: `bulkActions`, `selectAllCheckbox`, `bulkDeleteButton`, `bulkExportButton`
|
|
170
|
+
|
|
171
|
+
## Theme Options
|
|
172
|
+
|
|
173
|
+
### Color Schemes
|
|
174
|
+
- `blue` (default)
|
|
175
|
+
- `purple`
|
|
176
|
+
- `green`
|
|
177
|
+
- `orange`
|
|
178
|
+
- `red`
|
|
179
|
+
- `gray`
|
|
180
|
+
|
|
181
|
+
### Layout Options
|
|
182
|
+
|
|
183
|
+
**AgentSession Layouts:**
|
|
184
|
+
- `list` - Vertical list layout
|
|
185
|
+
- `grid` - Grid layout for sessions
|
|
186
|
+
- `compact` - Condensed view
|
|
187
|
+
|
|
188
|
+
**AgentTrace Layouts:**
|
|
189
|
+
- `timeline` - Timeline visualization
|
|
190
|
+
- `tree` - Tree structure
|
|
191
|
+
- `table` - Tabular view
|
|
192
|
+
- `graph` - Graph visualization
|
|
193
|
+
|
|
194
|
+
## Best Practices
|
|
195
|
+
|
|
196
|
+
1. **Consistent Color Schemes**: Use the same color scheme across related components
|
|
197
|
+
2. **Responsive Design**: Test customizations across different screen sizes
|
|
198
|
+
3. **Accessibility**: Ensure sufficient color contrast and readable fonts
|
|
199
|
+
4. **Performance**: Avoid overly complex styling that might impact performance
|
|
200
|
+
5. **Maintainability**: Use design tokens from the app-studio color system
|
|
201
|
+
|
|
202
|
+
## Examples
|
|
203
|
+
|
|
204
|
+
See the enhanced examples in each component's `examples/default.tsx` file for comprehensive demonstrations of all customization options.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# ADK Components Customization Enhancement Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The ADK components have been enhanced with comprehensive customization capabilities through expanded `views` props and new container customization options. This provides developers with granular control over every aspect of the component appearance and behavior.
|
|
6
|
+
|
|
7
|
+
## Key Enhancements
|
|
8
|
+
|
|
9
|
+
### 1. Enhanced Views Props
|
|
10
|
+
|
|
11
|
+
All ADK components now support significantly more granular customization through expanded `views` interfaces:
|
|
12
|
+
|
|
13
|
+
#### AgentChat Views (40+ customizable parts)
|
|
14
|
+
- **Main Areas**: container, header, messageList, inputArea, attachmentArea
|
|
15
|
+
- **Message Components**: userMessage, botMessage, systemMessage, messageContent, messageTimestamp, messageAvatar, messageActions
|
|
16
|
+
- **Input Components**: inputField, sendButton, attachButton, recordButton, inputToolbar
|
|
17
|
+
- **State Indicators**: loadingIndicator, typingIndicator, errorMessage, emptyState
|
|
18
|
+
- **Feature Components**: functionCall, functionResponse, codeBlock, codeOutput, thoughtBubble
|
|
19
|
+
- **Attachment Components**: attachmentPreview, attachmentItem, attachmentRemoveButton
|
|
20
|
+
|
|
21
|
+
#### AgentSession Views (40+ customizable parts)
|
|
22
|
+
- **Main Areas**: container, header, toolbar, sessionList, sessionActions, filtersPanel
|
|
23
|
+
- **Session Items**: sessionItem, activeSessionItem, sessionInfo, sessionTitle, sessionDescription, sessionMetadata, sessionTimestamp, sessionTags, sessionStats
|
|
24
|
+
- **Action Buttons**: createButton, deleteButton, exportButton, importButton, refreshButton, selectButton, duplicateButton
|
|
25
|
+
- **Search/Filter**: searchInput, filterDropdown, sortDropdown, dateRangePicker, tagFilter
|
|
26
|
+
- **Bulk Operations**: bulkActions, selectAllCheckbox, bulkDeleteButton, bulkExportButton
|
|
27
|
+
|
|
28
|
+
#### AgentEval Views (50+ customizable parts)
|
|
29
|
+
- **Main Areas**: container, header, toolbar, evaluationList, createPanel, resultsPanel, metricsPanel
|
|
30
|
+
- **Evaluation Items**: evaluationItem, activeEvaluationItem, evaluationTitle, evaluationStatus, evaluationProgress
|
|
31
|
+
- **Test Cases**: testCaseList, testCaseItem, testCaseInput, testCaseOutput, testCaseResult
|
|
32
|
+
- **Progress/Status**: progressBar, statusIndicator, statusBadge, scoreDisplay, durationDisplay
|
|
33
|
+
- **Visualization**: chartContainer, metricsChart, resultsTable, summaryCard
|
|
34
|
+
|
|
35
|
+
#### AgentTrace Views (50+ customizable parts)
|
|
36
|
+
- **Main Areas**: container, header, toolbar, timeline, eventList, detailsPanel, metricsPanel
|
|
37
|
+
- **Event Components**: eventItem, selectedEventItem, eventHeader, eventContent, eventMetadata
|
|
38
|
+
- **Timeline**: timelineContainer, timelineAxis, timelineEvent, timelineSpan, timelineMarker
|
|
39
|
+
- **Metrics**: metricsCard, performanceChart, errorRateChart, latencyChart, throughputChart
|
|
40
|
+
- **Visualization**: flowDiagram, dependencyGraph, heatmap
|
|
41
|
+
|
|
42
|
+
### 2. Container Props Support
|
|
43
|
+
|
|
44
|
+
All components now accept `containerProps` for direct styling of the main container:
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<AgentChat
|
|
48
|
+
containerProps={{
|
|
49
|
+
backgroundColor: 'color.purple.25',
|
|
50
|
+
border: '2px solid',
|
|
51
|
+
borderColor: 'color.purple.300',
|
|
52
|
+
borderRadius: '12px',
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Theme and Appearance Props
|
|
58
|
+
|
|
59
|
+
New theme-related props for consistent styling:
|
|
60
|
+
|
|
61
|
+
- **colorScheme**: `'blue' | 'purple' | 'green' | 'orange' | 'red' | 'gray'`
|
|
62
|
+
- **layout**: Component-specific layout options
|
|
63
|
+
- **compact**: Boolean for condensed layouts
|
|
64
|
+
- **rounded**: Boolean for rounded corners
|
|
65
|
+
- **showPreviews**: Boolean for preview features
|
|
66
|
+
|
|
67
|
+
### 4. Dynamic Styling
|
|
68
|
+
|
|
69
|
+
Components now include dynamic styling functions that apply theme-based styles automatically:
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
const getThemeStyles = () => {
|
|
73
|
+
const colorStyles = {
|
|
74
|
+
blue: { borderColor: 'color.blue.200' },
|
|
75
|
+
purple: { borderColor: 'color.purple.200' },
|
|
76
|
+
// ... other colors
|
|
77
|
+
};
|
|
78
|
+
return colorStyles[colorScheme];
|
|
79
|
+
};
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Implementation Details
|
|
83
|
+
|
|
84
|
+
### File Changes
|
|
85
|
+
|
|
86
|
+
1. **Props Interfaces Enhanced**:
|
|
87
|
+
- `AgentChat/AgentChat.props.ts` - Expanded AgentChatViews interface
|
|
88
|
+
- `AgentSession/AgentSession.props.ts` - Expanded AgentSessionViews interface
|
|
89
|
+
- `AgentEval/AgentEval.props.ts` - Expanded AgentEvalViews interface
|
|
90
|
+
- `AgentTrace/AgentTrace.props.ts` - Expanded AgentTraceViews interface
|
|
91
|
+
|
|
92
|
+
2. **View Components Updated**:
|
|
93
|
+
- `AgentChat/AgentChat.view.tsx` - Added theme support and containerProps
|
|
94
|
+
- `AgentSession/AgentSession.view.tsx` - Added theme support and containerProps
|
|
95
|
+
|
|
96
|
+
3. **Examples Enhanced**:
|
|
97
|
+
- `AgentChat/examples/default.tsx` - Comprehensive customization example
|
|
98
|
+
- `AgentSession/examples/default.tsx` - Enhanced customization example
|
|
99
|
+
|
|
100
|
+
4. **Documentation Created**:
|
|
101
|
+
- `docs/adk-customization-guide.md` - Complete customization guide
|
|
102
|
+
- `docs/adk-customization-summary.md` - This summary document
|
|
103
|
+
|
|
104
|
+
## Usage Examples
|
|
105
|
+
|
|
106
|
+
### Basic Customization
|
|
107
|
+
```tsx
|
|
108
|
+
<AgentChat
|
|
109
|
+
appName="my-agent"
|
|
110
|
+
userId="user123"
|
|
111
|
+
colorScheme="purple"
|
|
112
|
+
views={{
|
|
113
|
+
userMessage: { backgroundColor: 'color.purple.500' },
|
|
114
|
+
botMessage: { backgroundColor: 'color.purple.100' },
|
|
115
|
+
}}
|
|
116
|
+
/>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Advanced Customization
|
|
120
|
+
```tsx
|
|
121
|
+
<AgentSession
|
|
122
|
+
appName="my-agent"
|
|
123
|
+
userId="user123"
|
|
124
|
+
colorScheme="green"
|
|
125
|
+
layout="grid"
|
|
126
|
+
containerProps={{ backgroundColor: 'color.green.25' }}
|
|
127
|
+
views={{
|
|
128
|
+
sessionItem: {
|
|
129
|
+
backgroundColor: 'color.green.50',
|
|
130
|
+
borderRadius: '8px',
|
|
131
|
+
padding: '12px',
|
|
132
|
+
},
|
|
133
|
+
activeSessionItem: {
|
|
134
|
+
backgroundColor: 'color.green.100',
|
|
135
|
+
borderColor: 'color.green.500',
|
|
136
|
+
},
|
|
137
|
+
}}
|
|
138
|
+
/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Benefits
|
|
142
|
+
|
|
143
|
+
1. **Complete Control**: Developers can customize every visual aspect of the components
|
|
144
|
+
2. **Consistent Theming**: Built-in color schemes ensure visual consistency
|
|
145
|
+
3. **Responsive Design**: Components adapt to different layouts and screen sizes
|
|
146
|
+
4. **Maintainable**: Uses app-studio design tokens for consistent styling
|
|
147
|
+
5. **Flexible**: Supports both simple theme-based and complex custom styling
|
|
148
|
+
|
|
149
|
+
## Next Steps
|
|
150
|
+
|
|
151
|
+
The enhanced customization system provides a solid foundation for:
|
|
152
|
+
- Creating branded component themes
|
|
153
|
+
- Building custom layouts and designs
|
|
154
|
+
- Implementing responsive component behaviors
|
|
155
|
+
- Maintaining visual consistency across applications
|
|
156
|
+
|
|
157
|
+
All components are now ready for comprehensive customization while maintaining their core functionality and accessibility features.
|