@fieldia/core 0.21.0 → 0.22.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 (127) hide show
  1. package/README.md +116 -1
  2. package/package.json +1 -1
  3. package/schema/page.schema.json +149 -1
  4. package/src/index.d.mts +2 -2
  5. package/src/index.d.ts +2 -2
  6. package/src/index.js +3 -1
  7. package/src/index.js.map +1 -1
  8. package/src/index.mjs +2 -2
  9. package/src/index.mjs.map +1 -1
  10. package/src/lib/format/check-page.d.mts +3 -2
  11. package/src/lib/format/check-page.d.ts +3 -2
  12. package/src/lib/format/check-page.js +9 -4
  13. package/src/lib/format/check-page.js.map +1 -1
  14. package/src/lib/format/check-page.mjs +10 -5
  15. package/src/lib/format/check-page.mjs.map +1 -1
  16. package/src/lib/format/field.d.mts +85 -0
  17. package/src/lib/format/field.d.ts +85 -0
  18. package/src/lib/format/field.js +14 -1
  19. package/src/lib/format/field.js.map +1 -1
  20. package/src/lib/format/field.mjs +13 -0
  21. package/src/lib/format/field.mjs.map +1 -1
  22. package/src/lib/format/layout.d.mts +142 -17
  23. package/src/lib/format/layout.d.ts +142 -17
  24. package/src/lib/format/layout.js +18 -1
  25. package/src/lib/format/layout.js.map +1 -1
  26. package/src/lib/format/layout.mjs +17 -0
  27. package/src/lib/format/layout.mjs.map +1 -1
  28. package/src/lib/format/layout.types.d.mts +6 -2
  29. package/src/lib/format/layout.types.d.ts +6 -2
  30. package/src/lib/format/page.d.mts +69 -10
  31. package/src/lib/format/page.d.ts +69 -10
  32. package/src/lib/format/page.js +4 -1
  33. package/src/lib/format/page.js.map +1 -1
  34. package/src/lib/format/page.mjs +5 -2
  35. package/src/lib/format/page.mjs.map +1 -1
  36. package/src/lib/format/references.d.mts +7 -0
  37. package/src/lib/format/references.d.ts +7 -0
  38. package/src/lib/format/references.js +46 -0
  39. package/src/lib/format/references.js.map +1 -1
  40. package/src/lib/format/references.mjs +46 -0
  41. package/src/lib/format/references.mjs.map +1 -1
  42. package/src/lib/format/translate.js +3 -2
  43. package/src/lib/format/translate.js.map +1 -1
  44. package/src/lib/format/translate.mjs +3 -2
  45. package/src/lib/format/translate.mjs.map +1 -1
  46. package/src/lib/format/upgrade.d.mts +41 -0
  47. package/src/lib/format/upgrade.d.ts +41 -0
  48. package/src/lib/format/upgrade.js +41 -0
  49. package/src/lib/format/upgrade.js.map +1 -0
  50. package/src/lib/format/upgrade.mjs +37 -0
  51. package/src/lib/format/upgrade.mjs.map +1 -0
  52. package/src/lib/format/validate.d.mts +2 -1
  53. package/src/lib/format/validate.d.ts +2 -1
  54. package/src/lib/format/validate.js +4 -2
  55. package/src/lib/format/validate.js.map +1 -1
  56. package/src/lib/format/validate.mjs +4 -2
  57. package/src/lib/format/validate.mjs.map +1 -1
  58. package/src/lib/format/version.d.mts +16 -1
  59. package/src/lib/format/version.d.ts +16 -1
  60. package/src/lib/format/version.js +39 -2
  61. package/src/lib/format/version.js.map +1 -1
  62. package/src/lib/format/version.mjs +36 -1
  63. package/src/lib/format/version.mjs.map +1 -1
  64. package/src/lib/record/data-source.d.mts +224 -10
  65. package/src/lib/record/data-source.d.ts +224 -10
  66. package/src/lib/record/data-source.js +29 -0
  67. package/src/lib/record/data-source.js.map +1 -1
  68. package/src/lib/record/data-source.mjs +25 -0
  69. package/src/lib/record/data-source.mjs.map +1 -1
  70. package/src/lib/record/form.d.mts +144 -5
  71. package/src/lib/record/form.d.ts +144 -5
  72. package/src/lib/record/form.js +792 -42
  73. package/src/lib/record/form.js.map +1 -1
  74. package/src/lib/record/form.mjs +791 -43
  75. package/src/lib/record/form.mjs.map +1 -1
  76. package/src/lib/record/locales/ar.js +10 -0
  77. package/src/lib/record/locales/ar.js.map +1 -1
  78. package/src/lib/record/locales/ar.mjs +10 -0
  79. package/src/lib/record/locales/ar.mjs.map +1 -1
  80. package/src/lib/record/locales/de.js +10 -0
  81. package/src/lib/record/locales/de.js.map +1 -1
  82. package/src/lib/record/locales/de.mjs +10 -0
  83. package/src/lib/record/locales/de.mjs.map +1 -1
  84. package/src/lib/record/locales/fr.js +10 -0
  85. package/src/lib/record/locales/fr.js.map +1 -1
  86. package/src/lib/record/locales/fr.mjs +10 -0
  87. package/src/lib/record/locales/fr.mjs.map +1 -1
  88. package/src/lib/record/memory-data-source.d.mts +40 -3
  89. package/src/lib/record/memory-data-source.d.ts +40 -3
  90. package/src/lib/record/memory-data-source.js +164 -20
  91. package/src/lib/record/memory-data-source.js.map +1 -1
  92. package/src/lib/record/memory-data-source.mjs +164 -20
  93. package/src/lib/record/memory-data-source.mjs.map +1 -1
  94. package/src/lib/record/messages.d.mts +21 -0
  95. package/src/lib/record/messages.d.ts +21 -0
  96. package/src/lib/record/messages.js +10 -0
  97. package/src/lib/record/messages.js.map +1 -1
  98. package/src/lib/record/messages.mjs +10 -0
  99. package/src/lib/record/messages.mjs.map +1 -1
  100. package/src/lib/record/run.d.mts +50 -7
  101. package/src/lib/record/run.d.ts +50 -7
  102. package/src/lib/record/run.js +67 -20
  103. package/src/lib/record/run.js.map +1 -1
  104. package/src/lib/record/run.mjs +67 -20
  105. package/src/lib/record/run.mjs.map +1 -1
  106. package/src/lib/record/upload-to.d.mts +50 -0
  107. package/src/lib/record/upload-to.d.ts +50 -0
  108. package/src/lib/record/upload-to.js +117 -0
  109. package/src/lib/record/upload-to.js.map +1 -0
  110. package/src/lib/record/upload-to.mjs +114 -0
  111. package/src/lib/record/upload-to.mjs.map +1 -0
  112. package/src/lib/record/uploads.d.mts +152 -0
  113. package/src/lib/record/uploads.d.ts +152 -0
  114. package/src/lib/record/uploads.js +345 -0
  115. package/src/lib/record/uploads.js.map +1 -0
  116. package/src/lib/record/uploads.mjs +337 -0
  117. package/src/lib/record/uploads.mjs.map +1 -0
  118. package/src/lib/record/values.d.mts +6 -0
  119. package/src/lib/record/values.d.ts +6 -0
  120. package/src/lib/record/values.js.map +1 -1
  121. package/src/lib/record/values.mjs.map +1 -1
  122. package/src/runtime.d.mts +10 -6
  123. package/src/runtime.d.ts +10 -6
  124. package/src/runtime.js +19 -2
  125. package/src/runtime.js.map +1 -1
  126. package/src/runtime.mjs +7 -3
  127. package/src/runtime.mjs.map +1 -1
