@formicoidea/labre-core 0.45.0 → 0.46.1

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 (73) hide show
  1. package/dist/_pkgs/affine-block-callout/commands/turn-callout-into.d.ts +43 -0
  2. package/dist/_pkgs/affine-block-callout/commands/turn-callout-into.js +109 -0
  3. package/dist/_pkgs/affine-block-callout/commands/turn-into-callout.d.ts +1 -1
  4. package/dist/_pkgs/affine-block-callout/commands/turn-into-callout.js +1 -1
  5. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +4 -2
  6. package/dist/_pkgs/affine-block-callout/configs/toolbar.d.ts +65 -0
  7. package/dist/_pkgs/affine-block-callout/configs/toolbar.js +178 -0
  8. package/dist/_pkgs/affine-block-callout/view.d.ts +30 -1
  9. package/dist/_pkgs/affine-block-callout/view.js +45 -3
  10. package/dist/_pkgs/affine-block-code/code-toolbar/components/lang-button.js +1 -1
  11. package/dist/_pkgs/affine-block-frame/commands.d.ts +27 -0
  12. package/dist/_pkgs/affine-block-frame/commands.js +49 -0
  13. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +11 -6
  14. package/dist/_pkgs/affine-block-frame/frame-manager.js +10 -5
  15. package/dist/_pkgs/affine-block-frame/frame-order.d.ts +43 -0
  16. package/dist/_pkgs/affine-block-frame/frame-order.js +93 -0
  17. package/dist/_pkgs/affine-block-frame/index.d.ts +2 -0
  18. package/dist/_pkgs/affine-block-frame/index.js +2 -0
  19. package/dist/_pkgs/affine-block-frame/present/frame-order-menu.d.ts +10 -2
  20. package/dist/_pkgs/affine-block-frame/present/frame-order-menu.js +32 -18
  21. package/dist/_pkgs/affine-block-frame/view.js +6 -0
  22. package/dist/_pkgs/affine-block-note/configs/toolbar.d.ts +19 -0
  23. package/dist/_pkgs/affine-block-note/configs/toolbar.js +38 -23
  24. package/dist/_pkgs/affine-block-note/translations.d.ts +2 -0
  25. package/dist/_pkgs/affine-block-note/translations.js +14 -1
  26. package/dist/_pkgs/affine-block-root/configs/toolbar.js +31 -2
  27. package/dist/_pkgs/affine-block-root/translations.d.ts +7 -2
  28. package/dist/_pkgs/affine-block-root/translations.js +10 -13
  29. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/actions.d.ts +20 -9
  30. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/actions.js +57 -20
  31. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/commands.d.ts +6 -8
  32. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/commands.js +21 -8
  33. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/index.d.ts +1 -1
  34. package/dist/_pkgs/affine-block-surface/extensions/selection-pane/index.js +1 -1
  35. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  36. package/dist/_pkgs/affine-foundation/view.d.ts +8 -8
  37. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.d.ts +34 -2
  38. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +194 -81
  39. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card.d.ts +7 -4
  40. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card.js +9 -24
  41. package/dist/_pkgs/affine-fragment-frame-panel/index.d.ts +1 -0
  42. package/dist/_pkgs/affine-fragment-frame-panel/index.js +1 -0
  43. package/dist/_pkgs/affine-model/utils/types.d.ts +2 -2
  44. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +4 -4
  45. package/dist/_pkgs/affine-shared/services/font-loader/config.d.ts +2 -2
  46. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +3 -3
  47. package/dist/_pkgs/affine-shared/services/index.d.ts +1 -1
  48. package/dist/_pkgs/affine-shared/services/index.js +1 -1
  49. package/dist/_pkgs/affine-shared/services/link-preview-service/link-preview-storage.d.ts +4 -4
  50. package/dist/_pkgs/affine-shared/services/outline-panel-service.d.ts +31 -0
  51. package/dist/_pkgs/affine-shared/services/outline-panel-service.js +17 -0
  52. package/dist/_pkgs/affine-shared/services/translation-service/chrome.d.ts +11 -0
  53. package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +19 -0
  54. package/dist/_pkgs/affine-shared/utils/index.d.ts +1 -0
  55. package/dist/_pkgs/affine-shared/utils/index.js +1 -0
  56. package/dist/_pkgs/affine-shared/utils/panel-reorder-drag.d.ts +85 -0
  57. package/dist/_pkgs/affine-shared/utils/panel-reorder-drag.js +162 -0
  58. package/dist/_pkgs/affine-widget-edgeless-toolbar/selection-pane/drop.d.ts +7 -6
  59. package/dist/_pkgs/affine-widget-edgeless-toolbar/selection-pane/drop.js +11 -8
  60. package/dist/_pkgs/affine-widget-edgeless-toolbar/selection-pane/selection-pane-widget.d.ts +31 -15
  61. package/dist/_pkgs/affine-widget-edgeless-toolbar/selection-pane/selection-pane-widget.js +178 -142
  62. package/dist/_pkgs/std/scope/std-scope.d.ts +1 -1
  63. package/dist/commands.js +2 -0
  64. package/dist/extensions/view.js +5 -1
  65. package/dist/flags.d.ts +3 -0
  66. package/dist/flags.js +3 -0
  67. package/dist/host-panels.d.ts +90 -0
  68. package/dist/host-panels.js +111 -0
  69. package/package.json +5 -1
  70. package/dist/_pkgs/affine-fragment-frame-panel/utils/drag.d.ts +0 -27
  71. package/dist/_pkgs/affine-fragment-frame-panel/utils/drag.js +0 -96
  72. package/dist/_pkgs/affine-shared/services/sidebar-service.d.ts +0 -8
  73. package/dist/_pkgs/affine-shared/services/sidebar-service.js +0 -7
