@ea-lab/reactive-json-docs 0.8.0 → 1.0.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.
Files changed (104) hide show
  1. package/package.json +7 -5
  2. package/public/rjbuild/docs/advanced-concepts/attribute-transformers.md +168 -0
  3. package/public/rjbuild/docs/advanced-concepts/attribute-transformers.yaml +151 -0
  4. package/public/rjbuild/docs/advanced-concepts/data-mapping.md +6 -6
  5. package/public/rjbuild/docs/advanced-concepts/data-mapping.yaml +7 -7
  6. package/public/rjbuild/docs/advanced-concepts/data-processors.md +7 -7
  7. package/public/rjbuild/docs/advanced-concepts/data-processors.yaml +7 -7
  8. package/public/rjbuild/docs/advanced-concepts/forward-update.md +2 -2
  9. package/public/rjbuild/docs/advanced-concepts/forward-update.yaml +2 -2
  10. package/public/rjbuild/docs/advanced-concepts/index.md +1 -0
  11. package/public/rjbuild/docs/advanced-concepts/index.yaml +1 -0
  12. package/public/rjbuild/docs/advanced-concepts/plugins/component-development.md +1 -1
  13. package/public/rjbuild/docs/advanced-concepts/plugins/component-development.yaml +1 -1
  14. package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.md +48 -2
  15. package/public/rjbuild/docs/advanced-concepts/plugins/plugin-system.yaml +54 -2
  16. package/public/rjbuild/docs/core/action/Attribute/SetAttributeValue.md +2 -0
  17. package/public/rjbuild/docs/core/action/Attribute/SetAttributeValue.yaml +2 -0
  18. package/public/rjbuild/docs/core/action/Attribute/ToggleAttributeValue.md +2 -0
  19. package/public/rjbuild/docs/core/action/Attribute/ToggleAttributeValue.yaml +2 -0
  20. package/public/rjbuild/docs/core/action/Attribute/UnsetAttribute.md +2 -0
  21. package/public/rjbuild/docs/core/action/Attribute/UnsetAttribute.yaml +2 -0
  22. package/public/rjbuild/docs/core/action/Attribute/UnsetAttributeValue.md +2 -0
  23. package/public/rjbuild/docs/core/action/Attribute/UnsetAttributeValue.yaml +2 -0
  24. package/public/rjbuild/docs/core/action/Attribute/index.md +121 -0
  25. package/public/rjbuild/docs/core/action/Attribute/index.yaml +77 -0
  26. package/public/rjbuild/docs/core/attributeTransformer/index.md +17 -0
  27. package/public/rjbuild/docs/core/attributeTransformer/index.yaml +24 -0
  28. package/public/rjbuild/docs/core/attributeTransformer/setAttributeValue.md +101 -0
  29. package/public/rjbuild/docs/core/attributeTransformer/setAttributeValue.yaml +144 -0
  30. package/public/rjbuild/docs/core/attributeTransformer/toggleAttributeValue.md +269 -0
  31. package/public/rjbuild/docs/core/attributeTransformer/toggleAttributeValue.yaml +247 -0
  32. package/public/rjbuild/docs/core/attributeTransformer/unsetAttribute.md +114 -0
  33. package/public/rjbuild/docs/core/attributeTransformer/unsetAttribute.yaml +138 -0
  34. package/public/rjbuild/docs/core/attributeTransformer/unsetAttributeValue.md +140 -0
  35. package/public/rjbuild/docs/core/attributeTransformer/unsetAttributeValue.yaml +187 -0
  36. package/public/rjbuild/docs/core/dataMapping/simpleMapping.yaml +14 -4
  37. package/public/rjbuild/docs/core/element/form/Input.md +307 -0
  38. package/public/rjbuild/docs/core/element/form/Input.yaml +572 -0
  39. package/public/rjbuild/docs/core/element/special/Count.yaml +99 -31
  40. package/public/rjbuild/docs/core/element/special/DataFilter.yaml +118 -38
  41. package/public/rjbuild/docs/core/element/special/ReactiveJsonSubroot.yaml +154 -34
  42. package/public/rjbuild/docs/core/element/special/Switch.md +5 -5
  43. package/public/rjbuild/docs/core/element/special/Switch.yaml +9 -18
  44. package/public/rjbuild/docs/core/example/html.md +2 -2
  45. package/public/rjbuild/docs/core/example/html.yaml +2 -3
  46. package/public/rjbuild/docs/core/example/native-html-forms.md +245 -0
  47. package/public/rjbuild/docs/core/example/native-html-forms.yaml +393 -0
  48. package/public/rjbuild/docs/core/hook/index.md +38 -0
  49. package/public/rjbuild/docs/core/hook/index.yaml +44 -0
  50. package/public/rjbuild/docs/core/hook/usePagination.md +286 -0
  51. package/public/rjbuild/docs/core/hook/usePagination.yaml +319 -0
  52. package/public/rjbuild/docs/core/hook/useTransformedAttributes.md +130 -0
  53. package/public/rjbuild/docs/core/hook/useTransformedAttributes.yaml +164 -0
  54. package/public/rjbuild/docs/core/reaction/addData.md +17 -3
  55. package/public/rjbuild/docs/core/reaction/addData.yaml +53 -9
  56. package/public/rjbuild/docs/core/reaction/fetchData.yaml +44 -8
  57. package/public/rjbuild/docs/core/reaction/setData.md +18 -4
  58. package/public/rjbuild/docs/core/reaction/setData.yaml +18 -4
  59. package/public/rjbuild/docs/docs-components/Mermaid.md +254 -0
  60. package/public/rjbuild/docs/docs-components/Mermaid.yaml +339 -0
  61. package/public/rjbuild/docs/docs-components/index.yaml +1 -0
  62. package/public/rjbuild/docs/getting-started/actions.md +1 -1
  63. package/public/rjbuild/docs/index.yaml +2 -1
  64. package/public/rjbuild/docs/install.md +2 -5
  65. package/public/rjbuild/docs/install.yaml +4 -10
  66. package/public/rjbuild/docs/{core → integration/bootstrap}/action/Popover.md +1 -1
  67. package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.md +1 -1
  68. package/public/rjbuild/docs/integration/bootstrap/element/html/AccordionItem.md +69 -0
  69. package/public/rjbuild/docs/integration/bootstrap/element/html/Modal.md +127 -0
  70. package/public/rjbuild/docs/integration/bootstrap/element/html/Tabs.md +150 -0
  71. package/public/rjbuild/docs/integration/bootstrap/element/html/index.md +13 -0
  72. package/public/rjbuild/docs/integration/bootstrap/element/special/index.md +19 -0
  73. package/public/rjbuild/docs/integration/bootstrap/example/website.md +41 -0
  74. package/public/rjbuild/docs/integration/bootstrap/overview.md +69 -0
  75. package/public/rjbuild/docs/integration/bootstrap/overview.yaml +87 -0
  76. /package/public/rjbuild/docs/{core → integration/bootstrap}/action/Popover.yaml +0 -0
  77. /package/public/rjbuild/docs/{core → integration/bootstrap}/action/Tooltip.yaml +0 -0
  78. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.md +0 -0
  79. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/CheckBoxField.yaml +0 -0
  80. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.md +0 -0
  81. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/DateField.yaml +0 -0
  82. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.md +0 -0
  83. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/NumberField.yaml +0 -0
  84. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.md +0 -0
  85. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/SelectField.yaml +0 -0
  86. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.md +0 -0
  87. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextAreaField.yaml +0 -0
  88. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.md +0 -0
  89. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/TextField.yaml +0 -0
  90. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/formElementsCommon.md +0 -0
  91. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.md +0 -0
  92. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/form/index.yaml +0 -0
  93. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/AccordionItem.yaml +0 -0
  94. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Modal.yaml +0 -0
  95. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/html/Tabs.yaml +0 -0
  96. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/special/BootstrapElement.md +0 -0
  97. /package/public/rjbuild/docs/{core → integration/bootstrap}/element/special/BootstrapElement.yaml +0 -0
  98. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.md +0 -0
  99. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/accordion.yaml +0 -0
  100. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.md +0 -0
  101. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/dynamic-content.yaml +0 -0
  102. /package/public/rjbuild/docs/{core → integration/bootstrap}/example/website.yaml +0 -0
  103. /package/public/rjbuild/docs/{chartjs → integration/chartjs}/components.yaml +0 -0
  104. /package/public/rjbuild/docs/{chartjs → integration/chartjs}/overview.yaml +0 -0