@@ -999,6 +999,8 @@ export interface ListNode {
999
999
  actions?: ButtonNode[];
1000
1000
  /** The records on a map, beside the table or instead of it (drawn by @fieldia/map). */
1001
1001
  map?: ListMap;
1002
+ /** The records on a calendar, by day, week or month, a press away from the table (drawn by @fieldia/calendar). */
1003
+ calendar?: ListCalendar;
1002
1004
  /**
1003
1005
  * Each column's cells, by its field: a widget (`dot` for a state, with its
1004
1006
  * options), an icon before the words from another field (a work item's
@@ -1165,6 +1167,41 @@ export interface ListMap {
1165
1167
  /** The closest it comes when it fits its records in view: zoom 16 unless said (a neighbourhood is 14, a street 17). */
1166
1168
  fitZoom?: number;
1167
1169
  }
1170
+ /** The spans a list's calendar shows: a day, a week, a month, or the week as a list of what comes (a phone's). */
1171
+ export type CalendarView = 'day' | 'week' | 'month' | 'agenda';
1172
+ /**
1173
+ * A list's records on a calendar: when each starts and ends, its words, its
1174
+ * colour, and the person or room it is with — a column for each in the day
1175
+ * view. People move a record by dragging it, or with "Move to…" from the
1176
+ * keyboard, and make one by pressing an empty slot.
1177
+ */
1178
+ export interface ListCalendar {
1179
+ /** When each record starts: a date (the record takes the whole day) or a date and time field. */
1180
+ start: string;
1181
+ /** When it ends, a field of the same kind as `start`; with none, a record lasts an hour (a day, for a date) and cannot be stretched. */
1182
+ end?: string;
1183
+ /** The words on each record's block: the patient, the booking's name. */
1184
+ title: string;
1185
+ /** A field whose value colours each record: the same value, the same colour. */
1186
+ colour?: string;
1187
+ /** A field naming who or what each record is with — a doctor, a room: a column for each in the day view. */
1188
+ resource?: string;
1189
+ /** The views offered, in this order: all four unless said. */
1190
+ views?: CalendarView[];
1191
+ /** The view it shows first: the first of `views` unless said (`agenda` on a phone). */
1192
+ view?: CalendarView;
1193
+ /** Whether the list opens on its table (unless said) or on its calendar. */
1194
+ opens?: 'list' | 'calendar';
1195
+ /** The week's first day, 0 Sunday to 6 Saturday: the language's own unless said. */
1196
+ firstDay?: number;
1197
+ /** The hours the day and the week show, from 0 to 24: 8 to 20 unless said; a record outside them stretches them. */
1198
+ hours?: {
1199
+ start: number;
1200
+ end: number;
1201
+ };
1202
+ /** The minutes a drag moves by and an empty slot holds: 15, 30 (unless said) or 60. */
1203
+ slot?: 15 | 30 | 60;
1204
+ }
1168
1205
  /** Anything that can sit inside a section, tab, step or sheet. */