@@ -4,17 +4,28 @@ import type { SelectionPaneNode } from './tree.js';
4
4
  * Move `id` so it sits directly ABOVE `above` in the stack — `null` puts it at
5
5
  * the bottom of its stack. Answers whether anything was written.
6
6
  *
7
- * The drop target of a drag in a top-first list: dropping a row just over row
8
- * X means "directly above X". The new `index` is a key between the two
9
- * neighbours (the same `fractional-indexing` keys `LayerManager` generates), so
10
- * one field of one model is written and nothing else moves.
11
- *
12
- * Refused, with nothing written: a read-only document; a mindmap node (it has
13
- * no index of its own — the whole mindmap moves as one, as the toolbar's
14
- * reorder already says); an `above` that is not stacked with `id`; and a
15
- * target that is where the model already is.
7
+ * The one-row case of {@link reorderPaneElements}, kept for its callers.
16
8
  */
17
9
  export declare function reorderPaneElement(std: BlockStdScope, id: string, above: string | null): boolean;
10
+ /**
11
+ * Move the models `ids`, as one block, so they sit directly ABOVE `above` in
12
+ * their stack — `null` puts them at the bottom of it. They keep their current
13
+ * relative z-order, whatever order `ids` lists them in. Answers whether
14
+ * anything was written.
15
+ *
16
+ * The drop target of a drag in a top-first list: dropping rows just over row
17
+ * X means "directly above X". Each moved model gets a new `index` between its
18
+ * new neighbours (the same `fractional-indexing` keys `LayerManager`
19
+ * generates), so only the moved models are written and nothing else shifts.
20
+ *
21
+ * Refused, with nothing written: a read-only document; an unknown id; a
22
+ * mindmap node (it has no index of its own — the whole mindmap moves as one,
23
+ * as the toolbar's reorder already says); models that are not all stacked
24
+ * together (a selection spanning two stacks has no one place to land, ADR
25
+ * 0034); an `above` that is one of them or not stacked with them; and a
26
+ * target that is where the models already are.
27
+ */
28
+ export declare function reorderPaneElements(std: BlockStdScope, ids: readonly string[], above: string | null): boolean;
18
29
  /**
19
30
  * Lock or unlock each model ON ITS OWN. Answers whether anything was written.
20
31
  *
@@ -48,26 +48,53 @@ function stackSiblings(std, model) {
48
48
  * Move `id` so it sits directly ABOVE `above` in the stack — `null` puts it at
49
49
  * the bottom of its stack. Answers whether anything was written.
50
50
  *
51
- * The drop target of a drag in a top-first list: dropping a row just over row
52
- * X means "directly above X". The new `index` is a key between the two
53
- * neighbours (the same `fractional-indexing` keys `LayerManager` generates), so
54
- * one field of one model is written and nothing else moves.
55
- *
56
- * Refused, with nothing written: a read-only document; a mindmap node (it has
57
- * no index of its own — the whole mindmap moves as one, as the toolbar's
58
- * reorder already says); an `above` that is not stacked with `id`; and a
59
- * target that is where the model already is.
51
+ * The one-row case of {@link reorderPaneElements}, kept for its callers.
60
52
  */