@@ -55,15 +55,23 @@ renderView:
55
55
  renderView:
56
56
  - type: div
57
57
  attributes:
58
- class: "container-fluid"
58
+ style:
59
+ width: "100%"
60
+ padding: "0 16px"
59
61
  content:
60
62
  - type: div
61
63
  attributes:
62
- class: "row mb-4"
64
+ style:
65
+ display: "flex"
66
+ marginBottom: "16px"
63
67
  content:
64
68
  - type: div
65
69
  attributes:
66
- class: "col-md-6"
70
+ style:
71
+ width: "48%"
72
+ display: "inline-block"
73
+ verticalAlign: "top"
74
+ marginRight: "2%"
67
75
  content:
68
76
  - type: div
69
77
  attributes:
@@ -131,7 +139,11 @@ renderView:
131
139
  jsonPathPattern: "$.users[?(@.role == 'admin')]"
132
140
  - type: div
133
141
  attributes:
134
- class: "col-md-6"
142
+ style:
143
+ width: "48%"
144
+ display: "inline-block"
145
+ verticalAlign: "top"
146
+ marginRight: "2%"
135
147
  content:
136
148
  - type: div
137
149
  attributes:
@@ -153,37 +165,86 @@ renderView:
153
165
  attributes:
154
166
  class: "mb-3"
