create-foldkit-app 0.35.1 → 0.35.2

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 (134) hide show
  1. package/dist/templates/base/FOLDKIT.md +2 -2
  2. package/dist/templates/examples/api-cache/package.json +2 -2
  3. package/dist/templates/examples/api-cache/src/main.fixture.ts +4 -4
  4. package/dist/templates/examples/api-cache/src/main.ts +12 -12
  5. package/dist/templates/examples/api-cache/src/story.test.ts +6 -6
  6. package/dist/templates/examples/auth/package.json +2 -2
  7. package/dist/templates/examples/auth/src/page/loggedOut/page/login.scene.test.ts +2 -2
  8. package/dist/templates/examples/auth/src/page/loggedOut/page/login.story.test.ts +2 -2
  9. package/dist/templates/examples/auth/src/page/loggedOut/page/login.ts +5 -5
  10. package/dist/templates/examples/auth/src/page/loggedOut/update.ts +2 -2
  11. package/dist/templates/examples/auth/src/scene.test.ts +2 -2
  12. package/dist/templates/examples/auth/src/update.ts +3 -3
  13. package/dist/templates/examples/canvas-art/package.json +2 -2
  14. package/dist/templates/examples/canvas-art/src/main.ts +6 -6
  15. package/dist/templates/examples/canvas-art/src/scene.test.ts +3 -3
  16. package/dist/templates/examples/canvas-art/src/story.test.ts +3 -3
  17. package/dist/templates/examples/charting/package.json +2 -2
  18. package/dist/templates/examples/charting/src/main.fixture.ts +2 -2
  19. package/dist/templates/examples/charting/src/scene.test.ts +3 -3
  20. package/dist/templates/examples/charting/src/story.test.ts +2 -2
  21. package/dist/templates/examples/charting/src/update.ts +18 -16
  22. package/dist/templates/examples/counter/package.json +2 -2
  23. package/dist/templates/examples/counter/src/main.ts +4 -4
  24. package/dist/templates/examples/counters/package.json +2 -2
  25. package/dist/templates/examples/counters/src/counter.ts +3 -3
  26. package/dist/templates/examples/counters/src/main.ts +7 -5
  27. package/dist/templates/examples/crash-view/package.json +2 -2
  28. package/dist/templates/examples/embedding/package.json +2 -2
  29. package/dist/templates/examples/embedding/src/main.ts +5 -3
  30. package/dist/templates/examples/embedding/src/scene.test.ts +2 -2
  31. package/dist/templates/examples/embedding/src/story.test.ts +2 -2
  32. package/dist/templates/examples/form/package.json +2 -2
  33. package/dist/templates/examples/form/src/main.ts +9 -9
  34. package/dist/templates/examples/form/src/scene.test.ts +5 -5
  35. package/dist/templates/examples/form/src/story.test.ts +4 -4
  36. package/dist/templates/examples/generative-art/package.json +2 -2
  37. package/dist/templates/examples/generative-art/src/scene.test.ts +2 -2
  38. package/dist/templates/examples/generative-art/src/story.test.ts +3 -3
  39. package/dist/templates/examples/generative-art/src/update.ts +11 -11
  40. package/dist/templates/examples/interrupting-commands/package.json +2 -2
  41. package/dist/templates/examples/interrupting-commands/src/main.ts +8 -6
  42. package/dist/templates/examples/job-application/package.json +2 -2
  43. package/dist/templates/examples/job-application/src/main.fixture.ts +9 -9
  44. package/dist/templates/examples/job-application/src/scene.test.ts +13 -13
  45. package/dist/templates/examples/job-application/src/step/attachments/attachments.ts +7 -7
  46. package/dist/templates/examples/job-application/src/step/coverLetter/coverLetter.ts +2 -2
  47. package/dist/templates/examples/job-application/src/step/education/education.ts +6 -6
  48. package/dist/templates/examples/job-application/src/step/education/entry/entry.ts +14 -8
  49. package/dist/templates/examples/job-application/src/step/personalInfo/personalInfo.ts +20 -15
  50. package/dist/templates/examples/job-application/src/step/personalInfo/story.test.ts +2 -2
  51. package/dist/templates/examples/job-application/src/step/skills/entry/entry.ts +7 -5
  52. package/dist/templates/examples/job-application/src/step/skills/skills.ts +6 -6
  53. package/dist/templates/examples/job-application/src/step/workHistory/entry/entry.ts +13 -12
  54. package/dist/templates/examples/job-application/src/step/workHistory/workHistory.ts +6 -6
  55. package/dist/templates/examples/job-application/src/story.test.ts +10 -10
  56. package/dist/templates/examples/job-application/src/update.ts +25 -18
  57. package/dist/templates/examples/kanban/package.json +2 -2
  58. package/dist/templates/examples/kanban/src/domain/column.ts +9 -6
  59. package/dist/templates/examples/kanban/src/update.ts +8 -8
  60. package/dist/templates/examples/managed-resource-layer/package.json +2 -2
  61. package/dist/templates/examples/managed-resource-layer/src/main.ts +11 -7
  62. package/dist/templates/examples/managed-resource-layer/src/story.test.ts +3 -3
  63. package/dist/templates/examples/map/package.json +2 -2
  64. package/dist/templates/examples/map/src/main.fixture.ts +2 -2
  65. package/dist/templates/examples/map/src/main.ts +11 -11
  66. package/dist/templates/examples/map/src/scene.test.ts +4 -4
  67. package/dist/templates/examples/map/src/story.test.ts +4 -4
  68. package/dist/templates/examples/pixel-art/package.json +2 -2
  69. package/dist/templates/examples/pixel-art/src/comparison.bench.test.ts +2 -2
  70. package/dist/templates/examples/pixel-art/src/main.bench.ts +7 -3
  71. package/dist/templates/examples/pixel-art/src/scene.test.ts +5 -5
  72. package/dist/templates/examples/pixel-art/src/story.test.ts +4 -4
  73. package/dist/templates/examples/pixel-art/src/subscription.ts +2 -2
  74. package/dist/templates/examples/pixel-art/src/update.ts +49 -33
  75. package/dist/templates/examples/query-sync/package.json +2 -2
  76. package/dist/templates/examples/query-sync/src/main.ts +4 -4
  77. package/dist/templates/examples/query-sync/src/scene.test.ts +4 -4
  78. package/dist/templates/examples/query-sync/src/story.test.ts +2 -2
  79. package/dist/templates/examples/route-transitions/package.json +2 -2
  80. package/dist/templates/examples/route-transitions/src/main.ts +10 -10
  81. package/dist/templates/examples/route-transitions/src/story.test.ts +10 -6
  82. package/dist/templates/examples/routing/package.json +2 -2
  83. package/dist/templates/examples/routing/src/main.ts +13 -17
  84. package/dist/templates/examples/routing/src/page/people.ts +4 -4
  85. package/dist/templates/examples/shopping-cart/package.json +2 -2
  86. package/dist/templates/examples/shopping-cart/src/domain/cart.ts +4 -4
  87. package/dist/templates/examples/shopping-cart/src/main.ts +12 -12
  88. package/dist/templates/examples/shopping-cart/src/page/products.ts +2 -2
  89. package/dist/templates/examples/shopping-cart/src/scene.test.ts +10 -8
  90. package/dist/templates/examples/shopping-cart/src/story.test.ts +7 -7
  91. package/dist/templates/examples/slow-warnings/package.json +2 -2
  92. package/dist/templates/examples/slow-warnings/src/handleSlow.test.ts +2 -2
  93. package/dist/templates/examples/slow-warnings/src/main.ts +8 -8
  94. package/dist/templates/examples/slow-warnings/src/scene.test.ts +2 -2
  95. package/dist/templates/examples/slow-warnings/src/story.test.ts +2 -2
  96. package/dist/templates/examples/snake/package.json +2 -2
  97. package/dist/templates/examples/snake/src/main.ts +10 -10
  98. package/dist/templates/examples/snake/src/scene.test.ts +10 -5
  99. package/dist/templates/examples/snake/src/story.test.ts +6 -6
  100. package/dist/templates/examples/ssg/package.json +2 -2
  101. package/dist/templates/examples/ssg/src/main.ts +3 -3
  102. package/dist/templates/examples/ssr/package.json +4 -4
  103. package/dist/templates/examples/ssr/src/main.ts +3 -3
  104. package/dist/templates/examples/state-machine/package.json +2 -2
  105. package/dist/templates/examples/state-machine/src/main.ts +14 -10
  106. package/dist/templates/examples/stopwatch/package.json +2 -2
  107. package/dist/templates/examples/stopwatch/src/main.ts +5 -5
  108. package/dist/templates/examples/stopwatch/src/story.test.ts +2 -2
  109. package/dist/templates/examples/todo/package.json +2 -2
  110. package/dist/templates/examples/todo/src/main.ts +17 -17
  111. package/dist/templates/examples/todo/src/scene.test.ts +4 -4
  112. package/dist/templates/examples/todo/src/story.test.ts +22 -16
  113. package/dist/templates/examples/ui-showcase/package.json +2 -2
  114. package/dist/templates/examples/ui-showcase/src/main.ts +8 -5
  115. package/dist/templates/examples/ui-showcase/src/story.test.ts +3 -3
  116. package/dist/templates/examples/ui-showcase/src/ui/init.ts +4 -1
  117. package/dist/templates/examples/ui-showcase/src/ui/subscriptions.ts +10 -0
  118. package/dist/templates/examples/ui-showcase/src/ui/update.ts +119 -91
  119. package/dist/templates/examples/ui-showcase/src/ui/view/toast.ts +20 -3
  120. package/dist/templates/examples/view-transitions/package.json +2 -2
  121. package/dist/templates/examples/view-transitions/src/main.ts +3 -3
  122. package/dist/templates/examples/weather/package.json +2 -2
  123. package/dist/templates/examples/weather/src/main.ts +5 -5
  124. package/dist/templates/examples/web-components/package.json +2 -2
  125. package/dist/templates/examples/web-components/src/main.ts +4 -4
  126. package/dist/templates/examples/websocket-chat/package.json +2 -2
  127. package/dist/templates/examples/websocket-chat/src/main.ts +8 -8
  128. package/dist/templates/examples/websocket-chat/src/scene.test.ts +18 -6
  129. package/dist/templates/examples/websocket-chat/src/story.test.ts +15 -9
  130. package/dist/templates/release.json +13 -13
  131. package/dist/templates/rendering/ssg/src/main.ts +3 -3
  132. package/dist/templates/rendering/ssr/scripts/serve.ts +2 -2
  133. package/dist/templates/rendering/ssr/src/main.ts +3 -3
  134. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  import { Array, Number, Option, pipe } from 'effect'
