flutterflow-mcp 0.1.0
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 +124 -0
- package/build/api/flutterflow.d.ts +11 -0
- package/build/api/flutterflow.js +61 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +54 -0
- package/build/prompts/dev-workflow.d.ts +2 -0
- package/build/prompts/dev-workflow.js +68 -0
- package/build/prompts/generate-page.d.ts +2 -0
- package/build/prompts/generate-page.js +36 -0
- package/build/prompts/inspect-project.d.ts +2 -0
- package/build/prompts/inspect-project.js +30 -0
- package/build/prompts/modify-component.d.ts +2 -0
- package/build/prompts/modify-component.js +39 -0
- package/build/resources/docs.d.ts +2 -0
- package/build/resources/docs.js +76 -0
- package/build/resources/projects.d.ts +3 -0
- package/build/resources/projects.js +60 -0
- package/build/tools/find-component-usages.d.ts +7 -0
- package/build/tools/find-component-usages.js +225 -0
- package/build/tools/find-page-navigations.d.ts +7 -0
- package/build/tools/find-page-navigations.js +228 -0
- package/build/tools/get-component-summary.d.ts +22 -0
- package/build/tools/get-component-summary.js +193 -0
- package/build/tools/get-page-by-name.d.ts +3 -0
- package/build/tools/get-page-by-name.js +56 -0
- package/build/tools/get-page-summary.d.ts +22 -0
- package/build/tools/get-page-summary.js +220 -0
- package/build/tools/get-yaml-docs.d.ts +6 -0
- package/build/tools/get-yaml-docs.js +217 -0
- package/build/tools/get-yaml.d.ts +3 -0
- package/build/tools/get-yaml.js +47 -0
- package/build/tools/list-files.d.ts +3 -0
- package/build/tools/list-files.js +30 -0
- package/build/tools/list-pages.d.ts +25 -0
- package/build/tools/list-pages.js +101 -0
- package/build/tools/list-projects.d.ts +3 -0
- package/build/tools/list-projects.js +19 -0
- package/build/tools/sync-project.d.ts +3 -0
- package/build/tools/sync-project.js +144 -0
- package/build/tools/update-yaml.d.ts +3 -0
- package/build/tools/update-yaml.js +24 -0
- package/build/tools/validate-yaml.d.ts +3 -0
- package/build/tools/validate-yaml.js +22 -0
- package/build/utils/cache.d.ts +48 -0
- package/build/utils/cache.js +162 -0
- package/build/utils/decode-yaml.d.ts +7 -0
- package/build/utils/decode-yaml.js +31 -0
- package/build/utils/page-summary/action-summarizer.d.ts +9 -0
- package/build/utils/page-summary/action-summarizer.js +291 -0
- package/build/utils/page-summary/formatter.d.ts +13 -0
- package/build/utils/page-summary/formatter.js +121 -0
- package/build/utils/page-summary/node-extractor.d.ts +17 -0
- package/build/utils/page-summary/node-extractor.js +207 -0
- package/build/utils/page-summary/tree-walker.d.ts +6 -0
- package/build/utils/page-summary/tree-walker.js +55 -0
- package/build/utils/page-summary/types.d.ts +56 -0
- package/build/utils/page-summary/types.js +4 -0
- package/build/utils/parse-folders.d.ts +9 -0
- package/build/utils/parse-folders.js +29 -0
- package/docs/ff-yaml/00-overview.md +137 -0
- package/docs/ff-yaml/01-project-files.md +513 -0
- package/docs/ff-yaml/02-pages.md +572 -0
- package/docs/ff-yaml/03-components.md +413 -0
- package/docs/ff-yaml/04-widgets/README.md +122 -0
- package/docs/ff-yaml/04-widgets/button.md +444 -0
- package/docs/ff-yaml/04-widgets/container.md +358 -0
- package/docs/ff-yaml/04-widgets/dropdown.md +579 -0
- package/docs/ff-yaml/04-widgets/form.md +256 -0
- package/docs/ff-yaml/04-widgets/image.md +276 -0
- package/docs/ff-yaml/04-widgets/layout.md +355 -0
- package/docs/ff-yaml/04-widgets/misc.md +553 -0
- package/docs/ff-yaml/04-widgets/text-field.md +326 -0
- package/docs/ff-yaml/04-widgets/text.md +302 -0
- package/docs/ff-yaml/05-actions.md +843 -0
- package/docs/ff-yaml/06-variables.md +834 -0
- package/docs/ff-yaml/07-data.md +591 -0
- package/docs/ff-yaml/08-custom-code.md +715 -0
- package/docs/ff-yaml/09-theming.md +592 -0
- package/docs/ff-yaml/10-editing-guide.md +454 -0
- package/docs/ff-yaml/README.md +105 -0
- package/package.json +55 -0
- package/skills/ff-widget-patterns.md +141 -0
- package/skills/ff-yaml-dev.md +58 -0
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
# Miscellaneous Widgets: Icon, ProgressBar, AppBar, ConditionalBuilder
|
|
2
|
+
|
|
3
|
+
## Icon
|
|
4
|
+
|
|
5
|
+
### Minimal Example
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
key: Icon_xxxxxxxx
|
|
9
|
+
type: Icon
|
|
10
|
+
props:
|
|
11
|
+
icon:
|
|
12
|
+
sizeValue:
|
|
13
|
+
inputValue: 24
|
|
14
|
+
iconDataValue:
|
|
15
|
+
inputValue:
|
|
16
|
+
codePoint: 57947
|
|
17
|
+
family: MaterialIcons
|
|
18
|
+
matchTextDirection: false
|
|
19
|
+
name: favorite
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Full Schema
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
key: Icon_xxxxxxxx
|
|
26
|
+
type: Icon
|
|
27
|
+
props:
|
|
28
|
+
icon:
|
|
29
|
+
sizeValue: # Icon size in px
|
|
30
|
+
inputValue: 28
|
|
31
|
+
mostRecentInputValue: 28
|
|
32
|
+
colorValue: # Icon color
|
|
33
|
+
inputValue:
|
|
34
|
+
value: "4291282887" # ARGB integer
|
|
35
|
+
# OR themeColor: PRIMARY_TEXT
|
|
36
|
+
mostRecentInputValue:
|
|
37
|
+
value: "4291282887"
|
|
38
|
+
# OR variable binding for dynamic color:
|
|
39
|
+
# variable:
|
|
40
|
+
# source: FUNCTION_CALL
|
|
41
|
+
# functionCall:
|
|
42
|
+
# conditionalValue:
|
|
43
|
+
# ifConditionalValues:
|
|
44
|
+
# - condition: ...
|
|
45
|
+
# value:
|
|
46
|
+
# inputValue:
|
|
47
|
+
# color:
|
|
48
|
+
# value: "4279506971"
|
|
49
|
+
# elseValue:
|
|
50
|
+
# inputValue:
|
|
51
|
+
# color:
|
|
52
|
+
# themeColor: PRIMARY_TEXT
|
|
53
|
+
# returnParameter:
|
|
54
|
+
# dataType:
|
|
55
|
+
# scalarType: Color
|
|
56
|
+
iconDataValue: # Icon specification
|
|
57
|
+
inputValue:
|
|
58
|
+
codePoint: 983520 # Unicode code point
|
|
59
|
+
family: MaterialIcons # Icon font family
|
|
60
|
+
matchTextDirection: false # Mirror for RTL layouts
|
|
61
|
+
name: store_rounded # Human-readable icon name
|
|
62
|
+
isCustom: true # For custom icon packs (Tabler-Icons, etc.)
|
|
63
|
+
padding: # Common padding prop
|
|
64
|
+
type: FF_PADDING_ONLY
|
|
65
|
+
topValue:
|
|
66
|
+
inputValue: 4
|
|
67
|
+
mostRecentInputValue: 4
|
|
68
|
+
responsiveVisibility: {}
|
|
69
|
+
opacity:
|
|
70
|
+
opacityValue:
|
|
71
|
+
inputValue: 1
|
|
72
|
+
mostRecentInputValue: 1
|
|
73
|
+
parameterValues: {}
|
|
74
|
+
valueKey: {}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Field Reference
|
|
78
|
+
|
|
79
|
+
| Field | Type | Required | Notes |
|
|
80
|
+
|-------|------|----------|-------|
|
|
81
|
+
| `sizeValue.inputValue` | number | Yes | Icon size in px |
|
|
82
|
+
| `colorValue.inputValue` | object | No | Color (themeColor or ARGB value) |
|
|
83
|
+
| `iconDataValue.inputValue.codePoint` | number | Yes | Unicode code point |
|
|
84
|
+
| `iconDataValue.inputValue.family` | string | Yes | Font family name |
|
|
85
|
+
| `iconDataValue.inputValue.name` | string | Yes | Human-readable name |
|
|
86
|
+
| `iconDataValue.inputValue.matchTextDirection` | bool | No | Mirror for RTL |
|
|
87
|
+
| `iconDataValue.inputValue.isCustom` | bool | No | Custom icon pack flag |
|
|
88
|
+
| `iconDataValue.inputValue.package` | string | No | Flutter package (e.g. `font_awesome_flutter`) |
|
|
89
|
+
|
|
90
|
+
### Common Icon Families
|
|
91
|
+
|
|
92
|
+
| Family | Package | Notes |
|
|
93
|
+
|--------|---------|-------|
|
|
94
|
+
| `MaterialIcons` | (built-in) | Default Flutter icons |
|
|
95
|
+
| `FontAwesomeBrands` | `font_awesome_flutter` | Brand logos (Google, Apple, etc.) |
|
|
96
|
+
| `FontAwesomeSolid` | `font_awesome_flutter` | Solid style FA icons |
|
|
97
|
+
| `Tabler-Icons` | (custom) | `isCustom: true` required |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## ProgressBar
|
|
102
|
+
|
|
103
|
+
### Minimal Example
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
key: ProgressBar_xxxxxxxx
|
|
107
|
+
type: ProgressBar
|
|
108
|
+
props:
|
|
109
|
+
progressBar:
|
|
110
|
+
shape: Circular
|
|
111
|
+
size:
|
|
112
|
+
width:
|
|
113
|
+
pixelsValue:
|
|
114
|
+
inputValue: 150
|
|
115
|
+
height:
|
|
116
|
+
pixelsValue:
|
|
117
|
+
inputValue: 6
|
|
118
|
+
percentValue:
|
|
119
|
+
inputValue: 0.5
|
|
120
|
+
progressColorValue:
|
|
121
|
+
inputValue:
|
|
122
|
+
themeColor: SUCCESS
|
|
123
|
+
backgroundColorValue:
|
|
124
|
+
inputValue:
|
|
125
|
+
themeColor: ALTERNATE
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Full Schema
|
|
129
|
+
|
|
130
|
+
```yaml
|
|
131
|
+
key: ProgressBar_xxxxxxxx
|
|
132
|
+
type: ProgressBar
|
|
133
|
+
props:
|
|
134
|
+
expanded:
|
|
135
|
+
expandedType: UNEXPANDED
|
|
136
|
+
responsiveVisibility: {}
|
|
137
|
+
progressBar:
|
|
138
|
+
shape: Circular # Shape type (see enum)
|
|
139
|
+
text: # Center text (for circular shape)
|
|
140
|
+
themeStyle: HEADLINE_SMALL
|
|
141
|
+
translationIdentifier:
|
|
142
|
+
key: j7w2lfua
|
|
143
|
+
textValue: # Text content (often computed)
|
|
144
|
+
inputValue: ""
|
|
145
|
+
# OR variable with string interpolation:
|
|
146
|
+
# variable:
|
|
147
|
+
# source: FUNCTION_CALL
|
|
148
|
+
# functionCall:
|
|
149
|
+
# stringInterpolation: {}
|
|
150
|
+
# values:
|
|
151
|
+
# - variable:
|
|
152
|
+
# source: POSTGRES_QUERY
|
|
153
|
+
# baseVariable:
|
|
154
|
+
# postgresQuery: {}
|
|
155
|
+
# operations:
|
|
156
|
+
# - accessPostgresRowField:
|
|
157
|
+
# fieldIdentifier:
|
|
158
|
+
# name: positive_impact
|
|
159
|
+
# - numberFormat:
|
|
160
|
+
# formatType: COMPACT
|
|
161
|
+
# nodeKeyRef:
|
|
162
|
+
# key: Container_xxxxx
|
|
163
|
+
# - inputValue:
|
|
164
|
+
# serializedValue: "%"
|
|
165
|
+
fontSizeValue:
|
|
166
|
+
inputValue: 16
|
|
167
|
+
colorValue:
|
|
168
|
+
inputValue:
|
|
169
|
+
value: "4280032031"
|
|
170
|
+
size: # Progress bar dimensions
|
|
171
|
+
width:
|
|
172
|
+
pixelsValue:
|
|
173
|
+
inputValue: 150 # Width (diameter for circular)
|
|
174
|
+
height:
|
|
175
|
+
pixelsValue:
|
|
176
|
+
inputValue: 6 # Height (stroke width for circular)
|
|
177
|
+
percentValue: # Progress value (0.0 to 1.0)
|
|
178
|
+
inputValue: 0.5 # Literal value
|
|
179
|
+
# OR variable binding:
|
|
180
|
+
# variable:
|
|
181
|
+
# source: LOCAL_STATE
|
|
182
|
+
# baseVariable:
|
|
183
|
+
# localState:
|
|
184
|
+
# fieldIdentifier:
|
|
185
|
+
# name: loadingProgress
|
|
186
|
+
# key: s4r96
|
|
187
|
+
# stateVariableType: WIDGET_CLASS_STATE
|
|
188
|
+
# nodeKeyRef:
|
|
189
|
+
# key: Scaffold_xxxxxxxx
|
|
190
|
+
mostRecentInputValue: 1
|
|
191
|
+
progressColorValue: # Filled portion color
|
|
192
|
+
inputValue:
|
|
193
|
+
themeColor: SUCCESS
|
|
194
|
+
# OR value: "4282874240"
|
|
195
|
+
backgroundColorValue: # Unfilled portion color
|
|
196
|
+
inputValue:
|
|
197
|
+
value: "4290245323"
|
|
198
|
+
animationValue: # Animate progress changes
|
|
199
|
+
inputValue: true
|
|
200
|
+
opacity:
|
|
201
|
+
opacityValue:
|
|
202
|
+
inputValue: 1
|
|
203
|
+
animatedOpacity: {}
|
|
204
|
+
valueKey: {}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Field Reference
|
|
208
|
+
|
|
209
|
+
| Field | Type | Required | Notes |
|
|
210
|
+
|-------|------|----------|-------|
|
|
211
|
+
| `shape` | enum | Yes | `Circular` or `Linear` |
|
|
212
|
+
| `text` | object | No | Center text (circular only) |
|
|
213
|
+
| `size.width.pixelsValue.inputValue` | number | No | Width/diameter |
|
|
214
|
+
| `size.height.pixelsValue.inputValue` | number | No | Height/stroke width |
|
|
215
|
+
| `percentValue` | number/var | Yes | Progress 0.0 to 1.0 |
|
|
216
|
+
| `progressColorValue.inputValue` | object | No | Filled bar color |
|
|
217
|
+
| `backgroundColorValue.inputValue` | object | No | Background bar color |
|
|
218
|
+
| `animationValue.inputValue` | bool | No | Animate value changes |
|
|
219
|
+
|
|
220
|
+
### shape Enum
|
|
221
|
+
|
|
222
|
+
| Value | Description |
|
|
223
|
+
|-------|-------------|
|
|
224
|
+
| `Circular` | Circular/ring progress indicator |
|
|
225
|
+
| `Linear` | Horizontal bar progress indicator |
|
|
226
|
+
|
|
227
|
+
Note: For `Circular` shape, `width` = diameter and `height` = stroke thickness. The `text` property is shown in the center.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## AppBar
|
|
232
|
+
|
|
233
|
+
### Minimal Example
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
key: AppBar_xxxxxxxx
|
|
237
|
+
type: AppBar
|
|
238
|
+
props:
|
|
239
|
+
appBar:
|
|
240
|
+
templateType: LARGE_HEADER
|
|
241
|
+
backgroundColorValue:
|
|
242
|
+
inputValue:
|
|
243
|
+
themeColor: PRIMARY_BACKGROUND
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Full Schema
|
|
247
|
+
|
|
248
|
+
```yaml
|
|
249
|
+
key: AppBar_xxxxxxxx
|
|
250
|
+
type: AppBar
|
|
251
|
+
props:
|
|
252
|
+
appBar:
|
|
253
|
+
templateType: LARGE_HEADER # AppBar template (see enum)
|
|
254
|
+
toolbarHeight: # Custom toolbar height
|
|
255
|
+
pixelsValue:
|
|
256
|
+
inputValue: 130 # Height in px (default ~56)
|
|
257
|
+
titleInFlexibleSpaceBar: false # Whether title appears in flexible space
|
|
258
|
+
defaultBackButtonValue: # Show default back button
|
|
259
|
+
inputValue: false
|
|
260
|
+
mostRecentInputValue: false
|
|
261
|
+
backgroundColorValue: # AppBar background color
|
|
262
|
+
inputValue:
|
|
263
|
+
themeColor: SECONDARY_BACKGROUND
|
|
264
|
+
mostRecentInputValue:
|
|
265
|
+
themeColor: SECONDARY_BACKGROUND
|
|
266
|
+
elevationValue: # Shadow elevation
|
|
267
|
+
inputValue: 0
|
|
268
|
+
mostRecentInputValue: 0
|
|
269
|
+
centerTitleValue: # Center the title text
|
|
270
|
+
inputValue: false
|
|
271
|
+
mostRecentInputValue: false
|
|
272
|
+
# --- Sliver mode (collapsible) ---
|
|
273
|
+
isSliver: true # Enable collapsible/sliver behavior
|
|
274
|
+
expandedHeight: # Full height when expanded
|
|
275
|
+
percentOfScreenSizeValue:
|
|
276
|
+
inputValue: 40 # 40% of screen height
|
|
277
|
+
collapsedHeight: # Minimum height when collapsed
|
|
278
|
+
percentOfScreenSizeValue:
|
|
279
|
+
inputValue: 10
|
|
280
|
+
opacity:
|
|
281
|
+
opacityValue:
|
|
282
|
+
inputValue: 1
|
|
283
|
+
mostRecentInputValue: 1
|
|
284
|
+
parameterValues: {}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Field Reference
|
|
288
|
+
|
|
289
|
+
| Field | Type | Required | Notes |
|
|
290
|
+
|-------|------|----------|-------|
|
|
291
|
+
| `templateType` | enum | Yes | AppBar layout template |
|
|
292
|
+
| `toolbarHeight.pixelsValue.inputValue` | number | No | Toolbar height in px |
|
|
293
|
+
| `titleInFlexibleSpaceBar` | bool | No | Title in flexible space (for collapsing) |
|
|
294
|
+
| `defaultBackButtonValue.inputValue` | bool | No | Show back button |
|
|
295
|
+
| `backgroundColorValue.inputValue` | object | No | Background color |
|
|
296
|
+
| `elevationValue.inputValue` | number | No | Shadow elevation |
|
|
297
|
+
| `centerTitleValue.inputValue` | bool | No | Center title text |
|
|
298
|
+
| `isSliver` | bool | No | Enable collapsible/sliver app bar |
|
|
299
|
+
| `expandedHeight` | object | No | Full height when expanded (sliver mode) |
|
|
300
|
+
| `collapsedHeight` | object | No | Min height when collapsed (sliver mode) |
|
|
301
|
+
|
|
302
|
+
### templateType Enum
|
|
303
|
+
|
|
304
|
+
| Value | Description |
|
|
305
|
+
|-------|-------------|
|
|
306
|
+
| `LARGE_HEADER` | Large/extended app bar (most common, confirmed in production) |
|
|
307
|
+
|
|
308
|
+
> **Note:** `LARGE_HEADER` is the only confirmed valid value. Control the actual height via `toolbarHeight` (e.g., 60px for compact, 130px for large). Do **not** use `STANDARD` — it causes a validation error.
|
|
309
|
+
|
|
310
|
+
### Sliver Mode
|
|
311
|
+
|
|
312
|
+
Set `isSliver: true` to make the AppBar collapsible on scroll. Heights can use either pixels or screen percentage:
|
|
313
|
+
|
|
314
|
+
```yaml
|
|
315
|
+
# Percentage of screen (common for sliver)
|
|
316
|
+
expandedHeight:
|
|
317
|
+
percentOfScreenSizeValue:
|
|
318
|
+
inputValue: 45
|
|
319
|
+
|
|
320
|
+
# Pixels (common for toolbarHeight)
|
|
321
|
+
toolbarHeight:
|
|
322
|
+
pixelsValue:
|
|
323
|
+
inputValue: 56
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## ConditionalBuilder
|
|
329
|
+
|
|
330
|
+
The ConditionalBuilder widget conditionally renders one of two child subtrees based on a condition.
|
|
331
|
+
|
|
332
|
+
### Minimal Example
|
|
333
|
+
|
|
334
|
+
```yaml
|
|
335
|
+
key: ConditionalBuilder_xxxxxxxx
|
|
336
|
+
type: ConditionalBuilder
|
|
337
|
+
props:
|
|
338
|
+
conditionalBuilder: {}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Full Schema
|
|
342
|
+
|
|
343
|
+
```yaml
|
|
344
|
+
key: ConditionalBuilder_xxxxxxxx
|
|
345
|
+
type: ConditionalBuilder
|
|
346
|
+
props:
|
|
347
|
+
conditionalBuilder: {} # Condition is configured via the widget tree
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Notes
|
|
351
|
+
|
|
352
|
+
The ConditionalBuilder widget is typically a structural wrapper. Its condition logic is managed by the FlutterFlow editor and stored in the widget tree outline, not in the node YAML itself. The `conditionalBuilder` prop is usually an empty object `{}`. The actual condition is evaluated at runtime to decide which child branch to render.
|
|
353
|
+
|
|
354
|
+
Children of the ConditionalBuilder are organized into two branches in the widget tree:
|
|
355
|
+
- **True branch** - rendered when condition is met
|
|
356
|
+
- **False branch** - rendered when condition is not met
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Real Examples
|
|
361
|
+
|
|
362
|
+
**Icon with static ARGB color:**
|
|
363
|
+
```yaml
|
|
364
|
+
key: Icon_idonj3t4
|
|
365
|
+
type: Icon
|
|
366
|
+
props:
|
|
367
|
+
icon:
|
|
368
|
+
sizeValue:
|
|
369
|
+
inputValue: 28
|
|
370
|
+
mostRecentInputValue: 28
|
|
371
|
+
colorValue:
|
|
372
|
+
inputValue:
|
|
373
|
+
value: "4291282887"
|
|
374
|
+
mostRecentInputValue:
|
|
375
|
+
value: "4291282887"
|
|
376
|
+
iconDataValue:
|
|
377
|
+
inputValue:
|
|
378
|
+
codePoint: 983520
|
|
379
|
+
family: MaterialIcons
|
|
380
|
+
matchTextDirection: false
|
|
381
|
+
name: store_rounded
|
|
382
|
+
padding:
|
|
383
|
+
type: FF_PADDING_ONLY
|
|
384
|
+
topValue:
|
|
385
|
+
inputValue: 4
|
|
386
|
+
mostRecentInputValue: 4
|
|
387
|
+
responsiveVisibility: {}
|
|
388
|
+
opacity:
|
|
389
|
+
opacityValue:
|
|
390
|
+
inputValue: 1
|
|
391
|
+
mostRecentInputValue: 1
|
|
392
|
+
parameterValues: {}
|
|
393
|
+
valueKey: {}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Icon with conditional color (dynamic):**
|
|
397
|
+
```yaml
|
|
398
|
+
key: Icon_tbetpdvx
|
|
399
|
+
type: Icon
|
|
400
|
+
props:
|
|
401
|
+
icon:
|
|
402
|
+
sizeValue:
|
|
403
|
+
inputValue: 32
|
|
404
|
+
colorValue:
|
|
405
|
+
variable:
|
|
406
|
+
source: FUNCTION_CALL
|
|
407
|
+
functionCall:
|
|
408
|
+
conditionalValue:
|
|
409
|
+
ifConditionalValues:
|
|
410
|
+
- condition:
|
|
411
|
+
source: FUNCTION_CALL
|
|
412
|
+
functionCall:
|
|
413
|
+
values:
|
|
414
|
+
- variable:
|
|
415
|
+
source: LOCAL_STATE
|
|
416
|
+
baseVariable:
|
|
417
|
+
localState:
|
|
418
|
+
fieldIdentifier:
|
|
419
|
+
name: analysisSelected
|
|
420
|
+
key: c1va5
|
|
421
|
+
stateVariableType: WIDGET_CLASS_STATE
|
|
422
|
+
nodeKeyRef:
|
|
423
|
+
key: Scaffold_acmap1hi
|
|
424
|
+
- inputValue:
|
|
425
|
+
serializedValue: "1"
|
|
426
|
+
condition:
|
|
427
|
+
relation: EQUAL_TO
|
|
428
|
+
value:
|
|
429
|
+
inputValue:
|
|
430
|
+
color:
|
|
431
|
+
value: "4279506971"
|
|
432
|
+
elseValue:
|
|
433
|
+
inputValue:
|
|
434
|
+
color:
|
|
435
|
+
themeColor: PRIMARY_TEXT
|
|
436
|
+
returnParameter:
|
|
437
|
+
dataType:
|
|
438
|
+
scalarType: Color
|
|
439
|
+
mostRecentInputValue:
|
|
440
|
+
themeColor: PRIMARY_TEXT
|
|
441
|
+
iconDataValue:
|
|
442
|
+
inputValue:
|
|
443
|
+
codePoint: 62269
|
|
444
|
+
family: MaterialIcons
|
|
445
|
+
matchTextDirection: false
|
|
446
|
+
name: science_outlined
|
|
447
|
+
padding: {}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**Circular progress bar with animation:**
|
|
451
|
+
```yaml
|
|
452
|
+
key: ProgressBar_wntv8q6y
|
|
453
|
+
type: ProgressBar
|
|
454
|
+
props:
|
|
455
|
+
expanded:
|
|
456
|
+
expandedType: UNEXPANDED
|
|
457
|
+
responsiveVisibility: {}
|
|
458
|
+
progressBar:
|
|
459
|
+
shape: Circular
|
|
460
|
+
text:
|
|
461
|
+
themeStyle: HEADLINE_SMALL
|
|
462
|
+
textValue:
|
|
463
|
+
inputValue: ""
|
|
464
|
+
size:
|
|
465
|
+
width:
|
|
466
|
+
pixelsValue:
|
|
467
|
+
inputValue: 150
|
|
468
|
+
height:
|
|
469
|
+
pixelsValue:
|
|
470
|
+
inputValue: 6
|
|
471
|
+
percentValue:
|
|
472
|
+
variable:
|
|
473
|
+
source: LOCAL_STATE
|
|
474
|
+
baseVariable:
|
|
475
|
+
localState:
|
|
476
|
+
fieldIdentifier:
|
|
477
|
+
name: loadingProgress
|
|
478
|
+
key: s4r96
|
|
479
|
+
stateVariableType: WIDGET_CLASS_STATE
|
|
480
|
+
nodeKeyRef:
|
|
481
|
+
key: Scaffold_0cxxh2p6
|
|
482
|
+
mostRecentInputValue: 1
|
|
483
|
+
progressColorValue:
|
|
484
|
+
inputValue:
|
|
485
|
+
value: "4282874240"
|
|
486
|
+
backgroundColorValue:
|
|
487
|
+
inputValue:
|
|
488
|
+
value: "4290245323"
|
|
489
|
+
animationValue:
|
|
490
|
+
inputValue: true
|
|
491
|
+
opacity:
|
|
492
|
+
opacityValue:
|
|
493
|
+
inputValue: 1
|
|
494
|
+
animatedOpacity: {}
|
|
495
|
+
valueKey: {}
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Collapsible sliver AppBar with percentage heights:**
|
|
499
|
+
```yaml
|
|
500
|
+
key: AppBar_2ti1h14b
|
|
501
|
+
type: AppBar
|
|
502
|
+
props:
|
|
503
|
+
appBar:
|
|
504
|
+
toolbarHeight:
|
|
505
|
+
pixelsValue:
|
|
506
|
+
inputValue: 56
|
|
507
|
+
isSliver: true
|
|
508
|
+
expandedHeight:
|
|
509
|
+
percentOfScreenSizeValue:
|
|
510
|
+
inputValue: 40
|
|
511
|
+
collapsedHeight:
|
|
512
|
+
percentOfScreenSizeValue:
|
|
513
|
+
inputValue: 10
|
|
514
|
+
defaultBackButtonValue:
|
|
515
|
+
inputValue: false
|
|
516
|
+
backgroundColorValue:
|
|
517
|
+
inputValue:
|
|
518
|
+
value: "0"
|
|
519
|
+
elevationValue:
|
|
520
|
+
inputValue: 0
|
|
521
|
+
centerTitleValue:
|
|
522
|
+
inputValue: false
|
|
523
|
+
name: AppBars
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
**AppBar with no back button and no elevation:**
|
|
527
|
+
```yaml
|
|
528
|
+
key: AppBar_hhz2azx5
|
|
529
|
+
type: AppBar
|
|
530
|
+
props:
|
|
531
|
+
appBar:
|
|
532
|
+
templateType: LARGE_HEADER
|
|
533
|
+
titleInFlexibleSpaceBar: false
|
|
534
|
+
defaultBackButtonValue:
|
|
535
|
+
inputValue: false
|
|
536
|
+
mostRecentInputValue: false
|
|
537
|
+
backgroundColorValue:
|
|
538
|
+
inputValue:
|
|
539
|
+
themeColor: SECONDARY_BACKGROUND
|
|
540
|
+
mostRecentInputValue:
|
|
541
|
+
themeColor: SECONDARY_BACKGROUND
|
|
542
|
+
elevationValue:
|
|
543
|
+
inputValue: 0
|
|
544
|
+
mostRecentInputValue: 0
|
|
545
|
+
centerTitleValue:
|
|
546
|
+
inputValue: false
|
|
547
|
+
mostRecentInputValue: false
|
|
548
|
+
opacity:
|
|
549
|
+
opacityValue:
|
|
550
|
+
inputValue: 1
|
|
551
|
+
mostRecentInputValue: 1
|
|
552
|
+
parameterValues: {}
|
|
553
|
+
```
|