1169
1206
  export type LayoutNode = FieldNode | ButtonNode | TextNode | SlotNode | SectionNode | TabsNode | DividerNode | SpacerNode | ImageNode | FormNode | MapNode;
1170
1207
  /** What a page's `layout` can be: the four page layouts. */
@@ -1307,8 +1344,8 @@ export declare const FieldNodeSchema: z.ZodObject<{
1307
1344
  always: "always";
1308
1345
  }>>;
1309
1346
  fit: z.ZodOptional<z.ZodEnum<{
1310
- content: "content";
1311
1347
  shrink: "shrink";
1348
+ content: "content";
1312
1349
  }>>;
1313
1350
  editMode: z.ZodOptional<z.ZodEnum<{
1314
1351
  cell: "cell";
@@ -2498,8 +2535,8 @@ export declare const LayoutNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2498
2535
  always: "always";
2499
2536
  }>>;
2500
2537
  fit: z.ZodOptional<z.ZodEnum<{
2501
- content: "content";
2502
2538
  shrink: "shrink";
2539
+ content: "content";
2503
2540
  }>>;
2504
2541
  editMode: z.ZodOptional<z.ZodEnum<{
2505
2542
  cell: "cell";
@@ -4133,8 +4170,8 @@ export declare const HeadBandSchema: z.ZodObject<{
4133
4170
  always: "always";
4134
4171
  }>>;
4135
4172
  fit: z.ZodOptional<z.ZodEnum<{
4136
- content: "content";
4137
4173
  shrink: "shrink";
4174
+ content: "content";
4138
4175
  }>>;
4139
4176
  editMode: z.ZodOptional<z.ZodEnum<{
4140
4177
  cell: "cell";
@@ -4907,8 +4944,8 @@ export declare const SheetHeadSchema: z.ZodObject<{
4907
4944
  always: "always";
4908
4945
  }>>;
4909
4946
  fit: z.ZodOptional<z.ZodEnum<{
4910
- content: "content";
4911
4947
  shrink: "shrink";
4948
+ content: "content";
4912
4949
  }>>;
4913
4950
  editMode: z.ZodOptional<z.ZodEnum<{
4914
4951
  cell: "cell";
@@ -5362,8 +5399,8 @@ export declare const SheetHeadSchema: z.ZodObject<{
5362
5399
  always: "always";
5363
5400
  }>>;
5364
5401
  fit: z.ZodOptional<z.ZodEnum<{
5365
- content: "content";
5366
5402
  shrink: "shrink";
5403
+ content: "content";
5367
5404
  }>>;
5368
5405
  editMode: z.ZodOptional<z.ZodEnum<{
5369
5406
  cell: "cell";
@@ -6145,8 +6182,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
6145
6182
  always: "always";
6146
6183
  }>>;
6147
6184
  fit: z.ZodOptional<z.ZodEnum<{
6148
- content: "content";
6149
6185
  shrink: "shrink";
6186
+ content: "content";
6150
6187
  }>>;
6151
6188
  editMode: z.ZodOptional<z.ZodEnum<{
6152
6189
  cell: "cell";
@@ -6600,8 +6637,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
6600
6637
  always: "always";
6601
6638
  }>>;
6602
6639
  fit: z.ZodOptional<z.ZodEnum<{
6603
- content: "content";
6604
6640
  shrink: "shrink";
6641
+ content: "content";
6605
6642
  }>>;
6606
6643
  editMode: z.ZodOptional<z.ZodEnum<{
6607
6644
  cell: "cell";
@@ -7379,8 +7416,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7379
7416
  always: "always";
7380
7417
  }>>;
7381
7418
  fit: z.ZodOptional<z.ZodEnum<{
7382
- content: "content";
7383
7419
  shrink: "shrink";
7420
+ content: "content";
7384
7421
  }>>;
7385
7422
  editMode: z.ZodOptional<z.ZodEnum<{
7386
7423
  cell: "cell";
@@ -7518,8 +7555,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7518
7555
  always: "always";
7519
7556
  }>>;
7520
7557
  fit: z.ZodOptional<z.ZodEnum<{
7521
- content: "content";
7522
7558
  shrink: "shrink";
7559
+ content: "content";
7523
7560
  }>>;
7524
7561
  editMode: z.ZodOptional<z.ZodEnum<{
7525
7562
  cell: "cell";
@@ -7657,8 +7694,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7657
7694
  always: "always";
7658
7695
  }>>;
7659
7696
  fit: z.ZodOptional<z.ZodEnum<{
7660
- content: "content";
7661
7697
  shrink: "shrink";
7698
+ content: "content";
7662
7699
  }>>;
7663
7700
  editMode: z.ZodOptional<z.ZodEnum<{
7664
7701
  cell: "cell";
@@ -7796,8 +7833,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7796
7833
  always: "always";
7797
7834
  }>>;
7798
7835
  fit: z.ZodOptional<z.ZodEnum<{
7799
- content: "content";
7800
7836
  shrink: "shrink";
7837
+ content: "content";
7801
7838
  }>>;
7802
7839
  editMode: z.ZodOptional<z.ZodEnum<{
7803
7840
  cell: "cell";
@@ -8868,6 +8905,36 @@ export declare const ListMapSchema: z.ZodObject<{
8868
8905
  }>>;
8869
8906
  fitZoom: z.ZodOptional<z.ZodInt>;
8870
8907
  }, z.core.$strict>;
8908
+ /** A list's records on a calendar: when each starts and ends, its words, its colour, its person or room, the views, the first day and the hours. */
8909
+ export declare const ListCalendarSchema: z.ZodObject<{
8910
+ start: z.ZodString;
8911
+ end: z.ZodOptional<z.ZodString>;
8912
+ title: z.ZodString;
8913
+ colour: z.ZodOptional<z.ZodString>;
8914
+ resource: z.ZodOptional<z.ZodString>;
8915
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
8916
+ day: "day";
8917
+ week: "week";
8918
+ month: "month";
8919
+ agenda: "agenda";
8920
+ }>>>;
8921
+ view: z.ZodOptional<z.ZodEnum<{
8922
+ day: "day";
8923
+ week: "week";
8924
+ month: "month";
8925
+ agenda: "agenda";
8926
+ }>>;
8927
+ opens: z.ZodOptional<z.ZodEnum<{
8928
+ list: "list";
8929
+ calendar: "calendar";
8930
+ }>>;
8931
+ firstDay: z.ZodOptional<z.ZodInt>;
8932
+ hours: z.ZodOptional<z.ZodObject<{
8933
+ start: z.ZodInt;
8934
+ end: z.ZodInt;
8935
+ }, z.core.$strict>>;
8936
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
8937
+ }, z.core.$strict>;
8871
8938
  /** A list column's cells: a widget, an icon from another field, a width in characters or pixels, a side, its header's rule. */
8872
8939
  export declare const ListCellSchema: z.ZodObject<{
8873
8940
  widget: z.ZodOptional<z.ZodString>;
@@ -9211,6 +9278,35 @@ export declare const ListNodeSchema: z.ZodObject<{
9211
9278
  }>>;
9212
9279
  fitZoom: z.ZodOptional<z.ZodInt>;
9213
9280
  }, z.core.$strict>>;
9281
+ calendar: z.ZodOptional<z.ZodObject<{
9282
+ start: z.ZodString;
9283
+ end: z.ZodOptional<z.ZodString>;
9284
+ title: z.ZodString;
9285
+ colour: z.ZodOptional<z.ZodString>;
9286
+ resource: z.ZodOptional<z.ZodString>;
9287
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
9288
+ day: "day";
9289
+ week: "week";
9290
+ month: "month";
9291
+ agenda: "agenda";
9292
+ }>>>;
9293
+ view: z.ZodOptional<z.ZodEnum<{
9294
+ day: "day";
9295
+ week: "week";
9296
+ month: "month";
9297
+ agenda: "agenda";
9298
+ }>>;
9299
+ opens: z.ZodOptional<z.ZodEnum<{
9300
+ list: "list";
9301
+ calendar: "calendar";
9302
+ }>>;
9303
+ firstDay: z.ZodOptional<z.ZodInt>;
9304
+ hours: z.ZodOptional<z.ZodObject<{
9305
+ start: z.ZodInt;
9306
+ end: z.ZodInt;
9307
+ }, z.core.$strict>>;
9308
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
9309
+ }, z.core.$strict>>;
9214
9310
  cells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
9215
9311
  widget: z.ZodOptional<z.ZodString>;
9216
9312
  options: z.ZodOptional<z.ZodObject<{
@@ -9330,8 +9426,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9330
9426
  always: "always";
9331
9427
  }>>;
9332
9428
  fit: z.ZodOptional<z.ZodEnum<{
9333
- content: "content";
9334
9429
  shrink: "shrink";
9430
+ content: "content";
9335
9431
  }>>;
9336
9432
  editMode: z.ZodOptional<z.ZodEnum<{
9337
9433
  cell: "cell";
@@ -9785,8 +9881,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9785
9881
  always: "always";
9786
9882
  }>>;
9787
9883
  fit: z.ZodOptional<z.ZodEnum<{
9788
- content: "content";
9789
9884
  shrink: "shrink";
9885
+ content: "content";
9790
9886
  }>>;
9791
9887
  editMode: z.ZodOptional<z.ZodEnum<{
9792
9888
  cell: "cell";
@@ -10564,8 +10660,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10564
10660
  always: "always";
10565
10661
  }>>;
10566
10662
  fit: z.ZodOptional<z.ZodEnum<{
10567
- content: "content";
10568
10663
  shrink: "shrink";
10664
+ content: "content";
10569
10665
  }>>;
10570
10666
  editMode: z.ZodOptional<z.ZodEnum<{
10571
10667
  cell: "cell";
@@ -10703,8 +10799,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10703
10799
  always: "always";
10704
10800
  }>>;
10705
10801
  fit: z.ZodOptional<z.ZodEnum<{
10706
- content: "content";
10707
10802
  shrink: "shrink";
10803
+ content: "content";
10708
10804
  }>>;
10709
10805
  editMode: z.ZodOptional<z.ZodEnum<{
10710
10806
  cell: "cell";
@@ -10842,8 +10938,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10842
10938
  always: "always";
10843
10939
  }>>;
10844
10940
  fit: z.ZodOptional<z.ZodEnum<{
10845
- content: "content";
10846
10941
  shrink: "shrink";
10942
+ content: "content";
10847
10943
  }>>;
10848
10944
  editMode: z.ZodOptional<z.ZodEnum<{
10849
10945
  cell: "cell";
@@ -10981,8 +11077,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10981
11077
  always: "always";
10982
11078
  }>>;
10983
11079
  fit: z.ZodOptional<z.ZodEnum<{
10984
- content: "content";
10985
11080
  shrink: "shrink";
11081
+ content: "content";
10986
11082
  }>>;
10987
11083
  editMode: z.ZodOptional<z.ZodEnum<{
10988
11084
  cell: "cell";
@@ -12470,6 +12566,35 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12470
12566
  }>>;
12471
12567
  fitZoom: z.ZodOptional<z.ZodInt>;
12472
12568
  }, z.core.$strict>>;
