@docmentis/udoc-editor 0.8.16 → 0.8.18

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 (128) hide show
  1. package/dist/commands.js +2 -2
  2. package/dist/commands.js.map +1 -1
  3. package/dist/components/TablePropertiesModal.d.ts +12 -0
  4. package/dist/components/TablePropertiesModal.d.ts.map +1 -0
  5. package/dist/components/TablePropertiesModal.js +222 -0
  6. package/dist/components/TablePropertiesModal.js.map +1 -0
  7. package/dist/context-menu.d.ts.map +1 -1
  8. package/dist/context-menu.js +12 -2
  9. package/dist/context-menu.js.map +1 -1
  10. package/dist/docmentis-theme.d.ts +2 -0
  11. package/dist/docmentis-theme.d.ts.map +1 -1
  12. package/dist/docmentis-theme.js +4 -0
  13. package/dist/docmentis-theme.js.map +1 -1
  14. package/dist/edit-client.d.ts +28 -1
  15. package/dist/edit-client.d.ts.map +1 -1
  16. package/dist/edit-client.js +33 -0
  17. package/dist/edit-client.js.map +1 -1
  18. package/dist/edit-mode.d.ts.map +1 -1
  19. package/dist/edit-mode.js +13 -3
  20. package/dist/edit-mode.js.map +1 -1
  21. package/dist/grips.d.ts.map +1 -1
  22. package/dist/grips.js +173 -10
  23. package/dist/grips.js.map +1 -1
  24. package/dist/i18n/ar.d.ts.map +1 -1
  25. package/dist/i18n/ar.js +58 -7
  26. package/dist/i18n/ar.js.map +1 -1
  27. package/dist/i18n/de.d.ts.map +1 -1
  28. package/dist/i18n/de.js +58 -7
  29. package/dist/i18n/de.js.map +1 -1
  30. package/dist/i18n/en.d.ts.map +1 -1
  31. package/dist/i18n/en.js +58 -7
  32. package/dist/i18n/en.js.map +1 -1
  33. package/dist/i18n/es.d.ts.map +1 -1
  34. package/dist/i18n/es.js +58 -7
  35. package/dist/i18n/es.js.map +1 -1
  36. package/dist/i18n/fr.d.ts.map +1 -1
  37. package/dist/i18n/fr.js +58 -7
  38. package/dist/i18n/fr.js.map +1 -1
  39. package/dist/i18n/ja.d.ts.map +1 -1
  40. package/dist/i18n/ja.js +62 -11
  41. package/dist/i18n/ja.js.map +1 -1
  42. package/dist/i18n/ko.d.ts.map +1 -1
  43. package/dist/i18n/ko.js +58 -7
  44. package/dist/i18n/ko.js.map +1 -1
  45. package/dist/i18n/messages.d.ts +108 -7
  46. package/dist/i18n/messages.d.ts.map +1 -1
  47. package/dist/i18n/pt-BR.d.ts.map +1 -1
  48. package/dist/i18n/pt-BR.js +58 -7
  49. package/dist/i18n/pt-BR.js.map +1 -1
  50. package/dist/i18n/ru.d.ts.map +1 -1
  51. package/dist/i18n/ru.js +58 -7
  52. package/dist/i18n/ru.js.map +1 -1
  53. package/dist/i18n/zh-CN.d.ts.map +1 -1
  54. package/dist/i18n/zh-CN.js +62 -11
  55. package/dist/i18n/zh-CN.js.map +1 -1
  56. package/dist/i18n/zh-TW.d.ts.map +1 -1
  57. package/dist/i18n/zh-TW.js +58 -7
  58. package/dist/i18n/zh-TW.js.map +1 -1
  59. package/dist/icons.d.ts +38 -0
  60. package/dist/icons.d.ts.map +1 -1
  61. package/dist/icons.js +38 -0
  62. package/dist/icons.js.map +1 -1
  63. package/dist/image.d.ts +5 -0
  64. package/dist/image.d.ts.map +1 -1
  65. package/dist/image.js +37 -4
  66. package/dist/image.js.map +1 -1
  67. package/dist/insert-table.d.ts +23 -0
  68. package/dist/insert-table.d.ts.map +1 -0
  69. package/dist/insert-table.js +135 -0
  70. package/dist/insert-table.js.map +1 -0
  71. package/dist/insert.d.ts +4 -1
  72. package/dist/insert.d.ts.map +1 -1
  73. package/dist/insert.js +5 -4
  74. package/dist/insert.js.map +1 -1
  75. package/dist/markup.d.ts +36 -1
  76. package/dist/markup.d.ts.map +1 -1
  77. package/dist/markup.js +175 -0
  78. package/dist/markup.js.map +1 -1
  79. package/dist/menu-action.d.ts +12 -3
  80. package/dist/menu-action.d.ts.map +1 -1
  81. package/dist/menu-action.js +13 -3
  82. package/dist/menu-action.js.map +1 -1
  83. package/dist/paint.d.ts +13 -2
  84. package/dist/paint.d.ts.map +1 -1
  85. package/dist/paint.js +2 -2
  86. package/dist/paint.js.map +1 -1
  87. package/dist/ruler-edits.js +7 -7
  88. package/dist/ruler-edits.js.map +1 -1
  89. package/dist/styles.d.ts.map +1 -1
  90. package/dist/styles.js +66 -0
  91. package/dist/styles.js.map +1 -1
  92. package/dist/table-edits.d.ts +44 -0
  93. package/dist/table-edits.d.ts.map +1 -0
  94. package/dist/table-edits.js +97 -0
  95. package/dist/table-edits.js.map +1 -0
  96. package/dist/table-format.d.ts +78 -0
  97. package/dist/table-format.d.ts.map +1 -0
  98. package/dist/table-format.js +222 -0
  99. package/dist/table-format.js.map +1 -0
  100. package/dist/table-picker.d.ts +14 -0
  101. package/dist/table-picker.d.ts.map +1 -0
  102. package/dist/table-picker.js +15 -0
  103. package/dist/table-picker.js.map +1 -0
  104. package/dist/table-properties.d.ts +12 -0
  105. package/dist/table-properties.d.ts.map +1 -0
  106. package/dist/table-properties.js +27 -0
  107. package/dist/table-properties.js.map +1 -0
  108. package/dist/table.d.ts +19 -9
  109. package/dist/table.d.ts.map +1 -1
  110. package/dist/table.js +230 -40
  111. package/dist/table.js.map +1 -1
  112. package/dist/tabs.d.ts +1 -1
  113. package/dist/tabs.d.ts.map +1 -1
  114. package/dist/tabs.js +64 -38
  115. package/dist/tabs.js.map +1 -1
  116. package/dist/text-format.d.ts +9 -3
  117. package/dist/text-format.d.ts.map +1 -1
  118. package/dist/text-format.js +45 -39
  119. package/dist/text-format.js.map +1 -1
  120. package/dist/version.d.ts +1 -1
  121. package/dist/version.js +1 -1
  122. package/dist/worker/handlers.d.ts.map +1 -1
  123. package/dist/worker/handlers.js +28 -0
  124. package/dist/worker/handlers.js.map +1 -1
  125. package/dist/worker/protocol.d.ts +38 -1
  126. package/dist/worker/protocol.d.ts.map +1 -1
  127. package/dist/worker/worker-source.js +1 -1
  128. package/package.json +3 -3