2
2
  import { Update } from 'foldkit'
3
- import { evo } from 'foldkit/struct'
3
+ import { modifyFields } from 'foldkit/struct'
4
4
 
5
5
  import {
6
6
  Animation,
@@ -66,7 +66,7 @@ const reorderColumns = (
66
66
  : column.cards
67
67
 
68
68
  if (column.id !== toContainerId) {
69
- return evo(column, { cards: () => withRemoved })
69
+ return modifyFields(column, { cards: () => withRemoved })
70
70
  }
71
71
 
72
72
  const inserted = [
@@ -75,7 +75,7 @@ const reorderColumns = (
75
75
  ...Array.drop(withRemoved, toIndex),
76
76
  ]
77
77
 
78
- return evo(column, { cards: () => inserted })
78
+ return modifyFields(column, { cards: () => inserted })
79
79
  }),
80
80
  })
81
81
  }
@@ -127,7 +127,7 @@ const foldMobileMenuDialog = Update.foldChild({
127
127
  update: Dialog.update,
128
128
  read: (model: UiModel) => Option.some(model.mobileMenuDialog),
129
129
  write: (model, nextMobileMenuDialog) =>
130
- evo(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
130
+ modifyFields(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
131
131
  toParentMessage: message => UiMessage.GotMobileMenuDialogMessage({ message }),
132
132
  foldOutMessage: foldDialogOutMessage,
133
133
  })
@@ -136,7 +136,7 @@ const foldMobileMenuDialogOpen = Update.foldChildStep({
136
136
  update: Dialog.open,
137
137
  read: (model: UiModel) => Option.some(model.mobileMenuDialog),
138
138
  write: (model, nextMobileMenuDialog) =>
139
- evo(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
139
+ modifyFields(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
140
140
  toParentMessage: message => UiMessage.GotMobileMenuDialogMessage({ message }),
141
141
  foldOutMessage: foldDialogOutMessage,
142
142
  })
@@ -145,7 +145,7 @@ const foldMobileMenuDialogClose = Update.foldChildStep({
145
145
  update: Dialog.close,
146
146
  read: (model: UiModel) => Option.some(model.mobileMenuDialog),
147
147
  write: (model, nextMobileMenuDialog) =>
148
- evo(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
148
+ modifyFields(model, { mobileMenuDialog: () => nextMobileMenuDialog }),
149
149
  toParentMessage: message => UiMessage.GotMobileMenuDialogMessage({ message }),
150
150
  foldOutMessage: foldDialogOutMessage,
151
151
  })
@@ -157,7 +157,7 @@ const foldComboboxDemoOutMessage = Combobox.OutMessage.match<
157
157
  Selected:
158
158
  ({ value }) =>
159
159
  model => ({
160
- model: evo(model, {
160
+ model: modifyFields(model, {
161
161
  maybeComboboxDemoSelectedCity: () => Option.some(value),
162
162
  }),
163
163
  }),
@@ -168,7 +168,7 @@ const foldComboboxDemo = Update.foldChild({
168
168
  update: CityCombobox.update,
169
169
  read: (model: UiModel) => Option.some(model.comboboxDemo),
170
170
  write: (model, nextComboboxDemo) =>
171
- evo(model, { comboboxDemo: () => nextComboboxDemo }),
171
+ modifyFields(model, { comboboxDemo: () => nextComboboxDemo }),
172
172
  toParentMessage: message => UiMessage.GotComboboxDemoMessage({ message }),
173
173
  foldOutMessage: foldComboboxDemoOutMessage,
174
174
  })
@@ -180,7 +180,7 @@ const foldComboboxNullableDemoOutMessage = Combobox.OutMessage.match<
180
180
  Selected:
181
181
  ({ value }) =>
182
182
  model => ({
183
- model: evo(model, {
183
+ model: modifyFields(model, {
184
184
  maybeComboboxNullableDemoSelectedCity:
185
185
  maybeComboboxNullableDemoSelectedCity =>
186
186
  Option.contains(maybeComboboxNullableDemoSelectedCity, value)
@@ -189,7 +189,7 @@ const foldComboboxNullableDemoOutMessage = Combobox.OutMessage.match<
189
189
  }),
190
190
  }),
191
191
  ClearedSelection: () => model => ({
192
- model: evo(model, {
192
+ model: modifyFields(model, {
193
193
  maybeComboboxNullableDemoSelectedCity: () => Option.none(),
194
194
  }),
195
195
  }),
@@ -199,7 +199,9 @@ const foldComboboxNullableDemo = Update.foldChild({
199
199
  update: CityCombobox.update,
200
200
  read: (model: UiModel) => Option.some(model.comboboxNullableDemo),
201
201
  write: (model, nextComboboxNullableDemo) =>
202
- evo(model, { comboboxNullableDemo: () => nextComboboxNullableDemo }),
202
+ modifyFields(model, {
203
+ comboboxNullableDemo: () => nextComboboxNullableDemo,
204
+ }),
203
205
  toParentMessage: message =>
204
206
  UiMessage.GotComboboxNullableDemoMessage({ message }),
205
207
  foldOutMessage: foldComboboxNullableDemoOutMessage,
@@ -212,7 +214,7 @@ const foldComboboxMultiDemoOutMessage = Combobox.OutMessage.match<
212
214
  Selected:
213
215
  ({ value }) =>
214
216
  model => ({
215
- model: evo(model, {
217
+ model: modifyFields(model, {
216
218
  comboboxMultiDemoSelectedCities: comboboxMultiDemoSelectedCities =>
217
219
  Array.contains(comboboxMultiDemoSelectedCities, value)
218
220
  ? Array.filter(
@@ -229,7 +231,7 @@ const foldComboboxMultiDemo = Update.foldChild({
229
231
  update: CityMultiCombobox.update,
230
232
  read: (model: UiModel) => Option.some(model.comboboxMultiDemo),
231
233
  write: (model, nextComboboxMultiDemo) =>
232
- evo(model, { comboboxMultiDemo: () => nextComboboxMultiDemo }),
234
+ modifyFields(model, { comboboxMultiDemo: () => nextComboboxMultiDemo }),
233
235
  toParentMessage: message =>
234
236
  UiMessage.GotComboboxMultiDemoMessage({ message }),
235
237
  foldOutMessage: foldComboboxMultiDemoOutMessage,
@@ -242,7 +244,7 @@ const foldComboboxPlacementLockDemoOutMessage = Combobox.OutMessage.match<
242
244
  Selected:
243
245
  ({ value }) =>
244
246
  model => ({
245
- model: evo(model, {
247
+ model: modifyFields(model, {
246
248
  maybeComboboxPlacementLockDemoSelectedCity: () => Option.some(value),
247
249
  }),
248
250
  }),
@@ -253,7 +255,7 @@ const foldComboboxPlacementLockDemo = Update.foldChild({
253
255
  update: CityCombobox.update,
254
256
  read: (model: UiModel) => Option.some(model.comboboxPlacementLockDemo),
255
257
  write: (model, nextComboboxPlacementLockDemo) =>
256
- evo(model, {
258
+ modifyFields(model, {
257
259
  comboboxPlacementLockDemo: () => nextComboboxPlacementLockDemo,
258
260
  }),
259
261
  toParentMessage: message =>
@@ -268,7 +270,7 @@ const foldComboboxSelectOnFocusDemoOutMessage = Combobox.OutMessage.match<
268
270
  Selected:
269
271
  ({ value }) =>
270
272
  model => ({
271
- model: evo(model, {
273
+ model: modifyFields(model, {
272
274
  maybeComboboxSelectOnFocusDemoSelectedCity: () => Option.some(value),
273
275
  }),
274
276
  }),
@@ -279,7 +281,7 @@ const foldComboboxSelectOnFocusDemo = Update.foldChild({
279
281
  update: CityCombobox.update,
280
282
  read: (model: UiModel) => Option.some(model.comboboxSelectOnFocusDemo),
281
283
  write: (model, nextComboboxSelectOnFocusDemo) =>
282
- evo(model, {
284
+ modifyFields(model, {
283
285
  comboboxSelectOnFocusDemo: () => nextComboboxSelectOnFocusDemo,
284
286
  }),
285
287
  toParentMessage: message =>
@@ -291,7 +293,7 @@ const foldDialogDemo = Update.foldChild({
291
293
  update: Dialog.update,
292
294
  read: (model: UiModel) => Option.some(model.dialogDemo),
293
295
  write: (model, nextDialogDemo) =>
294
- evo(model, { dialogDemo: () => nextDialogDemo }),
296
+ modifyFields(model, { dialogDemo: () => nextDialogDemo }),
295
297
  toParentMessage: message => UiMessage.GotDialogDemoMessage({ message }),
296
298
  foldOutMessage: foldDialogOutMessage,
297
299
  })
@@ -300,7 +302,7 @@ const foldDialogDemoOpen = Update.foldChildStep({
300
302
  update: Dialog.open,
301
303
  read: (model: UiModel) => Option.some(model.dialogDemo),
302
304
  write: (model, nextDialogDemo) =>
303
- evo(model, { dialogDemo: () => nextDialogDemo }),
305
+ modifyFields(model, { dialogDemo: () => nextDialogDemo }),
304
306
  toParentMessage: message => UiMessage.GotDialogDemoMessage({ message }),
305
307
  foldOutMessage: foldDialogOutMessage,
306
308
  })
@@ -309,7 +311,7 @@ const foldDialogAnimatedDemo = Update.foldChild({
309
311
  update: Dialog.update,
310
312
  read: (model: UiModel) => Option.some(model.dialogAnimatedDemo),
311
313
  write: (model, nextDialogAnimatedDemo) =>
312
- evo(model, { dialogAnimatedDemo: () => nextDialogAnimatedDemo }),
314
+ modifyFields(model, { dialogAnimatedDemo: () => nextDialogAnimatedDemo }),
313
315
  toParentMessage: message =>
314
316
  UiMessage.GotDialogAnimatedDemoMessage({ message }),
315
317
  foldOutMessage: foldDialogOutMessage,
@@ -319,7 +321,7 @@ const foldDialogAnimatedDemoOpen = Update.foldChildStep({
319
321
  update: Dialog.open,
320
322
  read: (model: UiModel) => Option.some(model.dialogAnimatedDemo),
321
323
  write: (model, nextDialogAnimatedDemo) =>
322
- evo(model, { dialogAnimatedDemo: () => nextDialogAnimatedDemo }),
324
+ modifyFields(model, { dialogAnimatedDemo: () => nextDialogAnimatedDemo }),
323
325
  toParentMessage: message =>
324
326
  UiMessage.GotDialogAnimatedDemoMessage({ message }),
325
327
  foldOutMessage: foldDialogOutMessage,
@@ -329,7 +331,7 @@ const foldOverlayDialogDemo = Update.foldChild({
329
331
  update: Dialog.update,
330
332
  read: (model: UiModel) => Option.some(model.overlayDialogDemo),
331
333
  write: (model, nextOverlayDialogDemo) =>
332
- evo(model, { overlayDialogDemo: () => nextOverlayDialogDemo }),
334
+ modifyFields(model, { overlayDialogDemo: () => nextOverlayDialogDemo }),
333
335
  toParentMessage: message =>
334
336
  UiMessage.GotOverlayDialogDemoMessage({ message }),
335
337
  foldOutMessage: foldDialogOutMessage,
@@ -339,7 +341,7 @@ const foldOverlayDialogDemoOpen = Update.foldChildStep({
339
341
  update: Dialog.open,
340
342
  read: (model: UiModel) => Option.some(model.overlayDialogDemo),
341
343
  write: (model, nextOverlayDialogDemo) =>
342
- evo(model, { overlayDialogDemo: () => nextOverlayDialogDemo }),
344
+ modifyFields(model, { overlayDialogDemo: () => nextOverlayDialogDemo }),
343
345
  toParentMessage: message =>
344
346
  UiMessage.GotOverlayDialogDemoMessage({ message }),
345
347
  foldOutMessage: foldDialogOutMessage,
@@ -352,7 +354,7 @@ const foldOverlayComboboxDemoOutMessage = Combobox.OutMessage.match<
352
354
  Selected:
353
355
  ({ value }) =>
354
356
  model => ({
355
- model: evo(model, {
357
+ model: modifyFields(model, {
356
358
  maybeOverlayComboboxDemoSelectedCity: () => Option.some(value),
357
359
  }),
358
360
  }),
@@ -363,7 +365,7 @@ const foldOverlayComboboxDemo = Update.foldChild({
363
365
  update: CityCombobox.update,
364
366
  read: (model: UiModel) => Option.some(model.overlayComboboxDemo),
365
367
  write: (model, nextOverlayComboboxDemo) =>
366
- evo(model, { overlayComboboxDemo: () => nextOverlayComboboxDemo }),
368
+ modifyFields(model, { overlayComboboxDemo: () => nextOverlayComboboxDemo }),
367
369
  toParentMessage: message =>
368
370
  UiMessage.GotOverlayComboboxDemoMessage({ message }),
369
371
  foldOutMessage: foldOverlayComboboxDemoOutMessage,
@@ -373,7 +375,9 @@ const foldNestedDialogParentDemo = Update.foldChild({
373
375
  update: Dialog.update,
374
376
  read: (model: UiModel) => Option.some(model.nestedDialogParentDemo),
375
377
  write: (model, nextNestedDialogParentDemo) =>
376
- evo(model, { nestedDialogParentDemo: () => nextNestedDialogParentDemo }),
378
+ modifyFields(model, {
379
+ nestedDialogParentDemo: () => nextNestedDialogParentDemo,
380
+ }),
377
381
  toParentMessage: message =>
378
382
  UiMessage.GotNestedDialogParentDemoMessage({ message }),
379
383
  foldOutMessage: foldDialogOutMessage,
@@ -383,7 +387,9 @@ const foldNestedDialogParentDemoOpen = Update.foldChildStep({
383
387
  update: Dialog.open,
384
388
  read: (model: UiModel) => Option.some(model.nestedDialogParentDemo),
385
389
  write: (model, nextNestedDialogParentDemo) =>
386
- evo(model, { nestedDialogParentDemo: () => nextNestedDialogParentDemo }),
390
+ modifyFields(model, {
391
+ nestedDialogParentDemo: () => nextNestedDialogParentDemo,
392
+ }),
387
393
  toParentMessage: message =>
388
394
  UiMessage.GotNestedDialogParentDemoMessage({ message }),
389
395
  foldOutMessage: foldDialogOutMessage,
@@ -393,7 +399,9 @@ const foldNestedDialogChildDemo = Update.foldChild({
393
399
  update: Dialog.update,
394
400
  read: (model: UiModel) => Option.some(model.nestedDialogChildDemo),
395
401
  write: (model, nextNestedDialogChildDemo) =>
396
- evo(model, { nestedDialogChildDemo: () => nextNestedDialogChildDemo }),
402
+ modifyFields(model, {
403
+ nestedDialogChildDemo: () => nextNestedDialogChildDemo,
404
+ }),
397
405
  toParentMessage: message =>
398
406
  UiMessage.GotNestedDialogChildDemoMessage({ message }),
399
407
  foldOutMessage: foldDialogOutMessage,
@@ -403,7 +411,9 @@ const foldNestedDialogChildDemoOpen = Update.foldChildStep({
403
411
  update: Dialog.open,
404
412
  read: (model: UiModel) => Option.some(model.nestedDialogChildDemo),
405
413
  write: (model, nextNestedDialogChildDemo) =>
406
- evo(model, { nestedDialogChildDemo: () => nextNestedDialogChildDemo }),
414
+ modifyFields(model, {
415
+ nestedDialogChildDemo: () => nextNestedDialogChildDemo,
416
+ }),
407
417
  toParentMessage: message =>
408
418
  UiMessage.GotNestedDialogChildDemoMessage({ message }),
409
419
  foldOutMessage: foldDialogOutMessage,
@@ -415,7 +425,7 @@ const foldCalendarBasicDemoOutMessage = Calendar.OutMessage.match<
415
425
  SelectedDate:
416
426
  ({ date }) =>
417
427
  model => ({
418
- model: evo(model, {
428
+ model: modifyFields(model, {
419
429
  maybeCalendarBasicDemoSelectedDate: () => Option.some(date),
420
430
  }),
421
431
  }),
@@ -426,7 +436,7 @@ const foldCalendarBasicDemo = Update.foldChild({
426
436
  update: Calendar.update,
427
437
  read: (model: UiModel) => Option.some(model.calendarBasicDemo),
428
438
  write: (model, nextCalendarBasicDemo) =>
429
- evo(model, { calendarBasicDemo: () => nextCalendarBasicDemo }),
439
+ modifyFields(model, { calendarBasicDemo: () => nextCalendarBasicDemo }),
430
440
  toParentMessage: message =>
431
441
  UiMessage.GotCalendarBasicDemoMessage({ message }),
432
442
  foldOutMessage: foldCalendarBasicDemoOutMessage,
@@ -438,12 +448,12 @@ const foldDatePickerBasicDemoOutMessage = DatePicker.OutMessage.match<
438
448
  SelectedDate:
439
449
  ({ date }) =>
440
450
  model => ({
441
- model: evo(model, {
451
+ model: modifyFields(model, {
442
452
  maybeDatePickerBasicDemoSelectedDate: () => Option.some(date),
443
453
  }),
444
454
  }),
445
455
  ClearedDate: () => model => ({
446
- model: evo(model, {
456
+ model: modifyFields(model, {
447
457
  maybeDatePickerBasicDemoSelectedDate: () => Option.none(),
448
458
  }),
449
459
  }),
@@ -454,7 +464,7 @@ const foldDatePickerBasicDemo = Update.foldChild({
454
464
  update: DatePicker.update,
455
465
  read: (model: UiModel) => Option.some(model.datePickerBasicDemo),
456
466
  write: (model, nextDatePickerBasicDemo) =>
457
- evo(model, { datePickerBasicDemo: () => nextDatePickerBasicDemo }),
467
+ modifyFields(model, { datePickerBasicDemo: () => nextDatePickerBasicDemo }),
458
468
  toParentMessage: message =>
459
469
  UiMessage.GotDatePickerBasicDemoMessage({ message }),
460
470
  foldOutMessage: foldDatePickerBasicDemoOutMessage,
@@ -466,7 +476,7 @@ const foldDragAndDropDemoOutMessage = DragAndDrop.OutMessage.match<
466
476
  Reordered:
467
477
  ({ itemId, fromContainerId, toContainerId, toIndex }) =>
468
478
  model => ({
469
- model: evo(model, {
479
+ model: modifyFields(model, {
470
480
  dragAndDropDemoColumns: dragAndDropDemoColumns =>
471
481
  reorderColumns(
472
482
  dragAndDropDemoColumns,
@@ -484,7 +494,7 @@ const foldDragAndDropDemo = Update.foldChild({
484
494
  update: DragAndDrop.update,
485
495
  read: (model: UiModel) => Option.some(model.dragAndDropDemo),
486
496
  write: (model, nextDragAndDropDemo) =>
487
- evo(model, { dragAndDropDemo: () => nextDragAndDropDemo }),
497
+ modifyFields(model, { dragAndDropDemo: () => nextDragAndDropDemo }),
488
498
  toParentMessage: message => UiMessage.GotDragAndDropDemoMessage({ message }),
489
499
  foldOutMessage: foldDragAndDropDemoOutMessage,
490
500
  })
@@ -495,7 +505,7 @@ const foldFileDropBasicDemoOutMessage = FileDrop.OutMessage.match<
495
505
  ReceivedFiles:
496
506
  ({ files }) =>
497
507
  model => ({
498
- model: evo(model, {
508
+ model: modifyFields(model, {
499
509
  fileDropBasicDemoFiles: Array.appendAll(files),
500
510
  }),
501
511
  }),
@@ -506,7 +516,7 @@ const foldFileDropBasicDemo = Update.foldChild({
506
516
  update: FileDrop.update,
507
517
  read: (model: UiModel) => Option.some(model.fileDropBasicDemo),
508
518
  write: (model, nextFileDropBasicDemo) =>
509
- evo(model, { fileDropBasicDemo: () => nextFileDropBasicDemo }),
519
+ modifyFields(model, { fileDropBasicDemo: () => nextFileDropBasicDemo }),
510
520
  toParentMessage: message =>
511
521
  UiMessage.GotFileDropBasicDemoMessage({ message }),
512
522
  foldOutMessage: foldFileDropBasicDemoOutMessage,
@@ -519,7 +529,7 @@ const foldListboxDemoOutMessage = Listbox.OutMessage.match<
519
529
  Selected:
520
530
  ({ value }) =>
521
531
  model => ({
522
- model: evo(model, {
532
+ model: modifyFields(model, {
523
533
  maybeListboxDemoSelectedItem: () => Option.some(value),
524
534
  }),
525
535
  }),
@@ -529,7 +539,7 @@ const foldListboxDemo = Update.foldChild({
529
539
  update: ItemListbox.update,
530
540
  read: (model: UiModel) => Option.some(model.listboxDemo),
531
541
  write: (model, nextListboxDemo) =>
532
- evo(model, { listboxDemo: () => nextListboxDemo }),
542
+ modifyFields(model, { listboxDemo: () => nextListboxDemo }),
533
543
  toParentMessage: message => UiMessage.GotListboxDemoMessage({ message }),
534
544
  foldOutMessage: foldListboxDemoOutMessage,
535
545
  })
@@ -541,7 +551,7 @@ const foldListboxMultiDemoOutMessage = Listbox.OutMessage.match<
541
551
  Selected:
542
552
  ({ value }) =>
543
553
  model => ({
544
- model: evo(model, {
554
+ model: modifyFields(model, {
545
555
  listboxMultiDemoSelectedItems: listboxMultiDemoSelectedItems =>
546
556
  Array.contains(listboxMultiDemoSelectedItems, value)
547
557
  ? Array.filter(
@@ -557,7 +567,7 @@ const foldListboxMultiDemo = Update.foldChild({
557
567
  update: ItemMultiListbox.update,
558
568
  read: (model: UiModel) => Option.some(model.listboxMultiDemo),
559
569
  write: (model, nextListboxMultiDemo) =>
560
- evo(model, { listboxMultiDemo: () => nextListboxMultiDemo }),
570
+ modifyFields(model, { listboxMultiDemo: () => nextListboxMultiDemo }),
561
571
  toParentMessage: message => UiMessage.GotListboxMultiDemoMessage({ message }),
562
572
  foldOutMessage: foldListboxMultiDemoOutMessage,
563
573
  })
@@ -568,7 +578,7 @@ const foldListboxGroupedDemoOutMessage = Listbox.OutMessage.match<
568
578
  Selected:
569
579
  ({ value }) =>
570
580
  model => ({
571
- model: evo(model, {
581
+ model: modifyFields(model, {
572
582
  maybeListboxGroupedDemoSelectedItem: () => Option.some(value),
573
583
  }),
574
584
  }),
@@ -578,7 +588,7 @@ const foldListboxGroupedDemo = Update.foldChild({
578
588
  update: CharacterListbox.update,
579
589
  read: (model: UiModel) => Option.some(model.listboxGroupedDemo),
580
590
  write: (model, nextListboxGroupedDemo) =>
581
- evo(model, { listboxGroupedDemo: () => nextListboxGroupedDemo }),
591
+ modifyFields(model, { listboxGroupedDemo: () => nextListboxGroupedDemo }),
582
592
  toParentMessage: message =>
583
593
  UiMessage.GotListboxGroupedDemoMessage({ message }),
584
594
  foldOutMessage: foldListboxGroupedDemoOutMessage,
@@ -588,7 +598,7 @@ const foldMenuBasicDemo = Update.foldChild({
588
598
  update: DemoMenu.update,
589
599
  read: (model: UiModel) => Option.some(model.menuBasicDemo),
590
600
  write: (model, nextMenuBasicDemo) =>
591
- evo(model, { menuBasicDemo: () => nextMenuBasicDemo }),
601
+ modifyFields(model, { menuBasicDemo: () => nextMenuBasicDemo }),
592
602
  toParentMessage: message => UiMessage.GotMenuBasicDemoMessage({ message }),
593
603
  foldOutMessage: foldMenuOutMessage,
594
604
  })
@@ -597,7 +607,7 @@ const foldMenuAnimatedDemo = Update.foldChild({
597
607
  update: DemoMenu.update,
598
608
  read: (model: UiModel) => Option.some(model.menuAnimatedDemo),
599
609
  write: (model, nextMenuAnimatedDemo) =>
600
- evo(model, { menuAnimatedDemo: () => nextMenuAnimatedDemo }),
610
+ modifyFields(model, { menuAnimatedDemo: () => nextMenuAnimatedDemo }),
601
611
  toParentMessage: message => UiMessage.GotMenuAnimatedDemoMessage({ message }),
602
612
  foldOutMessage: foldMenuOutMessage,
603
613
  })
@@ -606,7 +616,7 @@ const foldPopoverBasicDemo = Update.foldChild({
606
616
  update: Popover.update,
607
617
  read: (model: UiModel) => Option.some(model.popoverBasicDemo),
608
618
  write: (model, nextPopoverBasicDemo) =>
609
- evo(model, { popoverBasicDemo: () => nextPopoverBasicDemo }),
619
+ modifyFields(model, { popoverBasicDemo: () => nextPopoverBasicDemo }),
610
620
  toParentMessage: message => UiMessage.GotPopoverBasicDemoMessage({ message }),
611
621
  foldOutMessage: foldPopoverOutMessage,
612
622
  })
@@ -615,7 +625,7 @@ const foldPopoverAnimatedDemo = Update.foldChild({
615
625
  update: Popover.update,
616
626
  read: (model: UiModel) => Option.some(model.popoverAnimatedDemo),
617
627
  write: (model, nextPopoverAnimatedDemo) =>
618
- evo(model, { popoverAnimatedDemo: () => nextPopoverAnimatedDemo }),
628
+ modifyFields(model, { popoverAnimatedDemo: () => nextPopoverAnimatedDemo }),
619
629
  toParentMessage: message =>
620
630
  UiMessage.GotPopoverAnimatedDemoMessage({ message }),
621
631
  foldOutMessage: foldPopoverOutMessage,
@@ -625,7 +635,9 @@ const foldPopoverNestedParentDemo = Update.foldChild({
625
635
  update: Popover.update,
626
636
  read: (model: UiModel) => Option.some(model.popoverNestedParentDemo),
627
637
  write: (model, nextPopoverNestedParentDemo) =>
628
- evo(model, { popoverNestedParentDemo: () => nextPopoverNestedParentDemo }),
638
+ modifyFields(model, {
639
+ popoverNestedParentDemo: () => nextPopoverNestedParentDemo,
640
+ }),
629
641
  toParentMessage: message =>
630
642
  UiMessage.GotPopoverNestedParentDemoMessage({ message }),
631
643
  foldOutMessage: foldPopoverOutMessage,
@@ -635,7 +647,9 @@ const foldPopoverNestedChildDemo = Update.foldChild({
635
647
  update: Popover.update,
636
648
  read: (model: UiModel) => Option.some(model.popoverNestedChildDemo),
637
649
  write: (model, nextPopoverNestedChildDemo) =>
638
- evo(model, { popoverNestedChildDemo: () => nextPopoverNestedChildDemo }),
650
+ modifyFields(model, {
651
+ popoverNestedChildDemo: () => nextPopoverNestedChildDemo,
652
+ }),
639
653
  toParentMessage: message =>
640
654
  UiMessage.GotPopoverNestedChildDemoMessage({ message }),
641
655
  foldOutMessage: foldPopoverOutMessage,
@@ -648,7 +662,7 @@ const foldVerticalRadioGroupDemoOutMessage = RadioGroup.OutMessage.match<
648
662
  Selected:
649
663
  ({ value }) =>
650
664
  model => ({
651
- model: evo(model, {
665
+ model: modifyFields(model, {
652
666
  verticalRadioGroupDemoValue: () => Option.some(value),
653
667
  }),
654
668
  }),
@@ -658,7 +672,9 @@ const foldVerticalRadioGroupDemo = Update.foldChild({
658
672
  update: PlanRadioGroup.update,
659
673
  read: (model: UiModel) => Option.some(model.verticalRadioGroupDemo),
660
674
  write: (model, nextVerticalRadioGroupDemo) =>
661
- evo(model, { verticalRadioGroupDemo: () => nextVerticalRadioGroupDemo }),
675
+ modifyFields(model, {
676
+ verticalRadioGroupDemo: () => nextVerticalRadioGroupDemo,
677
+ }),
662
678
  toParentMessage: message =>
663
679
  UiMessage.GotVerticalRadioGroupDemoMessage({ message }),
664
680
  foldOutMessage: foldVerticalRadioGroupDemoOutMessage,
@@ -671,7 +687,7 @@ const foldHorizontalRadioGroupDemoOutMessage = RadioGroup.OutMessage.match<
671
687
  Selected:
672
688
  ({ value }) =>
673
689
  model => ({
674
- model: evo(model, {
690
+ model: modifyFields(model, {
675
691
  horizontalRadioGroupDemoValue: () => Option.some(value),
676
692
  }),
677
693
  }),
@@ -681,7 +697,7 @@ const foldHorizontalRadioGroupDemo = Update.foldChild({
681
697
  update: PlanRadioGroup.update,
682
698
  read: (model: UiModel) => Option.some(model.horizontalRadioGroupDemo),
683
699
  write: (model, nextHorizontalRadioGroupDemo) =>
684
- evo(model, {
700
+ modifyFields(model, {
685
701
  horizontalRadioGroupDemo: () => nextHorizontalRadioGroupDemo,
686
702
  }),
687
703
  toParentMessage: message =>
@@ -694,14 +710,16 @@ const foldSliderRatingDemoOutMessage = Slider.OutMessage.match<
694
710
  >({
695
711
  ChangedValue:
696
712
  ({ value }) =>
697
- model => ({ model: evo(model, { sliderRatingValue: () => value }) }),
713
+ model => ({
714
+ model: modifyFields(model, { sliderRatingValue: () => value }),
715
+ }),
698
716
  })
699
717
 
700
718
  const foldSliderRatingDemo = Update.foldChild({
701
719
  update: Slider.update,
702
720
  read: (model: UiModel) => Option.some(model.sliderRatingDemo),
703
721
  write: (model, nextSliderRatingDemo) =>
704
- evo(model, { sliderRatingDemo: () => nextSliderRatingDemo }),
722
+ modifyFields(model, { sliderRatingDemo: () => nextSliderRatingDemo }),
705
723
  toParentMessage: message => UiMessage.GotSliderRatingDemoMessage({ message }),
706
724
  foldOutMessage: foldSliderRatingDemoOutMessage,
707
725
  })
@@ -711,14 +729,16 @@ const foldSliderVolumeDemoOutMessage = Slider.OutMessage.match<
711
729
  >({
712
730
  ChangedValue:
713
731
  ({ value }) =>
714
- model => ({ model: evo(model, { sliderVolumeValue: () => value }) }),
732
+ model => ({
733
+ model: modifyFields(model, { sliderVolumeValue: () => value }),
734
+ }),
715
735
  })
716
736
 
717
737
  const foldSliderVolumeDemo = Update.foldChild({
718
738
  update: Slider.update,
719
739
  read: (model: UiModel) => Option.some(model.sliderVolumeDemo),
720
740
  write: (model, nextSliderVolumeDemo) =>
721
- evo(model, { sliderVolumeDemo: () => nextSliderVolumeDemo }),
741
+ modifyFields(model, { sliderVolumeDemo: () => nextSliderVolumeDemo }),
722
742
  toParentMessage: message => UiMessage.GotSliderVolumeDemoMessage({ message }),
723
743
  foldOutMessage: foldSliderVolumeDemoOutMessage,
724
744
  })
@@ -729,14 +749,16 @@ const foldHorizontalTabsDemoOutMessage = Tabs.OutMessage.match<
729
749
  >({
730
750
  Selected:
731
751
  ({ value }) =>
732
- model => ({ model: evo(model, { horizontalTabsDemoTab: () => value }) }),
752
+ model => ({
753
+ model: modifyFields(model, { horizontalTabsDemoTab: () => value }),
754
+ }),
733
755
  })
734
756
 
735
757
  const foldHorizontalTabsDemo = Update.foldChild({
736
758
  update: DemoTabs.update,
737
759
  read: (model: UiModel) => Option.some(model.horizontalTabsDemo),
738
760
  write: (model, nextHorizontalTabsDemo) =>
739
- evo(model, { horizontalTabsDemo: () => nextHorizontalTabsDemo }),
761
+ modifyFields(model, { horizontalTabsDemo: () => nextHorizontalTabsDemo }),
740
762
  toParentMessage: message =>
741
763
  UiMessage.GotHorizontalTabsDemoMessage({ message }),
742
764
  foldOutMessage: foldHorizontalTabsDemoOutMessage,
@@ -748,14 +770,16 @@ const foldVerticalTabsDemoOutMessage = Tabs.OutMessage.match<
748
770
  >({
749
771
  Selected:
750
772
  ({ value }) =>
751
- model => ({ model: evo(model, { verticalTabsDemoTab: () => value }) }),
773
+ model => ({
774
+ model: modifyFields(model, { verticalTabsDemoTab: () => value }),
775
+ }),
752
776
  })
753
777
 
754
778
  const foldVerticalTabsDemo = Update.foldChild({
755
779
  update: DemoTabs.update,
756
780
  read: (model: UiModel) => Option.some(model.verticalTabsDemo),
757
781
  write: (model, nextVerticalTabsDemo) =>
758
- evo(model, { verticalTabsDemo: () => nextVerticalTabsDemo }),
782
+ modifyFields(model, { verticalTabsDemo: () => nextVerticalTabsDemo }),
759
783
  toParentMessage: message => UiMessage.GotVerticalTabsDemoMessage({ message }),
760
784
  foldOutMessage: foldVerticalTabsDemoOutMessage,
761
785
  })
@@ -764,7 +788,7 @@ const foldToastDemo = Update.foldChild({
764
788
  update: Toast.update,
765
789
  read: (model: UiModel) => Option.some(model.toastDemo),
766
790
  write: (model, nextToastDemo) =>
767
- evo(model, { toastDemo: () => nextToastDemo }),
791
+ modifyFields(model, { toastDemo: () => nextToastDemo }),
768
792
  toParentMessage: message => UiMessage.GotToastDemoMessage({ message }),
769
793
  foldOutMessage: foldToastOutMessage,
770
794
  })
@@ -773,7 +797,7 @@ const foldToastDemoShow = Update.foldChild({
773
797
  update: Toast.show,
774
798
  read: (model: UiModel) => Option.some(model.toastDemo),
775
799
  write: (model, nextToastDemo) =>
776
- evo(model, { toastDemo: () => nextToastDemo }),
800
+ modifyFields(model, { toastDemo: () => nextToastDemo }),
777
801
  toParentMessage: message => UiMessage.GotToastDemoMessage({ message }),
778
802
  foldOutMessage: foldToastOutMessage,
779
803
  })
@@ -782,7 +806,7 @@ const foldToastDemoDismissAll = Update.foldChildStep({
782
806
  update: Toast.dismissAll,
783
807
  read: (model: UiModel) => Option.some(model.toastDemo),
784
808
  write: (model, nextToastDemo) =>
785
- evo(model, { toastDemo: () => nextToastDemo }),
809
+ modifyFields(model, { toastDemo: () => nextToastDemo }),
786
810
  toParentMessage: message => UiMessage.GotToastDemoMessage({ message }),
787
811
  foldOutMessage: foldToastOutMessage,
788
812
  })
@@ -791,7 +815,7 @@ const foldTooltipBasicDemo = Update.foldChild({
791
815
  update: Tooltip.update,
792
816
  read: (model: UiModel) => Option.some(model.tooltipBasicDemo),
793
817
  write: (model, nextTooltipBasicDemo) =>
794
- evo(model, { tooltipBasicDemo: () => nextTooltipBasicDemo }),
818
+ modifyFields(model, { tooltipBasicDemo: () => nextTooltipBasicDemo }),
795
819
  toParentMessage: message => UiMessage.GotTooltipBasicDemoMessage({ message }),
796
820
  foldOutMessage: foldTooltipOutMessage,
797
821
  })
@@ -800,7 +824,7 @@ const foldTooltipNoDelayDemo = Update.foldChild({
800
824
  update: Tooltip.update,
801
825
  read: (model: UiModel) => Option.some(model.tooltipNoDelayDemo),
802
826
  write: (model, nextTooltipNoDelayDemo) =>
803
- evo(model, { tooltipNoDelayDemo: () => nextTooltipNoDelayDemo }),
827
+ modifyFields(model, { tooltipNoDelayDemo: () => nextTooltipNoDelayDemo }),
804
828
  toParentMessage: message =>
805
829
  UiMessage.GotTooltipNoDelayDemoMessage({ message }),
806
830
  foldOutMessage: foldTooltipOutMessage,
@@ -810,7 +834,7 @@ const foldHoverIntentDemo = Update.foldChild({
810
834
  update: HoverIntent.update,
811
835
  read: (model: UiModel) => Option.some(model.hoverIntentDemo),
812
836
  write: (model, nextHoverIntentDemo) =>
813
- evo(model, { hoverIntentDemo: () => nextHoverIntentDemo }),
837
+ modifyFields(model, { hoverIntentDemo: () => nextHoverIntentDemo }),
814
838
  toParentMessage: message => UiMessage.GotHoverIntentDemoMessage({ message }),
815
839
  foldOutMessage: foldHoverIntentOutMessage,
816
840
  })
@@ -833,7 +857,7 @@ const foldAnimationDemo = Update.foldChild({
833
857
  update: Animation.update,
834
858
  read: (model: UiModel) => Option.some(model.animationDemo),
835
859
  write: (model, nextAnimationDemo) =>
836
- evo(model, { animationDemo: () => nextAnimationDemo }),
860
+ modifyFields(model, { animationDemo: () => nextAnimationDemo }),
837
861
  toParentMessage: message => UiMessage.GotAnimationDemoMessage({ message }),
838
862
  foldOutMessage: foldAnimationDemoOutMessage,
839
863
  })
@@ -842,7 +866,7 @@ const foldAnimationDemoShow = Update.foldChildStep({
842
866
  update: Animation.show,
843
867
  read: (model: UiModel) => Option.some(model.animationDemo),
844
868
  write: (model, nextAnimationDemo) =>
845
- evo(model, { animationDemo: () => nextAnimationDemo }),
869
+ modifyFields(model, { animationDemo: () => nextAnimationDemo }),
846
870
  toParentMessage: message => UiMessage.GotAnimationDemoMessage({ message }),
847
871
  })
848
872
 
@@ -850,7 +874,7 @@ const foldAnimationDemoHide = Update.foldChildStep({
850
874
  update: Animation.hide,
851
875
  read: (model: UiModel) => Option.some(model.animationDemo),
852
876
  write: (model, nextAnimationDemo) =>
853
- evo(model, { animationDemo: () => nextAnimationDemo }),
877
+ modifyFields(model, { animationDemo: () => nextAnimationDemo }),
854
878
  toParentMessage: message => UiMessage.GotAnimationDemoMessage({ message }),
855
879
  })
856
880
 
@@ -858,7 +882,7 @@ const foldVirtualListDemo = Update.foldChild({
858
882
  update: VirtualList.update,
859
883
  read: (model: UiModel) => Option.some(model.virtualListDemo),
860
884
  write: (model, nextVirtualListDemo) =>
861
- evo(model, { virtualListDemo: () => nextVirtualListDemo }),
885
+ modifyFields(model, { virtualListDemo: () => nextVirtualListDemo }),
862
886
  toParentMessage: message => UiMessage.GotVirtualListDemoMessage({ message }),
863
887
  })
864
888
 
@@ -866,7 +890,7 @@ const foldVirtualListDemoScrollToIndex = Update.foldChild({
866
890
  update: VirtualList.scrollToIndex,
867
891
  read: (model: UiModel) => Option.some(model.virtualListDemo),
868
892
  write: (model, nextVirtualListDemo) =>
869
- evo(model, { virtualListDemo: () => nextVirtualListDemo }),
893
+ modifyFields(model, { virtualListDemo: () => nextVirtualListDemo }),
870
894
  toParentMessage: message => UiMessage.GotVirtualListDemoMessage({ message }),
871
895
  })
872
896
 
@@ -874,7 +898,9 @@ const foldVirtualListVariableDemo = Update.foldChild({
874
898
  update: VirtualList.update,
875
899
  read: (model: UiModel) => Option.some(model.virtualListVariableDemo),
876
900
  write: (model, nextVirtualListVariableDemo) =>
877
- evo(model, { virtualListVariableDemo: () => nextVirtualListVariableDemo }),
901
+ modifyFields(model, {
902
+ virtualListVariableDemo: () => nextVirtualListVariableDemo,
903
+ }),
878
904
  toParentMessage: message =>
879
905
  UiMessage.GotVirtualListVariableDemoMessage({ message }),
880
906
  })
@@ -889,7 +915,9 @@ const foldVirtualListVariableDemoScrollToIndex = Update.foldChild({
889
915
  ),
890
916
  read: (model: UiModel) => Option.some(model.virtualListVariableDemo),
891
917
  write: (model, nextVirtualListVariableDemo) =>
892
- evo(model, { virtualListVariableDemo: () => nextVirtualListVariableDemo }),
918
+ modifyFields(model, {
919
+ virtualListVariableDemo: () => nextVirtualListVariableDemo,
920
+ }),
893
921
  toParentMessage: message =>
894
922
  UiMessage.GotVirtualListVariableDemoMessage({ message }),
895
923
  })
@@ -900,58 +928,58 @@ export const uiUpdate = (model: UiModel, message: UiMessage) =>
900
928
  foldMobileMenuDialog(model, message),
901
929
 
902
930
  UpdatedInputDemoValue: ({ value }) => ({
903
- model: evo(model, { inputDemoValue: () => value }),
931
+ model: modifyFields(model, { inputDemoValue: () => value }),
904
932
  }),
905
933
 
906
934
  UpdatedTextareaDemoValue: ({ value }) => ({
907
- model: evo(model, { textareaDemoValue: () => value }),
935
+ model: modifyFields(model, { textareaDemoValue: () => value }),
908
936
  }),
909
937
 
910
938
  UpdatedFieldsetInputValue: ({ value }) => ({
911
- model: evo(model, { fieldsetInputValue: () => value }),
939
+ model: modifyFields(model, { fieldsetInputValue: () => value }),
912
940
  }),
913
941
 
914
942
  UpdatedFieldsetTextareaValue: ({ value }) => ({
915
- model: evo(model, { fieldsetTextareaValue: () => value }),
943
+ model: modifyFields(model, { fieldsetTextareaValue: () => value }),
916
944
  }),
917
945
 
918
946
  UpdatedSelectDemoValue: ({ value }) => ({
919
- model: evo(model, { selectDemoValue: () => value }),
947
+ model: modifyFields(model, { selectDemoValue: () => value }),
920
948
  }),
921
949
 
922
950
  ToggledFieldsetCheckboxDemo: ({ isChecked }) => ({
923
- model: evo(model, {
951
+ model: modifyFields(model, {
924
952
  isFieldsetCheckboxDemoChecked: () => isChecked,
925
953
  }),
926
954
  }),
927
955
 
928
956
  ClickedButtonDemo: () => ({
929
- model: evo(model, {
957
+ model: modifyFields(model, {
930
958
  buttonClickCount: Number.increment,
931
959
  }),
932
960
  }),
933
961
 
934
962
  ToggledCheckboxBasicDemo: ({ isChecked }) => ({
935
- model: evo(model, {
963
+ model: modifyFields(model, {
936
964
  isCheckboxBasicDemoChecked: () => isChecked,
937
965
  }),
938
966
  }),
939
967
 
940
968
  ToggledCheckboxAllDemo: ({ isChecked }) => ({
941
- model: evo(model, {
969
+ model: modifyFields(model, {
942
970
  isCheckboxOptionADemoChecked: () => isChecked,
943
971
  isCheckboxOptionBDemoChecked: () => isChecked,
944
972
  }),
945
973
  }),
946
974
 
947
975
  ToggledCheckboxOptionADemo: ({ isChecked }) => ({
948
- model: evo(model, {
976
+ model: modifyFields(model, {
949
977
  isCheckboxOptionADemoChecked: () => isChecked,
950
978
  }),
951
979
  }),
952
980
 
953
981
  ToggledCheckboxOptionBDemo: ({ isChecked }) => ({
954
- model: evo(model, {
982
+ model: modifyFields(model, {
955
983
  isCheckboxOptionBDemoChecked: () => isChecked,
956
984
  }),
957
985
  }),
@@ -998,19 +1026,19 @@ export const uiUpdate = (model: UiModel, message: UiMessage) =>
998
1026
  ClickedOpenProjectSettings: () => foldNestedDialogParentDemoOpen(model),
999
1027
 
1000
1028
  ToggledDisclosureBasicDemo: ({ isOpen }) => ({
1001
- model: evo(model, {
1029
+ model: modifyFields(model, {
1002
1030
  isDisclosureBasicDemoOpen: () => isOpen,
1003
1031
  }),
1004
1032
  }),
1005
1033
 
1006
1034
  ToggledDisclosureAnimatedDemo: ({ isOpen }) => ({
1007
- model: evo(model, {
1035
+ model: modifyFields(model, {
1008
1036
  isDisclosureAnimatedDemoOpen: () => isOpen,
1009
1037
  }),
1010
1038
  }),
1011
1039
 
1012
1040
  ToggledDisclosureCollapsedPreviewDemo: ({ isOpen }) => ({
1013
- model: evo(model, {
1041
+ model: modifyFields(model, {
1014
1042
  isDisclosureCollapsedPreviewDemoOpen: () => isOpen,
1015
1043
  }),
1016
1044
  }),
@@ -1028,7 +1056,7 @@ export const uiUpdate = (model: UiModel, message: UiMessage) =>
1028
1056
  foldFileDropBasicDemo(model, message),
1029
1057
 
1030
1058
  ClickedRemoveFileDropDemoFile: ({ fileIndex }) => ({
1031
- model: evo(model, {
1059
+ model: modifyFields(model, {
1032
1060
  fileDropBasicDemoFiles: () =>
1033
1061
  Array.remove(model.fileDropBasicDemoFiles, fileIndex),
1034
1062
  }),
@@ -1072,7 +1100,7 @@ export const uiUpdate = (model: UiModel, message: UiMessage) =>
1072
1100
  foldSliderVolumeDemo(model, message),
1073
1101
 
1074
1102
  ToggledSwitchDemo: ({ isChecked }) => ({
1075
- model: evo(model, {
1103
+ model: modifyFields(model, {
1076
1104
  isSwitchDemoChecked: () => isChecked,
1077
1105
  }),
1078
1106
  }),