12569
+ calendar: z.ZodOptional<z.ZodObject<{
12570
+ start: z.ZodString;
12571
+ end: z.ZodOptional<z.ZodString>;
12572
+ title: z.ZodString;
12573
+ colour: z.ZodOptional<z.ZodString>;
12574
+ resource: z.ZodOptional<z.ZodString>;
12575
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
12576
+ day: "day";
12577
+ week: "week";
12578
+ month: "month";
12579
+ agenda: "agenda";
12580
+ }>>>;
12581
+ view: z.ZodOptional<z.ZodEnum<{
12582
+ day: "day";
12583
+ week: "week";
12584
+ month: "month";
12585
+ agenda: "agenda";
12586
+ }>>;
12587
+ opens: z.ZodOptional<z.ZodEnum<{
12588
+ list: "list";
12589
+ calendar: "calendar";
12590
+ }>>;
12591
+ firstDay: z.ZodOptional<z.ZodInt>;
12592
+ hours: z.ZodOptional<z.ZodObject<{
12593
+ start: z.ZodInt;
12594
+ end: z.ZodInt;
12595
+ }, z.core.$strict>>;
12596
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
12597
+ }, z.core.$strict>>;
12473
12598
  cells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
12474
12599
  widget: z.ZodOptional<z.ZodString>;