package/dist/commands.js CHANGED
@@ -45,7 +45,7 @@ export function formatCommands(tools) {
45
45
  // Then the font picker, the point-size field, then the Bold /
46
46
  // Italic toggles. Each mirrors the selection's resolved format and
47
47
  // lowers to a character-property text edit, so all gate on the engine's
48
- // text `setCharacterProperties` capability (`whenTextFormat`): live over
48
+ // text `patchCharacterProperties` capability (`whenTextFormat`): live over
49
49
  // a non-empty text range, greyed on a bare caret or a non-text selection.
50
50
  fontFamily: {
51
51
  id: "fontFamily",
@@ -88,7 +88,7 @@ export function formatCommands(tools) {
88
88
  // Text color + highlight — dropdowns mirroring the selection's span color
89
89
  // over the shared color picker (the Fill / Line machinery, `text` /
90
90
  // `highlight` channels). A span color is a character property, so they
91
- // gate with the sibling text controls on `setCharacterProperties`
91
+ // gate with the sibling text controls on `patchCharacterProperties`
92
92
  // (`whenTextFormat`).
93
93
  textFill: {
94
94
  id: "textFill",
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { I18n } from "../i18n/index.js";
2
+ import type { TablePropertiesSeed, TablePropertiesValues } from "../table-edits.js";
3
+ /** Build the Table Properties dialog, mounted once and re-seeded by `open`. */
4
+ export declare function createTablePropertiesModal(i18n: I18n): {
5
+ el: HTMLDivElement;
6
+ mount: (parent: HTMLElement) => void;
7
+ open: (seed: TablePropertiesSeed, apply: (values: TablePropertiesValues) => void) => void;
8
+ close: () => void;
9
+ destroy: () => void;
10
+ };
11
+ export type TablePropertiesModal = ReturnType<typeof createTablePropertiesModal>;
12
+ //# sourceMappingURL=TablePropertiesModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TablePropertiesModal.d.ts","sourceRoot":"","sources":["../../src/components/TablePropertiesModal.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,EAAc,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA4DhG,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI;;oBAgK1B,WAAW,KAAG,IAAI;iBAxBrB,mBAAmB,SAAS,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,KAAG,IAAI;iBAiB5E,IAAI;mBAmBF,IAAI;EAM3B;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,222 @@
1
+ // The Table Properties dialog, opened from the Table tab or a table's context
2
+ // menu: the selected rows' height, the selected columns' width, the cells'
3
+ // margins and, in a word document, whether the rows repeat as a header on each
4
+ // page. A modal — backdrop + centered dialog — on the page-settings dialog's
5
+ // styles.
6
+ //
7
+ // Storeless and imperative: mounted once and reused. `open(seed, onApply)`
8
+ // seeds it with what the selection holds — a field the selection holds several
9
+ // values of opens blank — and OK hands back the values, which the caller turns
10
+ // into the edits of what changed.
11
+ import { ICON_CLEAR, on } from "@docmentis/udoc-ui/internal";
12
+ import { MARGIN_SIDES } from "../table-edits.js";
13
+ /** The largest measure a field takes, in points — 22 inches, past the widest
14
+ * page an Office document lays out. */
15
+ const MAX_POINTS = 1584;
16
+ /** A measure in points in `text`: `null` for a blank field (no change), `NaN`
17
+ * for one that isn't a measure in range. A height or a width must be more
18
+ * than nothing; a margin may be none. */
19
+ function parsePoints(text, min) {
20
+ const trimmed = text.trim();
21
+ if (trimmed === "")
22
+ return null;
23
+ const n = Number(trimmed.replace(",", "."));
24
+ const inRange = Number.isFinite(n) && n <= MAX_POINTS && (min === "zero" ? n >= 0 : n > 0);
25
+ return inRange ? n : Number.NaN;
26
+ }
27
+ /** A measure as a field shows it: up to two decimals, no trailing zeros. */
28
+ function formatPoints(value) {
29
+ return value === null ? "" : String(Math.round(value * 100) / 100);
30
+ }
31
+ function labeledField(labelText) {
32
+ const field = document.createElement("label");
33
+ field.className = "udoc-page-modal__field";
34
+ const label = document.createElement("span");
35
+ label.className = "udoc-page-modal__field-label";
36
+ label.textContent = labelText;
37
+ const input = document.createElement("input");
38
+ input.type = "text";
39
+ input.inputMode = "decimal";
40
+ input.className = "udoc-page-modal__input";
41
+ field.append(label, input);
42
+ return { field, input };
43
+ }
44
+ /** A titled row of fields, the unit after them. */
45
+ function section(title, fields, unit) {
46
+ const row = document.createElement("div");
47
+ row.className = "udoc-page-modal__row";
48
+ const heading = document.createElement("span");
49
+ heading.className = "udoc-page-modal__field-label";
50
+ heading.textContent = title;
51
+ const dims = document.createElement("div");
52
+ dims.className = "udoc-page-modal__dims";
53
+ const unitLabel = document.createElement("span");
54
+ unitLabel.className = "udoc-page-modal__unit-label";
55
+ unitLabel.textContent = unit;
56
+ dims.append(...fields, unitLabel);
57
+ row.append(heading, dims);
58
+ return row;
59
+ }
60
+ const SIDE_LABELS = {
61
+ top: "table.marginTop",
62
+ bottom: "table.marginBottom",
63
+ left: "table.marginLeft",
64
+ right: "table.marginRight",
65
+ };
66
+ /** Build the Table Properties dialog, mounted once and re-seeded by `open`. */
67
+ export function createTablePropertiesModal(i18n) {
68
+ const title = i18n.t("table.properties");
69
+ const points = i18n.t("pageSettings.points");
70
+ const el = document.createElement("div");
71
+ el.className = "udoc-page-modal";
72
+ el.style.display = "none";
73
+ const backdrop = document.createElement("div");
74
+ backdrop.className = "udoc-page-modal__backdrop";
75
+ const dialog = document.createElement("div");
76
+ dialog.className = "udoc-page-modal__dialog";
77
+ dialog.setAttribute("role", "dialog");
78
+ dialog.setAttribute("aria-modal", "true");
79
+ dialog.setAttribute("aria-label", title);
80
+ // --- header ---
81
+ const header = document.createElement("div");
82
+ header.className = "udoc-page-modal__header";
83
+ const heading = document.createElement("h2");
84
+ heading.className = "udoc-page-modal__heading";
85
+ heading.textContent = title;
86
+ const closeBtn = document.createElement("button");
87
+ closeBtn.type = "button";
88
+ closeBtn.className = "udoc-page-modal__close";
89
+ closeBtn.setAttribute("aria-label", i18n.t("common.close"));
90
+ closeBtn.title = i18n.t("common.close");
91
+ closeBtn.innerHTML = ICON_CLEAR;
92
+ header.append(heading, closeBtn);
93
+ // --- body ---
94
+ const body = document.createElement("div");
95
+ body.className = "udoc-page-modal__body";
96
+ const height = labeledField(i18n.t("table.rowHeight"));
97
+ const width = labeledField(i18n.t("table.columnWidth"));
98
+ const margins = Object.fromEntries(MARGIN_SIDES.map((side) => [side, labeledField(i18n.t(SIDE_LABELS[side]))]));
99
+ const repeat = document.createElement("label");
100
+ repeat.className = "udoc-page-modal__check";
101
+ const repeatInput = document.createElement("input");
102
+ repeatInput.type = "checkbox";
103
+ const repeatLabel = document.createElement("span");
104
+ repeatLabel.textContent = i18n.t("table.repeatHeaderRow");
105
+ repeat.append(repeatInput, repeatLabel);
106
+ body.append(section(i18n.t("table.size"), [height.field, width.field], points), section(i18n.t("table.cellMargins"), MARGIN_SIDES.map((side) => margins[side].field), points), repeat);
107
+ // --- footer ---
108
+ const footer = document.createElement("div");
109
+ footer.className = "udoc-page-modal__footer";
110
+ const okBtn = document.createElement("button");
111
+ okBtn.type = "button";
112
+ okBtn.className = "udoc-page-modal__apply";
113
+ okBtn.textContent = i18n.t("common.ok");
114
+ footer.append(okBtn);
115
+ dialog.append(header, body, footer);
116
+ el.append(backdrop, dialog);
117
+ // --- state ---
118
+ let onApply = null;
119
+ let isOpen = false;
120
+ const unsubEvents = [];
121
+ // The checkbox's own value is on / off; `mixed` is the selection's rows
122
+ // disagreeing, until the box is clicked and says one.
123
+ let headerMixed = false;
124
+ on(repeatInput, "change", () => {
125
+ headerMixed = false;
126
+ repeatInput.indeterminate = false;
127
+ });
128
+ /** The form's values, or `null` while a field holds what isn't a measure —
129
+ * that field marked invalid, the dialog left open. */
130
+ function read() {
131
+ const fields = [];
132
+ const measure = (input, min) => {
133
+ const value = parsePoints(input.value, min);
134
+ fields.push([input, value]);
135
+ return value;
136
+ };
137
+ const values = {
138
+ rowHeight: measure(height.input, "positive"),
139
+ columnWidth: measure(width.input, "positive"),
140
+ margins: {
141
+ top: measure(margins.top.input, "zero"),
142
+ bottom: measure(margins.bottom.input, "zero"),
143
+ left: measure(margins.left.input, "zero"),
144
+ right: measure(margins.right.input, "zero"),
145
+ },
146
+ header: headerMixed ? null : repeatInput.checked,
147
+ };
148
+ let valid = true;
149
+ for (const [input, value] of fields) {
150
+ const bad = value !== null && Number.isNaN(value);
151
+ input.setAttribute("aria-invalid", String(bad));
152
+ if (bad && valid) {
153
+ valid = false;
154
+ input.focus();
155
+ input.select();
156
+ }
157
+ }
158
+ return valid ? values : null;
159
+ }
160
+ function apply() {
161
+ const values = read();
162
+ if (!values)
163
+ return;
164
+ const done = onApply;
165
+ close();
166
+ done?.(values);
167
+ }
168
+ on(okBtn, "click", apply);
169
+ for (const input of [height.input, width.input, ...MARGIN_SIDES.map((side) => margins[side].input)]) {
170
+ on(input, "keydown", (e) => {
171
+ if (e.key === "Enter") {
172
+ e.preventDefault();
173
+ apply();
174
+ }
175
+ });
176
+ }
177
+ on(closeBtn, "click", () => close());
178
+ on(backdrop, "click", () => close());
179
+ function open(seed, apply) {
180
+ onApply = apply;
181
+ const { values } = seed;
182
+ height.input.value = formatPoints(values.rowHeight);
183
+ width.input.value = formatPoints(values.columnWidth);
184
+ for (const side of MARGIN_SIDES)
185
+ margins[side].input.value = formatPoints(values.margins[side]);
186
+ for (const input of el.querySelectorAll("input"))
187
+ input.removeAttribute("aria-invalid");
188
+ repeat.style.display = seed.showHeader ? "" : "none";
189
+ headerMixed = values.header === null;
190
+ repeatInput.checked = values.header === true;
191
+ repeatInput.indeterminate = headerMixed;
192
+ isOpen = true;
193
+ el.style.display = "";
194
+ height.input.focus();
195
+ height.input.select();
196
+ }
197
+ function close() {
198
+ if (!isOpen)
199
+ return;
200
+ isOpen = false;
201
+ onApply = null;
202
+ el.style.display = "none";
203
+ }
204
+ function mount(parent) {
205
+ parent.appendChild(el);
206
+ const onKeydown = (e) => {
207
+ if (isOpen && e.key === "Escape") {
208
+ e.stopPropagation();
209
+ close();
210
+ }
211
+ };
212
+ document.addEventListener("keydown", onKeydown);
213
+ unsubEvents.push(() => document.removeEventListener("keydown", onKeydown));
214
+ }
215
+ function destroy() {
216
+ for (const off of unsubEvents)
217
+ off();
218
+ el.remove();
219
+ }
220
+ return { el, mount, open, close, destroy };
221
+ }
222
+ //# sourceMappingURL=TablePropertiesModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TablePropertiesModal.js","sourceRoot":"","sources":["../../src/components/TablePropertiesModal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../src/context-menu.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAYlD;8CAC8C;AAC9C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAM1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EAqBvD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EA2B7D,CAAC"}
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../src/context-menu.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAYlD;8CAC8C;AAC9C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAM1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EAqBvD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EAoC7D,CAAC"}
@@ -1,8 +1,9 @@
1
1
  // Edit mode's canvas context menu rows: the clipboard and Delete over any
2
- // selection, and over a table the Select, Insert, Delete and Merge rows. The
2
+ // selection, and over a table the Select, Insert, Delete, Merge and Table
3
+ // Properties rows. The
3
4
  // shell opens the menu (`UIExtension.contextMenuItems`).
4
5
  import { allowsEdit, COPY_MENU_ITEM, ICON_DELETE, ICON_TOOL_POINTER } from "@docmentis/udoc-ui/internal";
5
- import { ICON_CUT, ICON_INSERT_ROW_BELOW, ICON_MERGE_CELLS, ICON_PASTE } from "./icons.js";
6
+ import { ICON_CUT, ICON_INSERT_ROW_BELOW, ICON_MERGE_CELLS, ICON_PASTE, ICON_TABLE_PROPERTIES } from "./icons.js";
6
7
  import { editAction } from "./menu-action.js";
7
8
  import { ICON_DELETE_ROWS, ICON_UNMERGE_CELLS, TABLE_DELETE_MENU, TABLE_INSERT_MENU, TABLE_SELECT_MENU, whenTableEdit, } from "./table.js";
8
9
  /** Enabled whenever a document is open — the rows that act on the document at
@@ -90,5 +91,14 @@ export const TABLE_CONTEXT_MENU = [
90
91
  icon: ICON_UNMERGE_CELLS,
91
92
  enabledWhen: whenTableEdit("unmergeCells"),
92
93
  },
94
+ // The dialog holding the measures — the rows' height, the columns' width,
95
+ // the cells' margins — as the Table tab's last button opens it.
96
+ {
97
+ action: editAction({ kind: "tableProperties" }),
98
+ label: "table.properties",
99
+ icon: ICON_TABLE_PROPERTIES,
100
+ enabledWhen: whenReady,
101
+ separatorBefore: true,
102
+ },
93
103
  ];
94
104
  //# sourceMappingURL=context-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.js","sourceRoot":"","sources":["../src/context-menu.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGzG,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GAChB,MAAM,YAAY,CAAC;AAMpB;0CAC0C;AAC1C,MAAM,SAAS,GAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoC;IACzD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;KACvG;IACD,cAAc;IACd;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACtD,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,SAAS;KACzB;IACD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtC,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;QACjG,eAAe,EAAE,IAAI;KACxB;CACJ,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IAC/D,GAAG,YAAY;IACf;QACI,OAAO,EAAE,iBAAiB;QAC1B,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,IAAI;KACxB;IACD,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE;IAC1G,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE;IACrG,uEAAuE;IACvE,yEAAyE;IACzE,4EAA4E;IAC5E;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC7D,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC;QACxC,eAAe,EAAE,IAAI;KACxB;IACD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC/D,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC;KAC7C;CACJ,CAAC"}
1
+ {"version":3,"file":"context-menu.js","sourceRoot":"","sources":["../src/context-menu.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0EAA0E;AAC1E,uBAAuB;AACvB,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGzG,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GAChB,MAAM,YAAY,CAAC;AAMpB;0CAC0C;AAC1C,MAAM,SAAS,GAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoC;IACzD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;KACvG;IACD,cAAc;IACd;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACtD,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,SAAS;KACzB;IACD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtC,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;QACjG,eAAe,EAAE,IAAI;KACxB;CACJ,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IAC/D,GAAG,YAAY;IACf;QACI,OAAO,EAAE,iBAAiB;QAC1B,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,IAAI;KACxB;IACD,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE;IAC1G,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE;IACrG,uEAAuE;IACvE,yEAAyE;IACzE,4EAA4E;IAC5E;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC7D,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC;QACxC,eAAe,EAAE,IAAI;KACxB;IACD;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC/D,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC;KAC7C;IACD,0EAA0E;IAC1E,gEAAgE;IAChE;QACI,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC/C,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,IAAI;KACxB;CACJ,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export declare const DOCMENTIS_FILL = "#e0e7ff";
2
2
  export declare const DOCMENTIS_LINE = "#4f46e5";
3
3
  export declare const DOCMENTIS_ON_FILL = "#3730a3";
4
+ export declare const DOCMENTIS_FILL_PALE = "#eef2ff";
5
+ export declare const DOCMENTIS_ON_LINE = "#ffffff";
4
6
  //# sourceMappingURL=docmentis-theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docmentis-theme.d.ts","sourceRoot":"","sources":["../src/docmentis-theme.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,iBAAiB,YAAY,CAAC"}
1
+ {"version":3,"file":"docmentis-theme.d.ts","sourceRoot":"","sources":["../src/docmentis-theme.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAI3C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,iBAAiB,YAAY,CAAC"}
@@ -3,4 +3,8 @@
3
3
  export const DOCMENTIS_FILL = "#e0e7ff";
4
4
  export const DOCMENTIS_LINE = "#4f46e5";
5
5
  export const DOCMENTIS_ON_FILL = "#3730a3";
6
+ // A table's, beside those: its body a step paler than the fill its banded rows
7
+ // take, and white for the text on its indigo header and the rules between cells.
8
+ export const DOCMENTIS_FILL_PALE = "#eef2ff";
9
+ export const DOCMENTIS_ON_LINE = "#ffffff";
6
10
  //# sourceMappingURL=docmentis-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docmentis-theme.js","sourceRoot":"","sources":["../src/docmentis-theme.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"docmentis-theme.js","sourceRoot":"","sources":["../src/docmentis-theme.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { FontFamily, FontFamilySummary, ParagraphStyleSummary, ShapeNode, ShapePreview, UDocFragment } from "@docmentis/udoc-wasm";
2
2
  import type { DocumentLayout } from "@docmentis/udoc-ui";
3
- import type { SelectionHandle, ThemePalette, UIShellHost, WorkerClient } from "@docmentis/udoc-ui/internal";
3
+ import type { SelectionBox, SelectionHandle, ThemePalette, UIShellHost, WorkerClient } from "@docmentis/udoc-ui/internal";
4
4
  import type { FontPreviewImage } from "./worker/protocol.js";
5
5
  /** Edit mode's requests of the render worker, over the shell's client. */
6
6
  export declare class EditClient {
@@ -96,6 +96,14 @@ export declare class EditClient {
96
96
  * follows via the client's `onSelection`.
97
97
  */
98
98
  insertImage(bytes: Uint8Array, contentType: string): Promise<DocumentLayout>;
99
+ /**
100
+ * Insert a table of `rows` × `columns` and put the caret in its first cell
101
+ * — on a deck centred on the current slide, in a word document at the
102
+ * caret in a section's body, splitting the paragraph there. A committing
103
+ * edit (one undo step), so it resolves with the document's new layout; the
104
+ * selection follows via the client's `onSelection`.
105
+ */
106
+ insertTable(rows: number, columns: number): Promise<DocumentLayout>;
99
107
  /**
100
108
  * Where handle `index` of the selection lands if dragged to `(x, y)` — the
101
109
  * shape's text warp's handle when `textWarp`, as the streamed handle says,
@@ -118,6 +126,25 @@ export declare class EditClient {
118
126
  * type whose pages take no shape nodes, or a page that isn't there.
119
127
  */
120
128
  shapePreview(page: number, node: ShapeNode): Promise<ShapePreview | null>;
129
+ /**
130
+ * Where the anchor of the floating drawing selected in a word document would
131
+ * stand if it were dropped at CSS-px point `(x, y)` of the viewport: beside
132
+ * the paragraph nearest the point, a box on its page, as
133
+ * {@link moveObjectAnchor} would put it. What a live drag of the anchor
134
+ * draws, with nothing written until it ends. Cheap enough to call per
135
+ * pointer-move; the caller coalesces it latest-wins. Resolves `null` where
136
+ * the selection is not one floating drawing picked whole, its anchor is
137
+ * locked, or the point lands on no paragraph.
138
+ */
139
+ objectAnchorPreview(x: number, y: number): Promise<SelectionBox | null>;
140
+ /**
141
+ * Move the anchor of the floating drawing selected in a word document onto
142
+ * the paragraph nearest CSS-px point `(x, y)` of the viewport — to that
143
+ * paragraph's start, as Word does — keeping the drawing where it stands on
144
+ * the page. A committing edit (one undo step), so it resolves with the
145
+ * document's new layout; the drawing stays selected.
146
+ */
147
+ moveObjectAnchor(x: number, y: number): Promise<DocumentLayout>;
121
148
  /** The id of the deck's slide at `index` (0-based), or `null` past the last
122
149
  * slide or with no presentation open — what a shape placed on it names
123
150
  * its slide by. */
@@ -1 +1 @@
1
- {"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,YAAY,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,uBAAuB,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAI3D;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI/G;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIzE;;wBAEoB;IACpB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGjD;AAED,mFAAmF;AACnF,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B"}
1
+ {"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,YAAY,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,uBAAuB,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAI3D;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI/G;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIzE;;;;;;;;;OASG;IACH,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIvE;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D;;wBAEoB;IACpB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGjD;AAED,mFAAmF;AACnF,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B"}
@@ -129,6 +129,16 @@ export class EditClient {
129
129
  const buffer = bytes.slice().buffer;
130
130
  return this.#request({ type: "insertImage", bytes: buffer, contentType }, { transfer: [buffer] });
131
131
  }
132
+ /**
133
+ * Insert a table of `rows` × `columns` and put the caret in its first cell
134
+ * — on a deck centred on the current slide, in a word document at the
135
+ * caret in a section's body, splitting the paragraph there. A committing
136
+ * edit (one undo step), so it resolves with the document's new layout; the
137
+ * selection follows via the client's `onSelection`.
138
+ */
139
+ insertTable(rows, columns) {
140
+ return this.#request({ type: "insertTable", rows, columns });
141
+ }
132
142
  /**
133
143
  * Where handle `index` of the selection lands if dragged to `(x, y)` — the
134
144
  * shape's text warp's handle when `textWarp`, as the streamed handle says,
@@ -155,6 +165,29 @@ export class EditClient {
155
165
  shapePreview(page, node) {
156
166
  return this.#request({ type: "shapePreview", page, node });
157
167
  }
168
+ /**
169
+ * Where the anchor of the floating drawing selected in a word document would
170
+ * stand if it were dropped at CSS-px point `(x, y)` of the viewport: beside
171
+ * the paragraph nearest the point, a box on its page, as
172
+ * {@link moveObjectAnchor} would put it. What a live drag of the anchor
173
+ * draws, with nothing written until it ends. Cheap enough to call per
174
+ * pointer-move; the caller coalesces it latest-wins. Resolves `null` where
175
+ * the selection is not one floating drawing picked whole, its anchor is
176
+ * locked, or the point lands on no paragraph.
177
+ */
178
+ objectAnchorPreview(x, y) {
179
+ return this.#request({ type: "objectAnchorPreview", x, y });
180
+ }
181
+ /**
182
+ * Move the anchor of the floating drawing selected in a word document onto
183
+ * the paragraph nearest CSS-px point `(x, y)` of the viewport — to that
184
+ * paragraph's start, as Word does — keeping the drawing where it stands on
185
+ * the page. A committing edit (one undo step), so it resolves with the
186
+ * document's new layout; the drawing stays selected.
187
+ */
188
+ moveObjectAnchor(x, y) {
189
+ return this.#request({ type: "moveObjectAnchor", x, y });
190
+ }
158
191
  /** The id of the deck's slide at `index` (0-based), or `null` past the last
159
192
  * slide or with no presentation open — what a shape placed on it names
160
193
  * its slide by. */
@@ -1 +1 @@
1
- {"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAcA,0EAA0E;AAC1E,MAAM,OAAO,UAAU;IACV,OAAO,CAAe;IAE/B,YAAY,MAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,QAAQ,CACJ,OAAoB,EACpB,OAAoF;QAEpF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,uBAAuB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAc,EACd,IAAa,EACb,MAAe,EACf,IAAY,EACZ,IAAY;QAEZ,OAAO,IAAI,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAiB,EAAE,WAAmB;QAC9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAiB,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,IAAY,EAAE,IAAe;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;wBAEoB;IACpB,OAAO,CAAC,KAAa;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ"}
1
+ {"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAoBA,0EAA0E;AAC1E,MAAM,OAAO,UAAU;IACV,OAAO,CAAe;IAE/B,YAAY,MAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,QAAQ,CACJ,OAAoB,EACpB,OAAoF;QAEpF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,uBAAuB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAc,EACd,IAAa,EACb,MAAe,EACf,IAAY,EACZ,IAAY;QAEZ,OAAO,IAAI,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAiB,EAAE,WAAmB;QAC9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAY,EAAE,OAAe;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAiB,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,IAAY,EAAE,IAAe;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,CAAS,EAAE,CAAS;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAS,EAAE,CAAS;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;wBAEoB;IACpB,OAAO,CAAC,KAAa;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAY5C,6FAA6F;AAC7F,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,kEAAkE;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,WAAW,IAAI,UAAU,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AA0JD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CA4H7D"}
1
+ {"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAc5C,6FAA6F;AAC7F,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,kEAAkE;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,WAAW,IAAI,UAAU,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AA0JD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAmI7D"}
package/dist/edit-mode.js CHANGED
@@ -11,6 +11,7 @@ import { EditClient } from "./edit-client.js";
11
11
  import { createI18n, MESSAGE_PACKS } from "./i18n/index.js";
12
12
  import { imageCommands, mountImageSize } from "./image.js";
13
13
  import { insertCommands, insertImage, pickImage, place, placedShape, placePreview } from "./insert.js";
14
+ import { insertTableCommand } from "./insert-table.js";
14
15
  import { runEditMenuAction } from "./menu-action.js";
15
16
  import { mountPageResize, pageCommands } from "./page-commands.js";
16
17
  import { mountPageControls, PAGE_CONTROLS_SPACING, pageControlsShown } from "./page-controls.js";
@@ -22,6 +23,7 @@ import { selectionRuler } from "./ruler-edits.js";
22
23
  import { changeLayoutCommand, deleteSlideCommand, mountSlideLayouts, newSlideCommand } from "./slide-commands.js";
23
24
  import { editorStyles } from "./styles.js";
24
25
  import { tableCommands } from "./table.js";
26
+ import { mountTableProperties } from "./table-properties.js";
25
27
  import { editTabs } from "./tabs.js";
26
28
  import { createEditTools } from "./tools.js";
27
29
  /**
@@ -163,6 +165,7 @@ export function editMode(options) {
163
165
  let tools = null;
164
166
  let slideLayouts = null;
165
167
  let imageSize = null;
168
+ let tableProperties = null;
166
169
  let pageResize = null;
167
170
  const grips = createGrips(() => tools);
168
171
  const ruler = createRuler(() => host);
@@ -186,7 +189,7 @@ export function editMode(options) {
186
189
  commands: {
187
190
  ...formatCommands(mountedTools),
188
191
  ...arrangeCommands(() => tools?.arrange ?? null),
189
- ...tableCommands(mountedTools),
192
+ ...tableCommands(mountedTools, () => tableProperties?.open()),
190
193
  ruler: RULER_COMMAND,
191
194
  createSlide: newSlideCommand(() => void slideLayouts?.newSlide()),
192
195
  deleteSlide: deleteSlideCommand(() => host),
@@ -195,6 +198,7 @@ export function editMode(options) {
195
198
  if (host)
196
199
  pickImage(host);
197
200
  }),
201
+ insertTable: insertTableCommand(mountedTools),
198
202
  ...pageCommands(() => host, () => pageResize?.open()),
199
203
  ...imageCommands(() => host, {
200
204
  crop: () => void tools?.crop.start(),
@@ -207,8 +211,11 @@ export function editMode(options) {
207
211
  tools?.crop.keydown(e);
208
212
  },
209
213
  menuAction(action) {
210
- if (tools)
211
- runEditMenuAction(tools, action);
214
+ const edit = action;
215
+ if (edit.kind === "tableProperties")
216
+ tableProperties?.open();
217
+ else if (tools)
218
+ runEditMenuAction(tools, edit);
212
219
  },
213
220
  // Edit mode's acts on the selection, a table's rows added over one; view
214
221
  // mode keeps the shell's.
@@ -235,10 +242,13 @@ export function editMode(options) {
235
242
  const unmountPageControls = showPageControls ? mountPageControls(mounted, i18n) : null;
236
243
  slideLayouts = mountSlideLayouts(mounted, i18n);
237
244
  imageSize = mountImageSize(mounted, i18n);
245
+ tableProperties = mountTableProperties(mounted, i18n);
238
246
  pageResize = mountPageResize(mounted, i18n);
239
247
  return () => {
240
248
  pageResize?.destroy();
241
249
  pageResize = null;
250
+ tableProperties?.destroy();
251
+ tableProperties = null;
242
252
  imageSize?.destroy();
243
253
  imageSize = null;
244
254
  slideLayouts?.destroy();