@bazous/ui 0.3.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 (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -0
  3. package/dist/answers/AnswerPicture.d.ts +13 -0
  4. package/dist/answers/contract.d.ts +160 -0
  5. package/dist/answers/draw.d.ts +16 -0
  6. package/dist/answers/index.d.ts +6 -0
  7. package/dist/answers/messages.d.ts +3 -0
  8. package/dist/answers.js +10 -0
  9. package/dist/answers.js.map +1 -0
  10. package/dist/canvas/index.d.ts +32 -0
  11. package/dist/canvas.js +285 -0
  12. package/dist/canvas.js.map +1 -0
  13. package/dist/contract/snapshot.d.ts +173 -0
  14. package/dist/engine/scenario.d.ts +40 -0
  15. package/dist/format/index.d.ts +37 -0
  16. package/dist/i18n/index.d.ts +25 -0
  17. package/dist/i18n/shared.d.ts +3 -0
  18. package/dist/index-yeBMtDf1.js +649 -0
  19. package/dist/index-yeBMtDf1.js.map +1 -0
  20. package/dist/index.d.ts +20 -0
  21. package/dist/index.js +1258 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/modules/Question.d.ts +18 -0
  24. package/dist/modules/available-now/index.d.ts +8 -0
  25. package/dist/modules/due-before-payday/index.d.ts +9 -0
  26. package/dist/modules/low-point/index.d.ts +12 -0
  27. package/dist/modules/margin-after-payday/index.d.ts +9 -0
  28. package/dist/modules/monthly-structure/index.d.ts +24 -0
  29. package/dist/modules/next-actions/index.d.ts +13 -0
  30. package/dist/modules/pay-cycles/index.d.ts +31 -0
  31. package/dist/modules/registry.d.ts +7 -0
  32. package/dist/modules/types.d.ts +77 -0
  33. package/dist/modules/what-if/index.d.ts +6 -0
  34. package/dist/primitives/CashflowChart.d.ts +22 -0
  35. package/dist/primitives/index.d.ts +57 -0
  36. package/dist/styles.css +1 -0
  37. package/package.json +84 -0
  38. package/schema/answers.schema.json +719 -0
  39. package/schema/canvas.json +181 -0
  40. package/schema/snapshot.schema.json +821 -0
@@ -0,0 +1,719 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/bazousdotcom/ui/schema/answers.schema.json",
4
+ "title": "Bazous answers",
5
+ "description": "What Bazous answers for one household (GET /api/v1/answers, MCP get_household_answers), as the kit reads it. Amounts are decimal strings in the household currency, dates ISO. The `visual` block is computed by the engine; the kit only draws it.",
6
+ "type": "object",
7
+ "required": [
8
+ "as_of",
9
+ "currency",
10
+ "language",
11
+ "headline",
12
+ "answers",
13
+ "all_clear"
14
+ ],
15
+ "properties": {
16
+ "as_of": {
17
+ "$ref": "#/$defs/date"
18
+ },
19
+ "currency": {
20
+ "type": "string"
21
+ },
22
+ "language": {
23
+ "enum": [
24
+ "fr",
25
+ "de",
26
+ "it",
27
+ "rm",
28
+ "en"
29
+ ]
30
+ },
31
+ "headline": {
32
+ "type": "string"
33
+ },
34
+ "answers": {
35
+ "type": "array",
36
+ "items": {
37
+ "$ref": "#/$defs/answer"
38
+ }
39
+ },
40
+ "all_clear": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "object",
44
+ "required": [
45
+ "id",
46
+ "question",
47
+ "short"
48
+ ],
49
+ "properties": {
50
+ "id": {
51
+ "type": "string"
52
+ },
53
+ "question": {
54
+ "type": "string"
55
+ },
56
+ "short": {
57
+ "type": "string"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "$defs": {
64
+ "decimal": {
65
+ "type": "string",
66
+ "pattern": "^-?\\d+(\\.\\d+)?$"
67
+ },
68
+ "date": {
69
+ "type": "string",
70
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
71
+ },
72
+ "point": {
73
+ "type": "array",
74
+ "prefixItems": [
75
+ {
76
+ "$ref": "#/$defs/date"
77
+ },
78
+ {
79
+ "$ref": "#/$defs/decimal"
80
+ }
81
+ ],
82
+ "minItems": 2,
83
+ "maxItems": 2
84
+ },
85
+ "answer": {
86
+ "type": "object",
87
+ "required": [
88
+ "id",
89
+ "question",
90
+ "answer",
91
+ "tone",
92
+ "source",
93
+ "needs"
94
+ ],
95
+ "properties": {
96
+ "id": {
97
+ "type": "string"
98
+ },
99
+ "question": {
100
+ "type": "string"
101
+ },
102
+ "answer": {
103
+ "type": "string"
104
+ },
105
+ "tone": {
106
+ "enum": [
107
+ "risk",
108
+ "warn",
109
+ "info"
110
+ ]
111
+ },
112
+ "because": {
113
+ "type": [
114
+ "string",
115
+ "null"
116
+ ]
117
+ },
118
+ "source": {
119
+ "enum": [
120
+ "kit",
121
+ "expert"
122
+ ]
123
+ },
124
+ "figures": {
125
+ "type": "object"
126
+ },
127
+ "needs": {
128
+ "type": "array",
129
+ "items": {
130
+ "type": "string"
131
+ }
132
+ },
133
+ "visual": {
134
+ "$ref": "#/$defs/visual"
135
+ }
136
+ }
137
+ },
138
+ "visual": {
139
+ "oneOf": [
140
+ {
141
+ "type": "object",
142
+ "required": [
143
+ "kind",
144
+ "caption",
145
+ "today",
146
+ "payday",
147
+ "available",
148
+ "due",
149
+ "gap",
150
+ "bills",
151
+ "short_days"
152
+ ],
153
+ "properties": {
154
+ "kind": {
155
+ "const": "runway"
156
+ },
157
+ "caption": {
158
+ "type": "string",
159
+ "minLength": 1
160
+ },
161
+ "today": {
162
+ "$ref": "#/$defs/date"
163
+ },
164
+ "payday": {
165
+ "$ref": "#/$defs/date"
166
+ },
167
+ "available": {
168
+ "$ref": "#/$defs/decimal"
169
+ },
170
+ "due": {
171
+ "$ref": "#/$defs/decimal"
172
+ },
173
+ "gap": {
174
+ "$ref": "#/$defs/decimal"
175
+ },
176
+ "short_days": {
177
+ "type": "integer",
178
+ "minimum": 0
179
+ },
180
+ "bills": {
181
+ "type": "array",
182
+ "items": {
183
+ "type": "object",
184
+ "required": [
185
+ "label",
186
+ "amount",
187
+ "date"
188
+ ],
189
+ "properties": {
190
+ "label": {
191
+ "type": "string"
192
+ },
193
+ "amount": {
194
+ "$ref": "#/$defs/decimal"
195
+ },
196
+ "date": {
197
+ "$ref": "#/$defs/date"
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ },
204
+ {
205
+ "type": "object",
206
+ "required": [
207
+ "kind",
208
+ "caption",
209
+ "series",
210
+ "low",
211
+ "days_below_zero",
212
+ "incomes"
213
+ ],
214
+ "properties": {
215
+ "kind": {
216
+ "const": "valley"
217
+ },
218
+ "caption": {
219
+ "type": "string",
220
+ "minLength": 1
221
+ },
222
+ "series": {
223
+ "type": "array",
224
+ "items": {
225
+ "$ref": "#/$defs/point"
226
+ },
227
+ "minItems": 2
228
+ },
229
+ "low": {
230
+ "type": "object",
231
+ "required": [
232
+ "date",
233
+ "balance"
234
+ ],
235
+ "properties": {
236
+ "date": {
237
+ "$ref": "#/$defs/date"
238
+ },
239
+ "balance": {
240
+ "$ref": "#/$defs/decimal"
241
+ }
242
+ }
243
+ },
244
+ "days_below_zero": {
245
+ "type": "integer",
246
+ "minimum": 0
247
+ },
248
+ "incomes": {
249
+ "type": "array",
250
+ "items": {
251
+ "$ref": "#/$defs/date"
252
+ }
253
+ }
254
+ }
255
+ },
256
+ {
257
+ "type": "object",
258
+ "required": [
259
+ "kind",
260
+ "caption",
261
+ "before",
262
+ "after",
263
+ "move",
264
+ "low_before",
265
+ "low_after"
266
+ ],
267
+ "properties": {
268
+ "kind": {
269
+ "const": "shift"
270
+ },
271
+ "caption": {
272
+ "type": "string",
273
+ "minLength": 1
274
+ },
275
+ "before": {
276
+ "type": "array",
277
+ "items": {
278
+ "$ref": "#/$defs/point"
279
+ },
280
+ "minItems": 2
281
+ },
282
+ "after": {
283
+ "type": "array",
284
+ "items": {
285
+ "$ref": "#/$defs/point"
286
+ },
287
+ "minItems": 2
288
+ },
289
+ "low_before": {
290
+ "$ref": "#/$defs/decimal"
291
+ },
292
+ "low_after": {
293
+ "$ref": "#/$defs/decimal"
294
+ },
295
+ "move": {
296
+ "type": "object",
297
+ "required": [
298
+ "label",
299
+ "amount",
300
+ "from",
301
+ "to"
302
+ ],
303
+ "properties": {
304
+ "label": {
305
+ "type": "string"
306
+ },
307
+ "amount": {
308
+ "$ref": "#/$defs/decimal"
309
+ },
310
+ "from": {
311
+ "$ref": "#/$defs/date"
312
+ },
313
+ "to": {
314
+ "$ref": "#/$defs/date"
315
+ }
316
+ }
317
+ }
318
+ }
319
+ },
320
+ {
321
+ "type": "object",
322
+ "required": [
323
+ "kind",
324
+ "caption",
325
+ "covered",
326
+ "target"
327
+ ],
328
+ "properties": {
329
+ "kind": {
330
+ "const": "days"
331
+ },
332
+ "caption": {
333
+ "type": "string",
334
+ "minLength": 1
335
+ },
336
+ "covered": {
337
+ "type": "integer",
338
+ "minimum": 0
339
+ },
340
+ "target": {
341
+ "type": "integer",
342
+ "minimum": 1
343
+ },
344
+ "balance": {
345
+ "$ref": "#/$defs/decimal"
346
+ }
347
+ }
348
+ },
349
+ {
350
+ "type": "object",
351
+ "required": [
352
+ "kind",
353
+ "caption",
354
+ "in",
355
+ "out",
356
+ "gap",
357
+ "start",
358
+ "end"
359
+ ],
360
+ "properties": {
361
+ "kind": {
362
+ "const": "balance"
363
+ },
364
+ "caption": {
365
+ "type": "string",
366
+ "minLength": 1
367
+ },
368
+ "in": {
369
+ "$ref": "#/$defs/decimal"
370
+ },
371
+ "out": {
372
+ "$ref": "#/$defs/decimal"
373
+ },
374
+ "gap": {
375
+ "$ref": "#/$defs/decimal"
376
+ },
377
+ "start": {
378
+ "$ref": "#/$defs/date"
379
+ },
380
+ "end": {
381
+ "$ref": "#/$defs/date"
382
+ }
383
+ }
384
+ },
385
+ {
386
+ "type": "object",
387
+ "required": [
388
+ "kind",
389
+ "caption",
390
+ "deadline",
391
+ "days_left",
392
+ "window_days"
393
+ ],
394
+ "properties": {
395
+ "kind": {
396
+ "const": "countdown"
397
+ },
398
+ "caption": {
399
+ "type": "string",
400
+ "minLength": 1
401
+ },
402
+ "deadline": {
403
+ "$ref": "#/$defs/date"
404
+ },
405
+ "days_left": {
406
+ "type": "integer",
407
+ "minimum": 0
408
+ },
409
+ "window_days": {
410
+ "type": "integer",
411
+ "minimum": 0
412
+ },
413
+ "current": {
414
+ "anyOf": [
415
+ {
416
+ "$ref": "#/$defs/decimal"
417
+ },
418
+ {
419
+ "type": "null"
420
+ }
421
+ ]
422
+ },
423
+ "next": {
424
+ "anyOf": [
425
+ {
426
+ "$ref": "#/$defs/decimal"
427
+ },
428
+ {
429
+ "type": "null"
430
+ }
431
+ ]
432
+ },
433
+ "increase_per_year": {
434
+ "anyOf": [
435
+ {
436
+ "$ref": "#/$defs/decimal"
437
+ },
438
+ {
439
+ "type": "null"
440
+ }
441
+ ]
442
+ }
443
+ }
444
+ },
445
+ {
446
+ "type": "object",
447
+ "required": [
448
+ "kind",
449
+ "caption",
450
+ "series",
451
+ "end",
452
+ "days_of_fixed_costs"
453
+ ],
454
+ "properties": {
455
+ "kind": {
456
+ "const": "horizon"
457
+ },
458
+ "caption": {
459
+ "type": "string",
460
+ "minLength": 1
461
+ },
462
+ "series": {
463
+ "type": "array",
464
+ "items": {
465
+ "$ref": "#/$defs/point"
466
+ },
467
+ "minItems": 2
468
+ },
469
+ "end": {
470
+ "type": "object",
471
+ "required": [
472
+ "date",
473
+ "balance"
474
+ ],
475
+ "properties": {
476
+ "date": {
477
+ "$ref": "#/$defs/date"
478
+ },
479
+ "balance": {
480
+ "$ref": "#/$defs/decimal"
481
+ }
482
+ }
483
+ },
484
+ "days_of_fixed_costs": {
485
+ "type": [
486
+ "integer",
487
+ "null"
488
+ ],
489
+ "minimum": 0
490
+ }
491
+ }
492
+ },
493
+ {
494
+ "type": "object",
495
+ "required": [
496
+ "kind",
497
+ "caption",
498
+ "today",
499
+ "until",
500
+ "items"
501
+ ],
502
+ "properties": {
503
+ "kind": {
504
+ "const": "calendar"
505
+ },
506
+ "caption": {
507
+ "type": "string",
508
+ "minLength": 1
509
+ },
510
+ "today": {
511
+ "$ref": "#/$defs/date"
512
+ },
513
+ "until": {
514
+ "$ref": "#/$defs/date"
515
+ },
516
+ "items": {
517
+ "type": "array",
518
+ "minItems": 1,
519
+ "items": {
520
+ "type": "object",
521
+ "required": [
522
+ "label",
523
+ "amount",
524
+ "date",
525
+ "days",
526
+ "per_month"
527
+ ],
528
+ "properties": {
529
+ "label": {
530
+ "type": "string"
531
+ },
532
+ "amount": {
533
+ "$ref": "#/$defs/decimal"
534
+ },
535
+ "date": {
536
+ "$ref": "#/$defs/date"
537
+ },
538
+ "days": {
539
+ "type": "integer",
540
+ "minimum": 0
541
+ },
542
+ "per_month": {
543
+ "$ref": "#/$defs/decimal"
544
+ }
545
+ }
546
+ }
547
+ }
548
+ }
549
+ },
550
+ {
551
+ "type": "object",
552
+ "required": [
553
+ "kind",
554
+ "caption",
555
+ "per_year",
556
+ "years",
557
+ "total",
558
+ "items"
559
+ ],
560
+ "properties": {
561
+ "kind": {
562
+ "const": "leak"
563
+ },
564
+ "caption": {
565
+ "type": "string",
566
+ "minLength": 1
567
+ },
568
+ "per_year": {
569
+ "$ref": "#/$defs/decimal"
570
+ },
571
+ "years": {
572
+ "type": "integer",
573
+ "minimum": 1
574
+ },
575
+ "total": {
576
+ "$ref": "#/$defs/decimal"
577
+ },
578
+ "items": {
579
+ "type": "array",
580
+ "items": {
581
+ "type": "object",
582
+ "required": [
583
+ "label"
584
+ ],
585
+ "properties": {
586
+ "label": {
587
+ "type": "string"
588
+ }
589
+ }
590
+ }
591
+ }
592
+ }
593
+ },
594
+ {
595
+ "type": "object",
596
+ "required": [
597
+ "kind",
598
+ "caption",
599
+ "bill",
600
+ "needed_per_month",
601
+ "set_aside_per_month",
602
+ "per_day"
603
+ ],
604
+ "properties": {
605
+ "kind": {
606
+ "const": "jar"
607
+ },
608
+ "caption": {
609
+ "type": "string",
610
+ "minLength": 1
611
+ },
612
+ "bill": {
613
+ "$ref": "#/$defs/decimal"
614
+ },
615
+ "needed_per_month": {
616
+ "$ref": "#/$defs/decimal"
617
+ },
618
+ "set_aside_per_month": {
619
+ "$ref": "#/$defs/decimal"
620
+ },
621
+ "per_day": {
622
+ "$ref": "#/$defs/decimal"
623
+ }
624
+ }
625
+ },
626
+ {
627
+ "type": "object",
628
+ "required": [
629
+ "kind",
630
+ "caption",
631
+ "year",
632
+ "limit",
633
+ "paid",
634
+ "left",
635
+ "deadline",
636
+ "days_left"
637
+ ],
638
+ "properties": {
639
+ "kind": {
640
+ "const": "gauge"
641
+ },
642
+ "caption": {
643
+ "type": "string",
644
+ "minLength": 1
645
+ },
646
+ "year": {
647
+ "type": "integer"
648
+ },
649
+ "limit": {
650
+ "$ref": "#/$defs/decimal"
651
+ },
652
+ "paid": {
653
+ "$ref": "#/$defs/decimal"
654
+ },
655
+ "left": {
656
+ "$ref": "#/$defs/decimal"
657
+ },
658
+ "deadline": {
659
+ "$ref": "#/$defs/date"
660
+ },
661
+ "days_left": {
662
+ "type": "integer",
663
+ "minimum": 0
664
+ }
665
+ }
666
+ },
667
+ {
668
+ "type": "object",
669
+ "required": [
670
+ "kind",
671
+ "caption",
672
+ "today",
673
+ "contracts"
674
+ ],
675
+ "properties": {
676
+ "kind": {
677
+ "const": "deadline"
678
+ },
679
+ "caption": {
680
+ "type": "string",
681
+ "minLength": 1
682
+ },
683
+ "today": {
684
+ "$ref": "#/$defs/date"
685
+ },
686
+ "contracts": {
687
+ "type": "array",
688
+ "minItems": 1,
689
+ "items": {
690
+ "type": "object",
691
+ "required": [
692
+ "name",
693
+ "ends_on",
694
+ "cancel_before",
695
+ "days_left"
696
+ ],
697
+ "properties": {
698
+ "name": {
699
+ "type": "string"
700
+ },
701
+ "ends_on": {
702
+ "$ref": "#/$defs/date"
703
+ },
704
+ "cancel_before": {
705
+ "$ref": "#/$defs/date"
706
+ },
707
+ "days_left": {
708
+ "type": "integer",
709
+ "minimum": 0
710
+ }
711
+ }
712
+ }
713
+ }
714
+ }
715
+ }
716
+ ]
717
+ }
718
+ }
719
+ }