61
53
  export function reorderPaneElement(std, id, above) {
54
+ return reorderPaneElements(std, [id], above);
55
+ }
56
+ /**
57
+ * Move the models `ids`, as one block, so they sit directly ABOVE `above` in
58
+ * their stack — `null` puts them at the bottom of it. They keep their current
59
+ * relative z-order, whatever order `ids` lists them in. Answers whether
60
+ * anything was written.
61
+ *
62
+ * The drop target of a drag in a top-first list: dropping rows just over row
63
+ * X means "directly above X". Each moved model gets a new `index` between its
64
+ * new neighbours (the same `fractional-indexing` keys `LayerManager`
65
+ * generates), so only the moved models are written and nothing else shifts.
66
+ *
67
+ * Refused, with nothing written: a read-only document; an unknown id; a
68
+ * mindmap node (it has no index of its own — the whole mindmap moves as one,
69
+ * as the toolbar's reorder already says); models that are not all stacked
70
+ * together (a selection spanning two stacks has no one place to land, ADR
71
+ * 0034); an `above` that is one of them or not stacked with them; and a
72
+ * target that is where the models already are.
73
+ */
74
+ export function reorderPaneElements(std, ids, above) {
62
75
  if (std.store.readonly)
63
76
  return false;
64
- const model = gfxModel(std, id);
65
- if (!model || id === above)
77
+ const moving = new Set(ids);
78
+ if (moving.size === 0)
66
79
  return false;
67
- if (model.group instanceof MindmapElementModel)
80
+ if (above !== null && moving.has(above))
68
81
  return false;
69
- const siblings = stackSiblings(std, model);
70
- const others = siblings.filter(other => other !== model);
82
+ const models = [];
83
+ for (const id of moving) {
84
+ const model = gfxModel(std, id);
85
+ if (!model)
86
+ return false;
87
+ if (model.group instanceof MindmapElementModel)
88
+ return false;
89
+ models.push(model);
90
+ }
91
+ const siblings = stackSiblings(std, models[0]);
92
+ if (models.some(model => !siblings.includes(model)))
93
+ return false;
94
+ // `siblings` is in stacking order, bottom first, so filtering keeps the
95
+ // moved models' relative order.
96
+ const moved = siblings.filter(model => moving.has(model.id));
97
+ const others = siblings.filter(model => !moving.has(model.id));
71
98
  let position = 0;
72
99
  if (above !== null) {
73
100
  const target = others.findIndex(other => other.id === above);
@@ -75,10 +102,13 @@ export function reorderPaneElement(std, id, above) {
75
102
  return false;
76
103
  position = target + 1;
77
104
  }
78
- // Already there: the model's current lower neighbour is the target.
79
- const current = siblings.indexOf(model);
80
- const lowerNow = current > 0 ? siblings[current - 1] : null;
81
- if ((lowerNow?.id ?? null) === above)
105
+ // Already there: the stack would read the same after the move.
106
+ const after = [
107
+ ...others.slice(0, position),
108
+ ...moved,
109
+ ...others.slice(position),
110
+ ];
111
+ if (after.every((model, i) => model === siblings[i]))
82
112
  return false;
83
113
  const lower = others[position - 1]?.index ?? null;
84
114
  const upper = others[position]?.index ?? null;
@@ -86,9 +116,16 @@ export function reorderPaneElement(std, id, above) {
86
116
  // this only guards a hand-made document; refusing beats throwing in a drop.
87
117
  if (lower !== null && upper !== null && lower >= upper)
88
118
  return false;
89
- const index = generateKeyBetween(lower, upper);
119
+ const gfx = std.get(GfxControllerIdentifier);
90
120
  std.store.captureSync();
91
- std.get(GfxControllerIdentifier).updateElement(model, { index });
121
+ std.store.transact(() => {
122
+ let previous = lower;
123
+ for (const model of moved) {
124
+ const index = generateKeyBetween(previous, upper);
125
+ gfx.updateElement(model, { index });
126
+ previous = index;
127
+ }
128
+ });
92
129
  return true;
93
130
  }
94
131
  /**
@@ -1,19 +1,17 @@
1
1
  import type { AnyCommandDescriptor } from '../../../std/index.js';
2
2
  import { z } from 'zod';
3
3
  export declare const reorderElementParams: z.ZodObject<{
4
- /** The element or gfx block to move. */
5
- id: z.ZodString;
6
- /**
7
- * The model it lands directly ABOVE, stacked with it; `null` puts it at the
8
- * bottom of its stack.
9
- */
4
+ id: z.ZodOptional<z.ZodString>;
5
+ ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
6
  above: z.ZodNullable<z.ZodString>;
11
7
  }, "strip", z.ZodTypeAny, {
12
- id: string;
13
8
  above: string | null;
9
+ id?: string | undefined;
10
+ ids?: string[] | undefined;
14
11
  }, {
15
- id: string;
16
12
  above: string | null;
13
+ id?: string | undefined;
14
+ ids?: string[] | undefined;
17
15
  }>;
18
16
  export type ReorderElementParams = z.infer<typeof reorderElementParams>;
19
17
  export declare const lockElementsParams: z.ZodObject<{
@@ -1,7 +1,7 @@
1
1
  import { CanvasLocalVisibility, SelectionPaneProvider, TelemetryProvider, } from '../../../affine-shared/services/index.js';
2
2
  import { GfxControllerIdentifier } from '../../../std/gfx/index.js';
3
3
  import { z } from 'zod';
4
- import { renamePaneFrame, renamePaneGroup, reorderPaneElement, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
4
+ import { renamePaneFrame, renamePaneGroup, reorderPaneElements, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
5
5
  import { setUserLayersHiddenForEveryone } from '../user-layers/actions.js';
6
6
  import { SelectionPaneModel } from './tree.js';
7
7
  /**
@@ -68,13 +68,20 @@ const toggleSelectionPane = {
68
68
  });
69
69
  },
70
70
  };
71
+ /*
72
+ * "An `id` or a non-empty `ids`" is checked in `run`, not with a zod `refine`:
73
+ * a refined schema is a `ZodEffects`, which `describeCommandParams` cannot
74
+ * project, so the agent manifest would lose the whole parameter contract.
75
+ */
71
76
  export const reorderElementParams = z.object({
72
- /** The element or gfx block to move. */
73
- id: z.string().min(1),
74
- /**
75
- * The model it lands directly ABOVE, stacked with it; `null` puts it at the
76
- * bottom of its stack.
77
- */
77
+ // The element or gfx block to move.
78
+ id: z.string().min(1).optional(),
79
+ // Several models of ONE stack, moved as a block in their current relative
80
+ // order (the selection pane's multi-row drag, ADR 0034). Added beside `id`,
81
+ // which stays: a caller passing `id` alone is unchanged.
82
+ ids: z.array(z.string().min(1)).optional(),
83
+ // The model they land directly ABOVE, stacked with them; `null` puts them
84
+ // at the bottom of their stack.
78
85
  above: z.string().min(1).nullable(),
79
86
  });
80
87
  const reorderElement = {
@@ -97,7 +104,13 @@ const reorderElement = {
97
104
  console.error('canvas.element.reorder: invalid params', parsed.error);
98
105
  return;
99
106
  }
100
- reorderPaneElement(std, parsed.data.id, parsed.data.above);
107
+ const { id, ids = [], above } = parsed.data;
108
+ const moving = id === undefined ? ids : [id, ...ids];
109
+ if (!moving.length) {
110
+ console.error('canvas.element.reorder: needs an id or ids');
111
+ return;
112
+ }
113
+ reorderPaneElements(std, moving, above);
101
114
  },
102
115
  };
103
116
  export const lockElementsParams = z.object({
@@ -1,3 +1,3 @@
1
- export { filterSelectionPaneTree, renamePaneFrame, renamePaneGroup, reorderPaneElement, type SelectionPaneFilterTarget, selectionPaneFilterMembers, selectionPaneFilterTargets, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
1
+ export { filterSelectionPaneTree, renamePaneFrame, renamePaneGroup, reorderPaneElement, reorderPaneElements, type SelectionPaneFilterTarget, selectionPaneFilterMembers, selectionPaneFilterTargets, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
2
2
  export { type HideForEveryoneParams, hideForEveryoneParams, type HideLocalParams, hideLocalParams, type LockElementsParams, lockElementsParams, type RenameGroupParams, renameGroupParams, type ReorderElementParams, reorderElementParams, selectionPaneCommands, } from './commands.js';
3
3
  export { buildSelectionPaneTree, DEFAULT_LAYER_ID, paneContainerOf, paneLayersOf, type SelectionPaneLayers, type SelectionPaneNode, SelectionPaneModel, selectionPaneTree, } from './tree.js';
@@ -1,3 +1,3 @@
1
- export { filterSelectionPaneTree, renamePaneFrame, renamePaneGroup, reorderPaneElement, selectionPaneFilterMembers, selectionPaneFilterTargets, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
1
+ export { filterSelectionPaneTree, renamePaneFrame, renamePaneGroup, reorderPaneElement, reorderPaneElements, selectionPaneFilterMembers, selectionPaneFilterTargets, setPaneElementsHiddenForEveryone, setPaneElementsLocked, } from './actions.js';
2
2
  export { hideForEveryoneParams, hideLocalParams, lockElementsParams, renameGroupParams, reorderElementParams, selectionPaneCommands, } from './commands.js';
3
3
  export { buildSelectionPaneTree, DEFAULT_LAYER_ID, paneContainerOf, paneLayersOf, SelectionPaneModel, selectionPaneTree, } from './tree.js';
@@ -17,7 +17,7 @@ import { LitElement, type TemplateResult } from 'lit';
17
17
  */
18
18
  export declare class Portal extends LitElement {
19
19
  private _portalRoot;
20
- createRenderRoot(): HTMLDivElement | ShadowRoot;
20
+ createRenderRoot(): ShadowRoot | HTMLDivElement;
21
21
  disconnectedCallback(): void;
22
22
  render(): TemplateResult | undefined;
23
23
  accessor container: HTMLElement;
@@ -23,13 +23,13 @@ declare const optionsSchema: z.ZodObject<{
23
23
  style: z.ZodString;
24
24
  }, "strip", z.ZodTypeAny, {
25
25
  style: string;
26
- font: string;
27
26
  url: string;
27
+ font: string;
28
28
  weight: string;
29
29
  }, {
30
30
  style: string;
31
- font: string;
32
31
  url: string;
32
+ font: string;
33
33
  weight: string;
34
34
  }>, "many">>;
35
35
  telemetry: z.ZodOptional<z.ZodType<TelemetryService, z.ZodTypeDef, TelemetryService>>;
@@ -42,8 +42,8 @@ declare const optionsSchema: z.ZodObject<{
42
42
  } | undefined;
43
43
  fontConfig?: {
44
44
  style: string;
45
- font: string;
46
45
  url: string;
46
+ font: string;
47
47
  weight: string;
48
48
  }[] | undefined;
49
49
  telemetry?: TelemetryService | undefined;
@@ -56,8 +56,8 @@ declare const optionsSchema: z.ZodObject<{
56
56
  } | undefined;
57
57
  fontConfig?: {
58
58
  style: string;
59
- font: string;
60
59
  url: string;
60
+ font: string;
61
61
  weight: string;
62
62
  }[] | undefined;
63
63
  telemetry?: TelemetryService | undefined;
@@ -87,13 +87,13 @@ export declare class FoundationViewExtension extends ViewExtensionProvider<Found
87
87
  style: z.ZodString;
88
88
  }, "strip", z.ZodTypeAny, {
89
89
  style: string;
90
- font: string;
91
90
  url: string;
91
+ font: string;
92
92
  weight: string;
93
93
  }, {
94
94
  style: string;
95
- font: string;
96
95
  url: string;
96
+ font: string;
97
97
  weight: string;
98
98
  }>, "many">>;
99
99
  telemetry: z.ZodOptional<z.ZodType<TelemetryService, z.ZodTypeDef, TelemetryService>>;
@@ -106,8 +106,8 @@ export declare class FoundationViewExtension extends ViewExtensionProvider<Found
106
106
  } | undefined;
107
107
  fontConfig?: {
108
108
  style: string;
109
- font: string;
110
109
  url: string;
110
+ font: string;
111
111
  weight: string;
112
112
  }[] | undefined;
113
113
  telemetry?: TelemetryService | undefined;
@@ -120,8 +120,8 @@ export declare class FoundationViewExtension extends ViewExtensionProvider<Found
120
120
  } | undefined;
121
121
  fontConfig?: {
122
122
  style: string;
123
- font: string;
124
123
  url: string;
124
+ font: string;
125
125
  weight: string;
126
126
  }[] | undefined;
127
127
  telemetry?: TelemetryService | undefined;
@@ -11,8 +11,15 @@ export declare class FramePanelBody extends FramePanelBody_base {
11
11
  */
12
12
  private readonly _clickBlank;
13
13
  private _docDisposables;
14
- private _frameElementHeight;
15
14
  private _frameItems;
15
+ /** The side panels' one reorder gesture (ADR 0034), made on connect. */
16
+ private _reorder;
17
+ /** The card a press landed on: what a pick-up picks up. */
18
+ private _pressed;
19
+ /** The dragged cards' copies following the pointer, top one last. */
20
+ private _ghosts;
21
+ /** The list's `gap`, read once at the pick-up: the drop line sits in it. */
22
+ private _listGap;
16
23
  private _indicatorTranslateY;
17
24
  private _lastEdgelessRootId;
18
25
  private get _gfx();
@@ -20,10 +27,36 @@ export declare class FramePanelBody extends FramePanelBody_base {
20
27
  private readonly _updateFrameItems;
21
28
  get frames(): FrameBlockModel[];
22
29
  get viewportPadding(): [number, number, number, number];
30
+ private _createReorderDrag;
31
+ /** The cards on screen, in presentation order. */
32
+ private _cards;
33
+ /** A press on a card: the controller decides whether it becomes a drag. */
23
34
  private _drag;
35
+ /**
36
+ * The press became a drag. The pressed card is selected if it was not
37
+ * (shift adds it to the selection), and every selected card moves: their
38
+ * copies — the last two, the top one counting them — follow the pointer,
39
+ * and the cards themselves stay in place as placeholders.
40
+ */
41
+ private _pickUp;
42
+ /**
43
+ * A release at the gap `gap` puts the selected cards right before the first
44
+ * card at or after it that does not move, or at the end. The line sits in
45
+ * the middle of the list's gap: above the card under the gap, or under the
46
+ * last card — the frame panel's own drag used to draw that last one at 0.
47
+ */
48
+ private _dropAt;
24
49
  private _fitToElement;
25
50
  private _renderEmptyContent;
26
51
  private _renderFrameList;
52
+ /**
53
+ * Move the selected cards, as one block, right before the frame `before`
54
+ * (`null` = at the end; `_dropAt` picks it). The write is
55
+ * `canvas.frame.reorder` (ADR 0034): the read-only refusal, the no-op check
56
+ * and the one undo step live in its action, run through the imported
57
+ * descriptor so the panel reorders in page mode too, where the command is
58
+ * not registered.
59
+ */
27
60
  private _reorderFrames;
28
61
  private _setDocDisposables;
29
62
  private _updateFrames;
@@ -34,7 +67,6 @@ export declare class FramePanelBody extends FramePanelBody_base {
34
67
  updated(_changedProperties: PropertyValues): void;
35
68
  private accessor _dragging;
36
69
  private accessor _selected;
37
- accessor domHost: Document | HTMLElement;
38
70
  accessor editorHost: EditorHost;
39
71
  accessor fitPadding: number[];
40
72
  accessor frameListContainer: HTMLElement;