155
167
  content:
156
- - type: TextField
157
- label: "Name:"
158
- dataLocation: ~.newUser.name
159
- placeholder: "Enter user name"
168
+ - type: label
169
+ content: "Name:"
170
+ - type: input
171
+ attributes:
172
+ type: "text"
173
+ value: ~.newUser.name
174
+ placeholder: "Enter user name"
175
+ style:
176
+ padding: "8px"
177
+ border: "1px solid #ccc"
178
+ borderRadius: "4px"
179
+ width: "100%"
180
+ actions:
181
+ - what: setData
182
+ on: input
183
+ path: ~.newUser.name
184
+ value: "<reactive-json:event-new-value>"
160
185
  - type: div
161
186
  attributes:
162
187
  class: "mb-3"
163
188
  content:
164
- - type: SelectField
165
- label: "Status:"
166
- dataLocation: ~.newUser.status
167
- options:
168
- - label: "Active"
169
- value: "active"
170
- - label: "Inactive"
171
- value: "inactive"
189
+ - type: label
190
+ content: "Status:"
191
+ - type: select
192
+ attributes:
193
+ value: ~.newUser.status
194
+ style:
195
+ padding: "8px"
196
+ border: "1px solid #ccc"
197
+ borderRadius: "4px"
198
+ width: "100%"
199
+ content:
200
+ - type: option
201
+ attributes:
202
+ value: "active"
203
+ content: "Active"
204
+ - type: option
205
+ attributes:
206
+ value: "inactive"
207
+ content: "Inactive"
208
+ actions:
209
+ - what: setData
210
+ on: change
211
+ path: ~.newUser.status
212
+ value: "<reactive-json:event-new-value>"
172
213
  - type: div
173
214
  attributes:
174
215
  class: "mb-3"
175
216
  content:
176
- - type: SelectField
177
- label: "Role:"
178
- dataLocation: ~.newUser.role
179
- options:
180
- - label: "User"
181
- value: "user"
182
- - label: "Admin"
183
- value: "admin"
217
+ - type: label
218
+ content: "Role:"
219
+ - type: select
220
+ attributes:
221
+ value: ~.newUser.role
222
+ style:
223
+ padding: "8px"
224
+ border: "1px solid #ccc"
225
+ borderRadius: "4px"
226
+ width: "100%"
227
+ content:
228
+ - type: option
229
+ attributes:
230
+ value: "user"
231
+ content: "User"
232
+ - type: option
233
+ attributes:
234
+ value: "admin"
235
+ content: "Admin"
236
+ actions:
237
+ - what: setData
238
+ on: change
239
+ path: ~.newUser.role
240
+ value: "<reactive-json:event-new-value>"
184
241
  - type: button