12475
12600
  options: z.ZodOptional<z.ZodObject<{
@@ -999,6 +999,8 @@ export interface ListNode {
999
999
  actions?: ButtonNode[];
1000
1000
  /** The records on a map, beside the table or instead of it (drawn by @fieldia/map). */
1001
1001
  map?: ListMap;
1002
+ /** The records on a calendar, by day, week or month, a press away from the table (drawn by @fieldia/calendar). */
1003
+ calendar?: ListCalendar;
1002
1004
  /**
1003
1005
  * Each column's cells, by its field: a widget (`dot` for a state, with its
1004
1006
  * options), an icon before the words from another field (a work item's
@@ -1165,6 +1167,41 @@ export interface ListMap {
1165
1167
  /** The closest it comes when it fits its records in view: zoom 16 unless said (a neighbourhood is 14, a street 17). */
1166
1168
  fitZoom?: number;
1167
1169
  }
1170
+ /** The spans a list's calendar shows: a day, a week, a month, or the week as a list of what comes (a phone's). */
1171
+ export type CalendarView = 'day' | 'week' | 'month' | 'agenda';
1172
+ /**
1173
+ * A list's records on a calendar: when each starts and ends, its words, its
1174
+ * colour, and the person or room it is with — a column for each in the day
1175
+ * view. People move a record by dragging it, or with "Move to…" from the
1176
+ * keyboard, and make one by pressing an empty slot.
1177
+ */
1178
+ export interface ListCalendar {
1179
+ /** When each record starts: a date (the record takes the whole day) or a date and time field. */
1180
+ start: string;
1181
+ /** When it ends, a field of the same kind as `start`; with none, a record lasts an hour (a day, for a date) and cannot be stretched. */
1182
+ end?: string;
1183
+ /** The words on each record's block: the patient, the booking's name. */
1184
+ title: string;
1185
+ /** A field whose value colours each record: the same value, the same colour. */
1186
+ colour?: string;
1187
+ /** A field naming who or what each record is with — a doctor, a room: a column for each in the day view. */
1188
+ resource?: string;
1189
+ /** The views offered, in this order: all four unless said. */
1190
+ views?: CalendarView[];
1191
+ /** The view it shows first: the first of `views` unless said (`agenda` on a phone). */
1192
+ view?: CalendarView;
1193
+ /** Whether the list opens on its table (unless said) or on its calendar. */
1194
+ opens?: 'list' | 'calendar';
1195
+ /** The week's first day, 0 Sunday to 6 Saturday: the language's own unless said. */
1196
+ firstDay?: number;
1197
+ /** The hours the day and the week show, from 0 to 24: 8 to 20 unless said; a record outside them stretches them. */
1198
+ hours?: {
1199
+ start: number;
1200
+ end: number;
1201
+ };
1202
+ /** The minutes a drag moves by and an empty slot holds: 15, 30 (unless said) or 60. */
1203
+ slot?: 15 | 30 | 60;
1204
+ }
1168
1205
  /** Anything that can sit inside a section, tab, step or sheet. */
1169
1206
  export type LayoutNode = FieldNode | ButtonNode | TextNode | SlotNode | SectionNode | TabsNode | DividerNode | SpacerNode | ImageNode | FormNode | MapNode;
1170
1207
  /** What a page's `layout` can be: the four page layouts. */
@@ -1307,8 +1344,8 @@ export declare const FieldNodeSchema: z.ZodObject<{
1307
1344
  always: "always";
1308
1345
  }>>;
1309
1346
  fit: z.ZodOptional<z.ZodEnum<{
1310
- content: "content";
1311
1347
  shrink: "shrink";
1348
+ content: "content";
1312
1349
  }>>;
1313
1350
  editMode: z.ZodOptional<z.ZodEnum<{
1314
1351
  cell: "cell";
@@ -2498,8 +2535,8 @@ export declare const LayoutNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2498
2535
  always: "always";
2499
2536
  }>>;
2500
2537
  fit: z.ZodOptional<z.ZodEnum<{
2501
- content: "content";
2502
2538
  shrink: "shrink";
2539
+ content: "content";
2503
2540
  }>>;
2504
2541
  editMode: z.ZodOptional<z.ZodEnum<{
2505
2542
  cell: "cell";
@@ -4133,8 +4170,8 @@ export declare const HeadBandSchema: z.ZodObject<{
4133
4170
  always: "always";
4134
4171
  }>>;
4135
4172
  fit: z.ZodOptional<z.ZodEnum<{
4136
- content: "content";
4137
4173
  shrink: "shrink";
4174
+ content: "content";
4138
4175
  }>>;
4139
4176
  editMode: z.ZodOptional<z.ZodEnum<{
4140
4177
  cell: "cell";
@@ -4907,8 +4944,8 @@ export declare const SheetHeadSchema: z.ZodObject<{
4907
4944
  always: "always";
4908
4945
  }>>;
4909
4946
  fit: z.ZodOptional<z.ZodEnum<{
4910
- content: "content";
4911
4947
  shrink: "shrink";
4948
+ content: "content";
4912
4949
  }>>;
4913
4950
  editMode: z.ZodOptional<z.ZodEnum<{
4914
4951
  cell: "cell";
@@ -5362,8 +5399,8 @@ export declare const SheetHeadSchema: z.ZodObject<{
5362
5399
  always: "always";
5363
5400
  }>>;
5364
5401
  fit: z.ZodOptional<z.ZodEnum<{
5365
- content: "content";
5366
5402
  shrink: "shrink";
5403
+ content: "content";
5367
5404
  }>>;
5368
5405
  editMode: z.ZodOptional<z.ZodEnum<{
5369
5406
  cell: "cell";
@@ -6145,8 +6182,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
6145
6182
  always: "always";
6146
6183
  }>>;
6147
6184
  fit: z.ZodOptional<z.ZodEnum<{
6148
- content: "content";
6149
6185
  shrink: "shrink";
6186
+ content: "content";
6150
6187
  }>>;
6151
6188
  editMode: z.ZodOptional<z.ZodEnum<{
6152
6189
  cell: "cell";
@@ -6600,8 +6637,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
6600
6637
  always: "always";
6601
6638
  }>>;
6602
6639
  fit: z.ZodOptional<z.ZodEnum<{
6603
- content: "content";
6604
6640
  shrink: "shrink";
6641
+ content: "content";
6605
6642
  }>>;
6606
6643
  editMode: z.ZodOptional<z.ZodEnum<{
6607
6644
  cell: "cell";
@@ -7379,8 +7416,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7379
7416
  always: "always";
7380
7417
  }>>;
7381
7418
  fit: z.ZodOptional<z.ZodEnum<{
7382
- content: "content";
7383
7419
  shrink: "shrink";
7420
+ content: "content";
7384
7421
  }>>;
7385
7422
  editMode: z.ZodOptional<z.ZodEnum<{
7386
7423
  cell: "cell";
@@ -7518,8 +7555,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7518
7555
  always: "always";
7519
7556
  }>>;
7520
7557
  fit: z.ZodOptional<z.ZodEnum<{
7521
- content: "content";
7522
7558
  shrink: "shrink";
7559
+ content: "content";
7523
7560
  }>>;
7524
7561
  editMode: z.ZodOptional<z.ZodEnum<{
7525
7562
  cell: "cell";
@@ -7657,8 +7694,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7657
7694
  always: "always";
7658
7695
  }>>;
7659
7696
  fit: z.ZodOptional<z.ZodEnum<{
7660
- content: "content";
7661
7697
  shrink: "shrink";
7698
+ content: "content";
7662
7699
  }>>;
7663
7700
  editMode: z.ZodOptional<z.ZodEnum<{
7664
7701
  cell: "cell";
@@ -7796,8 +7833,8 @@ export declare const SheetNodeSchema: z.ZodObject<{
7796
7833
  always: "always";
7797
7834
  }>>;
7798
7835
  fit: z.ZodOptional<z.ZodEnum<{
7799
- content: "content";
7800
7836
  shrink: "shrink";
7837
+ content: "content";
7801
7838
  }>>;
7802
7839
  editMode: z.ZodOptional<z.ZodEnum<{
7803
7840
  cell: "cell";
@@ -8868,6 +8905,36 @@ export declare const ListMapSchema: z.ZodObject<{
8868
8905
  }>>;
8869
8906
  fitZoom: z.ZodOptional<z.ZodInt>;
8870
8907
  }, z.z.core.$strict>;
8908
+ /** A list's records on a calendar: when each starts and ends, its words, its colour, its person or room, the views, the first day and the hours. */
8909
+ export declare const ListCalendarSchema: z.ZodObject<{
8910
+ start: z.ZodString;
8911
+ end: z.ZodOptional<z.ZodString>;
8912
+ title: z.ZodString;
8913
+ colour: z.ZodOptional<z.ZodString>;
8914
+ resource: z.ZodOptional<z.ZodString>;
8915
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
8916
+ day: "day";
8917
+ week: "week";
8918
+ month: "month";
8919
+ agenda: "agenda";
8920
+ }>>>;
8921
+ view: z.ZodOptional<z.ZodEnum<{
8922
+ day: "day";
8923
+ week: "week";
8924
+ month: "month";
8925
+ agenda: "agenda";
8926
+ }>>;
8927
+ opens: z.ZodOptional<z.ZodEnum<{
8928
+ list: "list";
8929
+ calendar: "calendar";
8930
+ }>>;
8931
+ firstDay: z.ZodOptional<z.ZodInt>;
8932
+ hours: z.ZodOptional<z.ZodObject<{
8933
+ start: z.ZodInt;
8934
+ end: z.ZodInt;
8935
+ }, z.z.core.$strict>>;
8936
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
8937
+ }, z.z.core.$strict>;
8871
8938
  /** A list column's cells: a widget, an icon from another field, a width in characters or pixels, a side, its header's rule. */
8872
8939
  export declare const ListCellSchema: z.ZodObject<{
8873
8940
  widget: z.ZodOptional<z.ZodString>;
@@ -9211,6 +9278,35 @@ export declare const ListNodeSchema: z.ZodObject<{
9211
9278
  }>>;
9212
9279
  fitZoom: z.ZodOptional<z.ZodInt>;
9213
9280
  }, z.z.core.$strict>>;
9281
+ calendar: z.ZodOptional<z.ZodObject<{
9282
+ start: z.ZodString;
9283
+ end: z.ZodOptional<z.ZodString>;
9284
+ title: z.ZodString;
9285
+ colour: z.ZodOptional<z.ZodString>;
9286
+ resource: z.ZodOptional<z.ZodString>;
9287
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
9288
+ day: "day";
9289
+ week: "week";
9290
+ month: "month";
9291
+ agenda: "agenda";
9292
+ }>>>;
9293
+ view: z.ZodOptional<z.ZodEnum<{
9294
+ day: "day";
9295
+ week: "week";
9296
+ month: "month";
9297
+ agenda: "agenda";
9298
+ }>>;
9299
+ opens: z.ZodOptional<z.ZodEnum<{
9300
+ list: "list";
9301
+ calendar: "calendar";
9302
+ }>>;
9303
+ firstDay: z.ZodOptional<z.ZodInt>;
9304
+ hours: z.ZodOptional<z.ZodObject<{
9305
+ start: z.ZodInt;
9306
+ end: z.ZodInt;
9307
+ }, z.z.core.$strict>>;
9308
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
9309
+ }, z.z.core.$strict>>;
9214
9310
  cells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
9215
9311
  widget: z.ZodOptional<z.ZodString>;
9216
9312
  options: z.ZodOptional<z.ZodObject<{
@@ -9330,8 +9426,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9330
9426
  always: "always";
9331
9427
  }>>;
9332
9428
  fit: z.ZodOptional<z.ZodEnum<{
9333
- content: "content";
9334
9429
  shrink: "shrink";
9430
+ content: "content";
9335
9431
  }>>;
9336
9432
  editMode: z.ZodOptional<z.ZodEnum<{
9337
9433
  cell: "cell";
@@ -9785,8 +9881,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9785
9881
  always: "always";
9786
9882
  }>>;
9787
9883
  fit: z.ZodOptional<z.ZodEnum<{
9788
- content: "content";
9789
9884
  shrink: "shrink";
9885
+ content: "content";
9790
9886
  }>>;
9791
9887
  editMode: z.ZodOptional<z.ZodEnum<{
9792
9888
  cell: "cell";
@@ -10564,8 +10660,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10564
10660
  always: "always";
10565
10661
  }>>;
10566
10662
  fit: z.ZodOptional<z.ZodEnum<{
10567
- content: "content";
10568
10663
  shrink: "shrink";
10664
+ content: "content";
10569
10665
  }>>;
10570
10666
  editMode: z.ZodOptional<z.ZodEnum<{
10571
10667
  cell: "cell";
@@ -10703,8 +10799,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10703
10799
  always: "always";
10704
10800
  }>>;
10705
10801
  fit: z.ZodOptional<z.ZodEnum<{
10706
- content: "content";
10707
10802
  shrink: "shrink";
10803
+ content: "content";
10708
10804
  }>>;
10709
10805
  editMode: z.ZodOptional<z.ZodEnum<{
10710
10806
  cell: "cell";
@@ -10842,8 +10938,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10842
10938
  always: "always";
10843
10939
  }>>;
10844
10940
  fit: z.ZodOptional<z.ZodEnum<{
10845
- content: "content";
10846
10941
  shrink: "shrink";
10942
+ content: "content";
10847
10943
  }>>;
10848
10944
  editMode: z.ZodOptional<z.ZodEnum<{
10849
10945
  cell: "cell";
@@ -10981,8 +11077,8 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10981
11077
  always: "always";
10982
11078
  }>>;
10983
11079
  fit: z.ZodOptional<z.ZodEnum<{
10984
- content: "content";
10985
11080
  shrink: "shrink";
11081
+ content: "content";
10986
11082
  }>>;
10987
11083
  editMode: z.ZodOptional<z.ZodEnum<{
10988
11084
  cell: "cell";
@@ -12470,6 +12566,35 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12470
12566
  }>>;
12471
12567
  fitZoom: z.ZodOptional<z.ZodInt>;
12472
12568
  }, z.z.core.$strict>>;
12569
+ calendar: z.ZodOptional<z.ZodObject<{
12570
+ start: z.ZodString;
12571
+ end: z.ZodOptional<z.ZodString>;
12572
+ title: z.ZodString;
12573
+ colour: z.ZodOptional<z.ZodString>;
12574
+ resource: z.ZodOptional<z.ZodString>;
12575
+ views: z.ZodOptional<z.ZodArray<z.ZodEnum<{
12576
+ day: "day";
12577
+ week: "week";
12578
+ month: "month";
12579
+ agenda: "agenda";
12580
+ }>>>;
12581
+ view: z.ZodOptional<z.ZodEnum<{
12582
+ day: "day";
12583
+ week: "week";
12584
+ month: "month";
12585
+ agenda: "agenda";
12586
+ }>>;
12587
+ opens: z.ZodOptional<z.ZodEnum<{
12588
+ list: "list";
12589
+ calendar: "calendar";
12590
+ }>>;
12591
+ firstDay: z.ZodOptional<z.ZodInt>;
12592
+ hours: z.ZodOptional<z.ZodObject<{
12593
+ start: z.ZodInt;
12594
+ end: z.ZodInt;
12595
+ }, z.z.core.$strict>>;
12596
+ slot: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<15>, z.ZodLiteral<30>, z.ZodLiteral<60>]>>;
12597
+ }, z.z.core.$strict>>;
12473
12598
  cells: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
12474
12599
  widget: z.ZodOptional<z.ZodString>;
12475
12600
  options: z.ZodOptional<z.ZodObject<{