@knkcs/contenthub-ui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -64,6 +64,8 @@ export declare interface BlueprintEditingOverride {
64
64
  editingMode: EditingMode | null;
65
65
  /** null follows the workspace's. */
66
66
  editingBlock: boolean | null;
67
+ /** The people beside the admins; null follows the workspace's, [] is the admins alone. */
68
+ forceGroup: string[] | null;
67
69
  /** What applies to the Blueprint's Content: this override over the workspace's. */
68
70
  effective: EditingSettings;
69
71
  }
@@ -166,6 +168,13 @@ export declare interface BranchEditorProps {
166
168
  /** What a Branch is for: one an editor works on, or a Carry-forward link. */
167
169
  export declare type BranchKind = "editorial" | "carry_forward";
168
170
 
171
+ /** Whether a Direct Edit's change carries forward into one later wording (#270). */
172
+ export declare interface CarryForwardAnswer {
173
+ /** The later wording: the Release a Carry-forward link carries. */
174
+ releaseId: string;
175
+ carry: boolean;
176
+ }
177
+
169
178
  /** What a Chain on Dated Content, effective on a date, would be and meet (PreviewChain). */
170
179
  export declare interface ChainPreview {
171
180
  /** The Release it would fork from; "" in a gap. */
@@ -509,6 +518,8 @@ export declare interface ContentAttributes {
509
518
  block?: ContentBlock;
510
519
  /** When it was archived, ISO 8601; absent while it is not Archived. */
511
520
  archiveTime?: string;
521
+ /** Its Editing Block; absent while no open Direct Edit holds one. */
522
+ editingBlock?: EditingBlock;
512
523
  }
513
524
 
514
525
  /**
@@ -822,6 +833,8 @@ export declare interface ContenthubClient {
822
833
  blueprintAccessor: string;
823
834
  editingMode: EditingMode | null;
824
835
  editingBlock: boolean | null;
836
+ /** null follows the workspace's; [] is the admins alone. */
837
+ forceGroup: string[] | null;
825
838
  }): Promise<BlueprintEditingOverride>;
826
839
  /** Removes one Blueprint's override, so it follows the workspace's; admin only. */