185
242
  attributes:
186
- class: "btn btn-primary"
243
+ style:
244
+ padding: "8px 16px"
245
+ border: "1px solid #007bff"
246
+ borderRadius: "4px"
247
+ cursor: "pointer"
187
248
  content: "Add User"
188
249
  actions:
189
250
  - what: addData
@@ -247,8 +308,7 @@ renderView:
247
308
  attributes:
248
309
  class: "ms-2 badge rounded-pill"
249
310
  style:
250
- backgroundColor: "#198754"
251
- color: "white"
311
+ border: "1px solid #198754"
252
312
  content: ~.status
253
313
  actions:
254
314
  - what: hide
@@ -258,8 +318,7 @@ renderView:
258
318
  attributes:
259
319
  class: "ms-2 badge rounded-pill"
260
320
  style:
261
- backgroundColor: "#ffc107"
262
- color: "black"
321
+ border: "1px solid #ffc107"
263
322
  content: ~.status
264
323
  actions:
265
324
  - what: hide
@@ -277,7 +336,12 @@ renderView:
277
336
  content:
278
337
  - type: button
279
338
  attributes:
280
- class: "btn btn-sm btn-outline-primary me-2"
339
+ style:
340
+ padding: "4px 8px"
341
+ border: "1px solid #007bff"
342
+ borderRadius: "4px"
343
+ cursor: "pointer"
344
+ marginRight: "8px"
281
345
  content: "Toggle Status"
282
346
  actions:
283
347
  - what: setData
@@ -294,7 +358,11 @@ renderView:
294
358
  is: "inactive"
295
359
  - type: button
296
360
  attributes:
297
- class: "btn btn-sm btn-outline-danger"
361
+ style:
362
+ padding: "4px 8px"
363
+ border: "1px solid #dc3545"
364
+ borderRadius: "4px"
365
+ cursor: "pointer"
298
366
  content: "Remove"
299
367
  actions:
300
368
  - what: removeData
@@ -115,7 +115,11 @@ renderView:
115
115
  content:
116
116
  - type: div
117
117
  attributes:
118
- class: "col-md-6"
118
+ style:
119
+ width: "48%"
120
+ display: "inline-block"
121
+ verticalAlign: "top"
122
+ marginRight: "2%"
119
123
  content:
120
124
  - type: div
121
125
  attributes:
@@ -143,7 +147,11 @@ renderView:
143
147
  load: item
144
148
  - type: div
145
149
  attributes:
146
- class: "col-md-6"
150
+ style:
151
+ width: "48%"
152
+ display: "inline-block"
153
+ verticalAlign: "top"
154
+ marginRight: "2%"
147
155
  content:
148
156
  - type: div
149
157
  attributes:
@@ -203,7 +211,8 @@ renderView:
203
211
  content:
204
212
  - type: div
205
213
  attributes:
206
- class: "col-12"
214
+ style:
215
+ width: "100%"
207
216
  content:
208
217
  - type: div
209
218
  attributes:
@@ -228,70 +237,140 @@ renderView:
228
237
  content:
229
238
  - type: div
230
239
  attributes:
231
- class: "col-md-4"
240
+ style:
241
+ width: "32%"
242
+ display: "inline-block"
243
+ verticalAlign: "top"
244
+ marginRight: "1%"
232
245
  content:
233
- - type: TextField
234
- placeholder: "Search..."
235
- dataLocation: ~~._filters.search
246
+ - type: input
247
+ attributes:
248
+ type: "text"
249
+ placeholder: "Search..."
250
+ value: ~~._filters.search
251
+ style:
252
+ padding: "8px"
253
+ border: "1px solid #ccc"
254
+ borderRadius: "4px"
255
+ width: "100%"
256
+ actions:
257
+ - what: setData
258
+ on: input
259
+ path: ~~._filters.search
260
+ value: "<reactive-json:event-new-value>"
236
261
  - type: div
237
262
  attributes:
238
- class: "col-md-4"
263
+ style:
264
+ width: "32%"
265
+ display: "inline-block"
266
+ verticalAlign: "top"
267
+ marginRight: "1%"
239
268
  content:
240
- - # TODO: replace this by the DateField when DateField will support type="date".
241
- type: TextField
242
- inputType: date
243
- dataLocation: ~~._filters.since
269
+ - type: input
270
+ attributes:
271
+ type: "date"
272
+ value: ~~._filters.since
273
+ style:
274
+ padding: "8px"
275
+ border: "1px solid #ccc"
276
+ borderRadius: "4px"
277
+ actions:
278
+ - what: setData
279
+ on: input
280
+ path: ~~._filters.since
281
+ value: "<reactive-json:event-new-value>"
244
282
  - type: div
245
283
  attributes:
246
- class: "col-md-4"
284
+ style:
285
+ width: "32%"
286
+ display: "inline-block"
287
+ verticalAlign: "top"
288
+ marginRight: "1%"
247
289
  content:
248
- - type: SelectField
249
- dataLocation: ~~._filters.status
250
- options:
251
- - label: "All"
252
- value: all
253
- - label: "Active only"
254
- value: active_only
290
+ - type: select
291
+ attributes:
292
+ value: ~~._filters.status
293
+ style:
294
+ padding: "8px"
295
+ border: "1px solid #ccc"
296
+ borderRadius: "4px"
297
+ width: "100%"
298
+ content:
299
+ - type: option
300
+ attributes:
301
+ value: "all"
302
+ content: "All"
303
+ - type: option
304
+ attributes:
305
+ value: "active_only"
306
+ content: "Active only"
307
+ actions:
308
+ - what: setData
309
+ on: change
310
+ path: ~~._filters.status
311
+ value: "<reactive-json:event-new-value>"
255
312
 
256
313
  templates:
257
314
  item:
258
315
  type: div
259
316
  attributes:
260
- class: "list-group-item d-flex justify-content-between align-items-center border-start-0 border-end-0 py-3"
317
+ style:
318
+ display: "flex"
319
+ justifyContent: "space-between"
320
+ alignItems: "center"
321
+ padding: "16px 0"
322
+ borderTop: "1px solid #ddd"
323
+ borderBottom: "1px solid #ddd"
261
324
  content:
262
325
  - type: div
263
326
  attributes:
264
- class: "d-flex align-items-center gap-3"
327
+ style:
328
+ display: "flex"
329
+ alignItems: "center"
330
+ gap: "12px"
265
331
  content:
266
- - type: CheckBoxField
332
+ - type: input
267
333
  attributes:
268
- class: "form-check"
269
- options:
270
- - value: true
271
- label: ""
272
- dataLocation: ~.item.isSelected
334
+ type: "checkbox"
335
+ checked: ~.item.isSelected
336
+ style:
337
+ margin: "0 8px 0 0"
338
+ actions:
339
+ - what: setData
340
+ on: change
341
+ path: ~.item.isSelected
342
+ value: "<reactive-json:event-new-value>"
273
343
  - type: div
274
344
  attributes:
275
- class: "d-flex flex-column"
345
+ style:
346
+ display: "flex"
347
+ flexDirection: "column"
276
348
  content:
277
349
  - type: div
278
350
  attributes:
279
- class: "fw-bold mb-1"
351
+ style:
352
+ fontWeight: "bold"
353
+ marginBottom: "4px"
280
354
  content: ~.item.searchableContent
281
355
  - type: div
282
356
  attributes:
283
- class: "text-muted small"
357
+ style:
358
+ color: "#6c757d"
359
+ fontSize: "0.875rem"
284
360
  content: ~.item.creationDate
285
361
  - type: div
286
362
  attributes:
287
- class: "d-flex gap-2"
363
+ style:
364
+ display: "flex"
365
+ gap: "8px"
288
366
  content:
289
367
  - type: span
290
368
  attributes:
291
- class: "badge rounded-pill"
292
369
  style:
293
- backgroundColor: "#198754"
294
- color: "white"
370
+ border: "1px solid #198754"
371
+ padding: "4px 8px"
372
+ borderRadius: "12px"
373
+ fontSize: "0.75rem"
295
374
  content: ~.item.status
296
375
  actions:
297
376
  - what: hide
@@ -299,10 +378,11 @@ renderView:
299
378
  isNot: active
300
379
  - type: span
301
380
  attributes:
302
- class: "badge rounded-pill"
303
381
  style:
304
- backgroundColor: "#dc3545"
305
- color: "white"
382
+ border: "1px solid #dc3545"
383
+ padding: "4px 8px"
384
+ borderRadius: "12px"
385
+ fontSize: "0.75rem"
306
386
  content: ~.item.status
307
387
  actions:
308
388
  - what: hide
@@ -212,7 +212,7 @@ renderView:
212
212
  renderView:
213
213
  - type: ReactiveJsonSubroot
214
214
  rjOptions:
215
- maybeRawAppRjBuild: '{"data":{"userName":"Alice","messageCount":3},"renderView":[{"type":"div","attributes":{"style":{"padding":"1rem","border":"1px solid #ddd","borderRadius":"8px","backgroundColor":"#f9f9f9"}},"content":[{"type":"h3","content":"~~.userName"},{"type":"p","content":["You have ","~~.messageCount"," new messages."]},{"type":"button","content":"Mark as read","attributes":{"style":{"backgroundColor":"#007bff","color":"white","border":"none","padding":"0.5rem 1rem","borderRadius":"4px"}}}]}]}'
215
+ maybeRawAppRjBuild: '{"data":{"userName":"Alice","messageCount":3},"renderView":[{"type":"div","attributes":{"style":{"padding":"1rem","border":"1px solid #ddd","borderRadius":"8px"}},"content":[{"type":"h3","content":"~~.userName"},{"type":"p","content":["You have ","~~.messageCount"," new messages."]},{"type":"button","content":"Mark as read","attributes":{"style":{"border":"1px solid #007bff","padding":"0.5rem 1rem","borderRadius":"4px"}}}]}]}'
216
216
 
217
217
  - type: hr
218
218
 
@@ -266,12 +266,30 @@ renderView:
266
266
  content:
267
267
  - type: h4
268
268
  content: "Subroot Editor (with sharedUpdates)"
269
- - type: TextField
270
- label: "Name"
271
- dataLocation: ~.name
272
- - type: TextField
273
- label: "Email"
274
- dataLocation: ~.email
269
+ - type: label
270
+ content: "Name"
271
+ - type: input
272
+ attributes:
273
+ type: text
274
+ value: ~.name
275
+ placeholder: "Name"
276
+ actions:
277
+ - what: setData
278
+ on: change
279
+ path: ~.name
280
+ value: "<reactive-json:event-new-value>"
281
+ - type: label
282
+ content: "Email"
283
+ - type: input
284
+ attributes:
285
+ type: email
286
+ value: ~.email
287
+ placeholder: "Email"
288
+ actions:
289
+ - what: setData
290
+ on: change
291
+ path: ~.email
292
+ value: "<reactive-json:event-new-value>"
275
293
  - type: p
276
294
  attributes:
277
295
  style:
@@ -352,22 +370,58 @@ renderView:
352
370
  content:
353
371
  - type: h5
354
372
  content: "Edit Profile"
355
- - type: TextField
356
- label: "Name"
357
- dataLocation: ~.userProfile.name
358
- - type: NumberField
359
- label: "Age"
360
- dataLocation: ~.userProfile.age
373
+ - type: label
374
+ content: "Name"
375
+ - type: input
376
+ attributes:
377
+ type: text
378
+ value: ~.userProfile.name
379
+ placeholder: "Name"
380
+ actions:
381
+ - what: setData
382
+ on: change
383
+ path: ~.userProfile.name
384
+ value: "<reactive-json:event-new-value>"
385
+ - type: label
386
+ content: "Age"
387
+ - type: input
388
+ attributes:
389
+ type: number
390
+ value: ~.userProfile.age
391
+ placeholder: "Age"
392
+ actions:
393
+ - what: setData
394
+ on: change
395
+ path: ~.userProfile.age
396
+ value: "<reactive-json:event-new-value>"
361
397
  - type: div
362
398
  content:
363
399
  - type: h5
364
400
  content: "Edit Settings"
365
- - type: TextField
366
- label: "Theme"
367
- dataLocation: ~.userSettings.theme
368
- - type: TextField
369
- label: "Language"
370
- dataLocation: ~.userSettings.language
401
+ - type: label
402
+ content: "Theme"
403
+ - type: input
404
+ attributes:
405
+ type: text
406
+ value: ~.userSettings.theme
407
+ placeholder: "Theme"
408
+ actions:
409
+ - what: setData
410
+ on: change
411
+ path: ~.userSettings.theme
412
+ value: "<reactive-json:event-new-value>"
413
+ - type: label
414
+ content: "Language"
415
+ - type: input
416
+ attributes:
417
+ type: text
418
+ value: ~.userSettings.language
419
+ placeholder: "Language"
420
+ actions:
421
+ - what: setData
422
+ on: change
423
+ path: ~.userSettings.language
424
+ value: "<reactive-json:event-new-value>"
371
425
 
372
426
  - type: RjBuildDescriber
373
427
  title: Example with Array References
@@ -391,9 +445,41 @@ renderView:
391
445
  - type: h4
392
446
  content: "Parent Items Display"
393
447
  - type: p
394
- content: ["Item 1: ", ~~.items.0.title, " (", ~~.items.0.completed, ")"]
395
- - type: p
396
- content: ["Item 2: ", ~~.items.1.title, " (", ~~.items.1.completed, ")"]
448
+ content:
449
+ - "Item 1: "
450
+ - ~~.items.0.title
451
+ - " (completed: "
452
+ - type: span
453
+ content: "Yes"
454
+ actions:
455
+ - what: hide
456
+ when: ~~.items.0.completed
457
+ is: false
458
+ - type: span
459
+ content: "No"
460
+ actions:
461
+ - what: hide
462
+ when: ~~.items.0.completed
463
+ is: true
464
+ - ")"
465
+ - type: p
466
+ content:
467
+ - "Item 2: "
468
+ - ~~.items.1.title
469
+ - " (completed: "
470
+ - type: span
471
+ content: "Yes"
472
+ actions:
473
+ - what: hide
474
+ when: ~~.items.1.completed
475
+ is: false
476
+ - type: span
477
+ content: "No"
478
+ actions:
479
+ - what: hide
480
+ when: ~~.items.1.completed
481
+ is: true
482
+ - ")"
397
483
 
398
484
  - type: ReactiveJsonSubroot
399
485
  sharedUpdates: true
@@ -416,22 +502,56 @@ renderView:
416
502
  content:
417
503
  - type: h5
418
504
  content: "First Item"
419
- - type: TextField
420
- label: "Title"
421
- dataLocation: ~.0.title
422
- - type: CheckBoxField
423
- label: "Completed"
424
- dataLocation: ~.0.completed
505
+ - type: label
506
+ content: "Title"
507
+ - type: input
508
+ attributes:
509
+ type: text
510
+ value: ~.0.title
511
+ placeholder: "Title"
512
+ actions:
513
+ - what: setData
514
+ on: change
515
+ path: ~.0.title
516
+ value: "<reactive-json:event-new-value>"
517
+ - type: label
518
+ content: "Completed"
519
+ - type: input
520
+ attributes:
521
+ type: checkbox
522
+ checked: ~.0.completed
523
+ actions:
524
+ - what: setData
525
+ on: change
526
+ path: ~.0.completed
527
+ value: "<reactive-json:event-new-value>"
425
528
  - type: div
426
529
  content:
427
530
  - type: h5
428
531
  content: "Second Item"
429
- - type: TextField
430
- label: "Title"
431
- dataLocation: ~.1.title
432
- - type: CheckBoxField
433
- label: "Completed"
434
- dataLocation: ~.1.completed
532
+ - type: label
533
+ content: "Title"
534
+ - type: input
535
+ attributes:
536
+ type: text
537
+ value: ~.1.title
538
+ placeholder: "Title"
539
+ actions:
540
+ - what: setData
541
+ on: change
542
+ path: ~.1.title
543
+ value: "<reactive-json:event-new-value>"
544
+ - type: label
545
+ content: "Completed"
546
+ - type: input
547
+ attributes:
548
+ type: checkbox
549
+ checked: ~.1.completed
550
+ actions:
551
+ - what: setData
552
+ on: change
553
+ path: ~.1.completed
554
+ value: "<reactive-json:event-new-value>"
435
555
 
436
556
  - type: Markdown
437
557
  content: |