827
840
  deleteBlueprintEditingOverride(input: {
@@ -1086,11 +1099,20 @@ export declare interface ContenthubClient {
1086
1099
  * or answers the one the caller has open on it, with `reopened`. Answers
1087
1100
  * the Direct Edit and the Content as read on its Branch. Rejects with
1088
1101
  * `EditingModeRefusedError` where the Editing Mode is "Change Sets only",
1089
- * `DirectEditRefusedError` where the Content is Dated, `ContentBlockedError`, `ContentArchivedError`,
1090
- * and `InvalidInputError` for anything else the service refuses.
1102
+ * `DirectEditRefusedError` where another editor's Direct Edit holds its
1103
+ * Editing Block (naming them), `ContentBlockedError`, `ContentArchivedError`,
1104
+ * and `InvalidInputError` for anything else the service refuses (a day
1105
+ * for undated Content among it).
1091
1106
  */
1092
1107
  openDirectEdit(input: {
1093
1108
  contentId: string;
1109
+ /**
1110
+ * Dated Content only (#270): the day the change takes effect, as
1111
+ * YYYY-MM-DD; absent is today. Its Branch forks from the Release In
1112
+ * Force that day: on today it corrects that Release, on a later day
1113
+ * it is a new wording.
1114
+ */
1115
+ effectiveOn?: string;
1094
1116
  /** Makes a retry safe (CONTEXT.md, Idempotency Key). */
1095
1117
  idempotencyKey?: string;
1096
1118
  }): Promise<{
@@ -1098,17 +1120,63 @@ export declare interface ContenthubClient {
1098
1120
  content: Content;
1099
1121
  reopened: boolean;
1100
1122
  }>;
1123
+ /**
1124
+ * What a Direct Edit's Publish of Dated Content would plan (#270): its
1125
+ * Release's Validity Period with `validityLastDay` as Publish takes it,
1126
+ * the Release it corrects, the date-only Releases contenthub derives and
1127
+ * the later wordings Publish asks about. Writes nothing. Rejects with
1128
+ * `CoversReleaseError` (`changeSetRequired`) when the period would cover
1129
+ * a Release entirely.
1130
+ */
1131
+ previewDirectEditPublish(input: {
1132
+ id: string;
1133
+ validityLastDay?: string;
1134
+ }): Promise<DirectEditPublishPreview>;
1101
1135
  /**
1102
1136
  * Publishes a Direct Edit at `expectedHeadId`, the head of its Branch the
1103
- * editor saw: one Release, In Force from its Publish. Rejects as
1104
- * `publish` does, and with `DirectEditRefusedError` for a Change Set that
1105
- * is not a Direct Edit.
1137
+ * editor saw: one Release, In Force from its Publish, carrying
1138
+ * `releaseSpec`. Rejects as `publish` does, with `ContentRefusedError`
1139
+ * for Release Spec values the Blueprint Release refuses (a required one
1140
+ * missing among them), and with `DirectEditRefusedError` for a Change
1141
+ * Set that is not a Direct Edit. On Dated Content (#270) it takes the
1142
+ * Validity Period's last day and one carry-forward answer per later
1143
+ * wording, and rejects with `CoversReleaseError` (`changeSetRequired`)
1144
+ * when the period would cover a Release entirely.
1106
1145
  */
1107
1146
  publishDirectEdit(input: {
1108
1147
  id: string;
1109
1148
  expectedHeadId: string;
1149
+ /** The Release's Release Spec values; absent is none. */
1150
+ releaseSpec?: Record<string, unknown>;
1151
+ /** Dated Content: the period's last day, "" for an open end; absent keeps the default. */
1152
+ validityLastDay?: string;
1153
+ /** Dated Content: whether the change carries into each later wording. */
1154
+ carryForward?: CarryForwardAnswer[];
1110
1155
  idempotencyKey?: string;
1111
1156
  }): Promise<PublishOutcome>;
1157
+ /**
1158
+ * Saves on a Direct Edit's Branch on top of `expectedHeadId`, as
1159
+ * `saveRevision` does, and publishes the Revision saved, as
1160
+ * `publishDirectEdit` does, in one request (ADR 0022). Refused as a
1161
+ * whole, with nothing saved: rejects as either does (`StaleHeadError`,
1162
+ * `ContentRefusedError` for the data or the Release Spec values,
1163
+ * `PublishRefusedError` with every blocker).
1164
+ */
1165
+ saveAndPublishDirectEdit(input: {
1166
+ id: string;
1167
+ expectedHeadId: string;
1168
+ data: Record<string, unknown>;
1169
+ /** Top-level field accessors; absent saves `data` as the whole Revision. */
1170
+ fieldMask?: string[];
1171
+ releaseSpec?: Record<string, unknown>;
1172
+ /** As `publishDirectEdit`'s. */
1173
+ validityLastDay?: string;
1174
+ carryForward?: CarryForwardAnswer[];
1175
+ idempotencyKey?: string;
1176
+ }): Promise<{
1177
+ content: Content;
1178
+ outcome: PublishOutcome;
1179
+ }>;
1112
1180
  /**
1113
1181
  * Discards a Direct Edit: its work is dropped, Main and the Releases stay.
1114
1182
  * Rejects as `discardChangeSet` does, and with `DirectEditRefusedError`
@@ -1118,6 +1186,23 @@ export declare interface ContenthubClient {
1118
1186
  id: string;
1119
1187
  idempotencyKey?: string;
1120
1188
  }): Promise<ChangeSet>;
1189
+ /**
1190
+ * Forces an Editing Block (ADR 0022): hands the Direct Edit `id` holding
1191
+ * it, with its work and its Editing Block, to the caller. Answers it with
1192
+ * the caller as its editor, the Content as read on its Branch, and who
1193
+ * edited it until now. Rejects with `AccessDeniedError` outside the
1194
+ * Force Group, `DirectEditRefusedError` where the caller has a Direct
1195
+ * Edit of the Content of their own or it holds no Editing Block any more,
1196
+ * and as `discardDirectEdit` does otherwise.
1197
+ */
1198
+ forceDirectEdit(input: {
1199
+ id: string;
1200
+ idempotencyKey?: string;
1201
+ }): Promise<{
1202
+ changeSet: ChangeSet;
1203
+ content: Content;
1204
+ previousEditorId: string;
1205
+ }>;
1121
1206
  startEditing(input: {
1122
1207
  contentId: string;
1123
1208
  changeSetId?: string;
@@ -1422,6 +1507,7 @@ export declare const contenthubTranslations: {
1422
1507
  mode: string;
1423
1508
  block: string;
1424
1509
  actions: string;
1510
+ force: string;
1425
1511
  };
1426
1512
  fromWorkspace: string;
1427
1513
  createOverride: string;
@@ -1451,6 +1537,11 @@ export declare const contenthubTranslations: {
1451
1537
  save: string;
1452
1538
  denied: string;
1453
1539
  failed: string;
1540
+ force: string;
1541
+ forceHelp: string;
1542
+ forcePeople: string;
1543
+ forceNobody: string;
1544
+ forceOwn: string;
1454
1545
  };
1455
1546
  removeDialog: {
1456
1547
  title: string;
@@ -1458,6 +1549,10 @@ export declare const contenthubTranslations: {
1458
1549
  confirm: string;
1459
1550
  failed: string;
1460
1551
  };
1552
+ force: {
1553
+ adminsOnly: string;
1554
+ adminsAnd: string;
1555
+ };
1461
1556
  };
1462
1557
  requiredChecks: {
1463
1558
  create: string;
@@ -2379,6 +2474,18 @@ export declare const contenthubTranslations: {
2379
2474
  message: string;
2380
2475
  confirm: string;
2381
2476
  };
2477
+ editingBlock: {
2478
+ beingEdited: string;
2479
+ force: string;
2480
+ forceConfirm: {
2481
+ title: string;
2482
+ message: string;
2483
+ confirm: string;
2484
+ failed: string;
2485
+ denied: string;
2486
+ };
2487
+ forced: string;
2488
+ };
2382
2489
  directEdit: {
2383
2490
  unpublished: string;
2384
2491
  continue: string;
@@ -2423,13 +2530,64 @@ export declare const contenthubTranslations: {
2423
2530
  refused_one: string;
2424
2531
  refused_other: string;
2425
2532
  refusedBecause: {
2426
- dated_content: string;
2427
2533
  one_branch: string;
2428
2534
  not_a_direct_edit: string;
2535
+ editing_blocked: string;
2536
+ not_the_editor: string;
2537
+ own_direct_edit: string;
2538
+ no_editing_block: string;
2429
2539
  unknown: string;
2430
2540
  };
2541
+ updateFromMain: string;
2542
+ resolveMerge: string;
2543
+ behind: {
2544
+ title: string;
2545
+ message: string;
2546
+ };
2547
+ pendingMerge: {
2548
+ title: string;
2549
+ message: string;
2550
+ };
2431
2551
  saveFirst: string;
2432
2552
  changeSetsOnly: string;
2553
+ saveAndPublish: string;
2554
+ publishDialog: {
2555
+ title: string;
2556
+ publishHint: string;
2557
+ saveAndPublishHint: string;
2558
+ specHint: string;
2559
+ refusedValues_one: string;
2560
+ refusedValues_other: string;
2561
+ datedPublishHint: string;
2562
+ datedSaveAndPublishHint: string;
2563
+ period: string;
2564
+ correction: string;
2565
+ newWording: string;
2566
+ firstDay: string;
2567
+ lastDay: string;
2568
+ lastDayHelp: string;
2569
+ computed: string;
2570
+ computedHint: string;
2571
+ computedRow: string;
2572
+ noComputed: string;
2573
+ carryForward: string;
2574
+ carryForwardHint: string;
2575
+ wording: string;
2576
+ wordingUntil: string;
2577
+ carryYes: string;
2578
+ carryNo: string;
2579
+ unanswered: string;
2580
+ previewFailed: string;
2581
+ covers: string;
2582
+ };
2583
+ effective: {
2584
+ title: string;
2585
+ hint: string;
2586
+ label: string;
2587
+ help: string;
2588
+ required: string;
2589
+ submit: string;
2590
+ };
2433
2591
  };
2434
2592
  };
2435
2593
  };
@@ -2504,6 +2662,7 @@ export declare const contenthubTranslations: {
2504
2662
  mode: string;
2505
2663
  block: string;
2506
2664
  actions: string;
2665
+ force: string;
2507
2666
  };
2508
2667
  fromWorkspace: string;
2509
2668
  createOverride: string;
@@ -2533,6 +2692,11 @@ export declare const contenthubTranslations: {
2533
2692
  save: string;
2534
2693
  denied: string;
2535
2694
  failed: string;
2695
+ force: string;
2696
+ forceHelp: string;
2697
+ forcePeople: string;
2698
+ forceNobody: string;
2699
+ forceOwn: string;
2536
2700
  };
2537
2701
  removeDialog: {
2538
2702
  title: string;
@@ -2540,6 +2704,10 @@ export declare const contenthubTranslations: {
2540
2704
  confirm: string;
2541
2705
  failed: string;
2542
2706
  };
2707
+ force: {
2708
+ adminsOnly: string;
2709
+ adminsAnd: string;
2710
+ };
2543
2711
  };
2544
2712
  requiredChecks: {
2545
2713
  create: string;
@@ -3461,6 +3629,18 @@ export declare const contenthubTranslations: {
3461
3629
  message: string;
3462
3630
  confirm: string;
3463
3631
  };
3632
+ editingBlock: {
3633
+ beingEdited: string;
3634
+ force: string;
3635
+ forceConfirm: {
3636
+ title: string;
3637
+ message: string;
3638
+ confirm: string;
3639
+ failed: string;
3640
+ denied: string;
3641
+ };
3642
+ forced: string;
3643
+ };
3464
3644
  directEdit: {
3465
3645
  unpublished: string;
3466
3646
  continue: string;
@@ -3505,13 +3685,64 @@ export declare const contenthubTranslations: {
3505
3685
  refused_one: string;
3506
3686
  refused_other: string;
3507
3687
  refusedBecause: {
3508
- dated_content: string;
3509
3688
  one_branch: string;
3510
3689
  not_a_direct_edit: string;
3690
+ editing_blocked: string;
3691
+ not_the_editor: string;
3692
+ own_direct_edit: string;
3693
+ no_editing_block: string;
3511
3694
  unknown: string;
3512
3695
  };
3696
+ updateFromMain: string;
3697
+ resolveMerge: string;
3698
+ behind: {
3699
+ title: string;
3700
+ message: string;
3701
+ };
3702
+ pendingMerge: {
3703
+ title: string;
3704
+ message: string;
3705
+ };
3513
3706
  saveFirst: string;
3514
3707
  changeSetsOnly: string;
3708
+ saveAndPublish: string;
3709
+ publishDialog: {
3710
+ title: string;
3711
+ publishHint: string;
3712
+ saveAndPublishHint: string;
3713
+ specHint: string;
3714
+ refusedValues_one: string;
3715
+ refusedValues_other: string;
3716
+ datedPublishHint: string;
3717
+ datedSaveAndPublishHint: string;
3718
+ period: string;
3719
+ correction: string;
3720
+ newWording: string;
3721
+ firstDay: string;
3722
+ lastDay: string;
3723
+ lastDayHelp: string;
3724
+ computed: string;
3725
+ computedHint: string;
3726
+ computedRow: string;
3727
+ noComputed: string;
3728
+ carryForward: string;
3729
+ carryForwardHint: string;
3730
+ wording: string;
3731
+ wordingUntil: string;
3732
+ carryYes: string;
3733
+ carryNo: string;
3734
+ unanswered: string;
3735
+ previewFailed: string;
3736
+ covers: string;
3737
+ };
3738
+ effective: {
3739
+ title: string;
3740
+ hint: string;
3741
+ label: string;
3742
+ help: string;
3743
+ required: string;
3744
+ submit: string;
3745
+ };
3515
3746
  };
3516
3747
  };
3517
3748
  };
@@ -3697,14 +3928,35 @@ export declare interface DirectEditPageProps {
3697
3928
  onDiscarded?: (changeSetId: string) => void;
3698
3929
  }
3699
3930
 
3931
+ /**
3932
+ * What a Direct Edit's Publish of Dated Content would plan (#270), for its
3933
+ * Publish dialog: nothing of it is written.
3934
+ */
3935
+ export declare interface DirectEditPublishPreview {
3936
+ /** Its Release's Validity Period; an empty last day is an open end. */
3937
+ validityPeriod?: ValidityPeriod;
3938
+ /** The Release it corrects and Supersedes; "" for a new wording. */
3939
+ correctsReleaseId: string;
3940
+ /** The date-only Releases contenthub derives, read-only. */
3941
+ dateOnlyReleases: PlannedRelease[];
3942
+ /** The later wordings Publish asks about, by first day. */
3943
+ laterWordings: LaterWording[];
3944
+ }
3945
+
3700
3946
  /** Why contenthub refused a Direct Edit (`DirectEditRefusedError.reason`). */
3701
3947
  export declare type DirectEditRefusal =
3702
- /** The Content is Dated, which a Direct Edit can't take yet. */
3703
- "dated_content"
3704
3948
  /** A Direct Edit takes no second Chain, Branch, dependency or Source. */
3705
- | "one_branch"
3949
+ "one_branch"
3706
3950
  /** The Change Set named is not a Direct Edit. */
3707
3951
  | "not_a_direct_edit"
3952
+ /** Another editor's Direct Edit holds the Content's Editing Block. */
3953
+ | "editing_blocked"
3954
+ /** The Direct Edit is someone else's: `editorId` names them. */
3955
+ | "not_the_editor"
3956
+ /** Force by a caller who has a Direct Edit of the Content of their own. */
3957
+ | "own_direct_edit"
3958
+ /** Force of a Direct Edit that holds no Editing Block any more. */
3959
+ | "no_editing_block"
3708
3960
  /** A reason this build doesn't know. */
3709
3961
  | "unknown";
3710
3962
 
@@ -3716,7 +3968,12 @@ export declare class DirectEditRefusedError extends Error {
3716
3968
  readonly reason: DirectEditRefusal;
3717
3969
  /** The Content it is about; "" where the refusal names none. */
3718
3970
  readonly contentId: string;
3719
- constructor(reason: DirectEditRefusal, message: string, contentId?: string);
3971
+ /**
3972
+ * For `editing_blocked`: the editor holding the Editing Block; for
3973
+ * `not_the_editor`: the Direct Edit's editor; "" otherwise.
3974
+ */
3975
+ readonly editorId: string;
3976
+ constructor(reason: DirectEditRefusal, message: string, contentId?: string, editorId?: string);
3720
3977
  }
3721
3978
 
3722
3979
  /** One edge of one Revision. */
@@ -3737,6 +3994,21 @@ export declare interface Edge {
3737
3994
  /** What kind of edge of the Content Graph (ADR 0009). */
3738
3995
  export declare type EdgeKind = "reference" | "toc" | "include" | "exclude" | "replace" | "annotate" | "link" | "footnote" | "anchor" | "media" | "blueprint" | "unspecified";
3739
3996
 
3997
+ /**
3998
+ * The Block a Direct Edit sets on its Content (CONTEXT.md, Editing Block):
3999
+ * "being edited by" its editor. It keeps out only other editors' Direct
4000
+ * Edits, ends with its Direct Edit's Publish or Discard, and can't be
4001
+ * lifted. It is independent of `block`: a Content can hold both.
4002
+ */
4003
+ export declare interface EditingBlock {
4004
+ /** The Direct Edit's editor, an odon user id. */
4005
+ editorId: string;
4006
+ /** The Direct Edit holding it. */
4007
+ changeSetId: string;
4008
+ /** ISO 8601. */
4009
+ blockTime: string;
4010
+ }
4011
+
3740
4012
  /**
3741
4013
  * Which ways of changing a Blueprint's Content the workspace offers (ADR
3742
4014
  * 0022, CONTEXT.md Editing Mode): Direct Edits only, Change Sets only, or
@@ -3762,6 +4034,12 @@ export declare interface EditingSettings {
3762
4034
  editingMode: EditingMode;
3763
4035
  /** Whether opening a Direct Edit sets an Editing Block on its Content. */
3764
4036
  editingBlock: boolean;
4037
+ /**
4038
+ * The Force Group: who may force an Editing Block (ADR 0022). The
4039
+ * workspace's admins always may; these are the people beside them, by
4040
+ * odon user id, sorted. Empty is the admins alone.
4041
+ */
4042
+ forceGroup: string[];
3765
4043
  }
3766
4044
 
3767
4045
  /** The editing settings in effect for one Blueprint, and which its override decides. */
@@ -3769,6 +4047,13 @@ export declare interface EffectiveEditingSettings {
3769
4047
  effective: EditingSettings;
3770
4048
  editingModeOverridden: boolean;
3771
4049
  editingBlockOverridden: boolean;
4050
+ forceGroupOverridden: boolean;
4051
+ /**
4052
+ * Whether the caller is in the effective Force Group: an admin, or named
4053
+ * by it. It is how a screen knows to offer Force (#269); the service
4054
+ * asks the same when it is used.
4055
+ */
4056
+ callerInForceGroup: boolean;
3772
4057
  }
3773
4058
 
3774
4059
  /** One field that differs between two Revisions. */
@@ -3883,6 +4168,7 @@ export declare const i18nResources: {
3883
4168
  mode: string;
3884
4169
  block: string;
3885
4170
  actions: string;
4171
+ force: string;
3886
4172
  };
3887
4173
  fromWorkspace: string;
3888
4174
  createOverride: string;
@@ -3912,6 +4198,11 @@ export declare const i18nResources: {
3912
4198
  save: string;
3913
4199
  denied: string;
3914
4200
  failed: string;
4201
+ force: string;
4202
+ forceHelp: string;
4203
+ forcePeople: string;
4204
+ forceNobody: string;
4205
+ forceOwn: string;
3915
4206
  };
3916
4207
  removeDialog: {
3917
4208
  title: string;
@@ -3919,6 +4210,10 @@ export declare const i18nResources: {
3919
4210
  confirm: string;
3920
4211
  failed: string;
3921
4212
  };
4213
+ force: {
4214
+ adminsOnly: string;
4215
+ adminsAnd: string;
4216
+ };
3922
4217
  };
3923
4218
  requiredChecks: {
3924
4219
  create: string;
@@ -4840,6 +5135,18 @@ export declare const i18nResources: {
4840
5135
  message: string;
4841
5136
  confirm: string;
4842
5137
  };
5138
+ editingBlock: {
5139
+ beingEdited: string;
5140
+ force: string;
5141
+ forceConfirm: {
5142
+ title: string;
5143
+ message: string;
5144
+ confirm: string;
5145
+ failed: string;
5146
+ denied: string;
5147
+ };
5148
+ forced: string;
5149
+ };
4843
5150
  directEdit: {
4844
5151
  unpublished: string;
4845
5152
  continue: string;
@@ -4884,13 +5191,64 @@ export declare const i18nResources: {
4884
5191
  refused_one: string;
4885
5192
  refused_other: string;
4886
5193
  refusedBecause: {
4887
- dated_content: string;
4888
5194
  one_branch: string;
4889
5195
  not_a_direct_edit: string;
5196
+ editing_blocked: string;
5197
+ not_the_editor: string;
5198
+ own_direct_edit: string;
5199
+ no_editing_block: string;
4890
5200
  unknown: string;
4891
5201
  };
5202
+ updateFromMain: string;
5203
+ resolveMerge: string;
5204
+ behind: {
5205
+ title: string;
5206
+ message: string;
5207
+ };
5208
+ pendingMerge: {
5209
+ title: string;
5210
+ message: string;
5211
+ };
4892
5212
  saveFirst: string;
4893
5213
  changeSetsOnly: string;
5214
+ saveAndPublish: string;
5215
+ publishDialog: {
5216
+ title: string;
5217
+ publishHint: string;
5218
+ saveAndPublishHint: string;
5219
+ specHint: string;
5220
+ refusedValues_one: string;
5221
+ refusedValues_other: string;
5222
+ datedPublishHint: string;
5223
+ datedSaveAndPublishHint: string;
5224
+ period: string;
5225
+ correction: string;
5226
+ newWording: string;
5227
+ firstDay: string;
5228
+ lastDay: string;
5229
+ lastDayHelp: string;
5230
+ computed: string;
5231
+ computedHint: string;
5232
+ computedRow: string;
5233
+ noComputed: string;
5234
+ carryForward: string;
5235
+ carryForwardHint: string;
5236
+ wording: string;
5237
+ wordingUntil: string;
5238
+ carryYes: string;
5239
+ carryNo: string;
5240
+ unanswered: string;
5241
+ previewFailed: string;
5242
+ covers: string;
5243
+ };
5244
+ effective: {
5245
+ title: string;
5246
+ hint: string;
5247
+ label: string;
5248
+ help: string;
5249
+ required: string;
5250
+ submit: string;
5251
+ };
4894
5252
  };
4895
5253
  };
4896
5254
  };
@@ -4965,6 +5323,7 @@ export declare const i18nResources: {
4965
5323
  mode: string;
4966
5324
  block: string;
4967
5325
  actions: string;
5326
+ force: string;
4968
5327
  };
4969
5328
  fromWorkspace: string;
4970
5329
  createOverride: string;
@@ -4994,6 +5353,11 @@ export declare const i18nResources: {
4994
5353
  save: string;
4995
5354
  denied: string;
4996
5355
  failed: string;
5356
+ force: string;
5357
+ forceHelp: string;
5358
+ forcePeople: string;
5359
+ forceNobody: string;
5360
+ forceOwn: string;
4997
5361
  };
4998
5362
  removeDialog: {
4999
5363
  title: string;
@@ -5001,6 +5365,10 @@ export declare const i18nResources: {
5001
5365
  confirm: string;
5002
5366
  failed: string;
5003
5367
  };
5368
+ force: {
5369
+ adminsOnly: string;
5370
+ adminsAnd: string;
5371
+ };
5004
5372
  };
5005
5373
  requiredChecks: {
5006
5374
  create: string;
@@ -5922,6 +6290,18 @@ export declare const i18nResources: {
5922
6290
  message: string;
5923
6291
  confirm: string;
5924
6292
  };
6293
+ editingBlock: {
6294
+ beingEdited: string;
6295
+ force: string;
6296
+ forceConfirm: {
6297
+ title: string;
6298
+ message: string;
6299
+ confirm: string;
6300
+ failed: string;
6301
+ denied: string;
6302
+ };
6303
+ forced: string;
6304
+ };
5925
6305
  directEdit: {
5926
6306
  unpublished: string;
5927
6307
  continue: string;
@@ -5966,13 +6346,64 @@ export declare const i18nResources: {
5966
6346
  refused_one: string;
5967
6347
  refused_other: string;
5968
6348
  refusedBecause: {
5969
- dated_content: string;
5970
6349
  one_branch: string;
5971
6350
  not_a_direct_edit: string;
6351
+ editing_blocked: string;
6352
+ not_the_editor: string;
6353
+ own_direct_edit: string;
6354
+ no_editing_block: string;
5972
6355
  unknown: string;
5973
6356
  };
6357
+ updateFromMain: string;
6358
+ resolveMerge: string;
6359
+ behind: {
6360
+ title: string;
6361
+ message: string;
6362
+ };
6363
+ pendingMerge: {
6364
+ title: string;
6365
+ message: string;
6366
+ };
5974
6367
  saveFirst: string;
5975
6368
  changeSetsOnly: string;
6369
+ saveAndPublish: string;
6370
+ publishDialog: {
6371
+ title: string;
6372
+ publishHint: string;
6373
+ saveAndPublishHint: string;
6374
+ specHint: string;
6375
+ refusedValues_one: string;
6376
+ refusedValues_other: string;
6377
+ datedPublishHint: string;
6378
+ datedSaveAndPublishHint: string;
6379
+ period: string;
6380
+ correction: string;
6381
+ newWording: string;
6382
+ firstDay: string;
6383
+ lastDay: string;
6384
+ lastDayHelp: string;
6385
+ computed: string;
6386
+ computedHint: string;
6387
+ computedRow: string;
6388
+ noComputed: string;
6389
+ carryForward: string;
6390
+ carryForwardHint: string;
6391
+ wording: string;
6392
+ wordingUntil: string;
6393
+ carryYes: string;
6394
+ carryNo: string;
6395
+ unanswered: string;
6396
+ previewFailed: string;
6397
+ covers: string;
6398
+ };
6399
+ effective: {
6400
+ title: string;
6401
+ hint: string;
6402
+ label: string;
6403
+ help: string;
6404
+ required: string;
6405
+ submit: string;
6406
+ };
5976
6407
  };
5977
6408
  };
5978
6409
  };
@@ -5983,6 +6414,12 @@ export declare class InvalidInputError extends Error {
5983
6414
  constructor(message: string);
5984
6415
  }
5985
6416
 
6417
+ /** A later wording a Direct Edit's change may carry into (#270). */
6418
+ export declare interface LaterWording {
6419
+ releaseId: string;
6420
+ validityPeriod?: ValidityPeriod;
6421
+ }
6422
+
5986
6423
  /**
5987
6424
  * The port a host fills with mediahub (ADR 0020), in fieldkit's
5988
6425
  * media-adapter shape: a media field's picker browses and uploads through