@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/table.js CHANGED
@@ -1,11 +1,16 @@
1
1
  // A table's edits: the rows the context menu shows over a table, and the Table
2
2
  // tab's commands, which offer the same edits on the ribbon.
3
- import { allowsTableEdit, ICON_TOOL_POINTER } from "@docmentis/udoc-ui/internal";
4
- import { ICON_INSERT_COLUMN_LEFT, ICON_INSERT_COLUMN_RIGHT, ICON_INSERT_ROW_ABOVE, ICON_INSERT_ROW_BELOW, ICON_MERGE_CELLS, } from "./icons.js";
3
+ import { allowsEdit, allowsTableEdit, ICON_DELETE, ICON_FILL, ICON_TOOL_POINTER } from "@docmentis/udoc-ui/internal";
4
+ import { ICON_BORDER_ALL, ICON_BORDER_COLOR, ICON_DISTRIBUTE_H, ICON_INSERT_COLUMN_LEFT, ICON_INSERT_COLUMN_RIGHT, ICON_INSERT_ROW_ABOVE, ICON_INSERT_ROW_BELOW, ICON_MERGE_CELLS, ICON_TABLE_PROPERTIES, ICON_TABLE_STYLE, ICON_TEXT_HORIZONTAL, ICON_TEXT_ROTATE_270, ICON_TEXT_ROTATE_90, ICON_TEXT_STACKED, } from "./icons.js";
5
5
  import { editAction, runEditMenuAction } from "./menu-action.js";
6
- // The table glyphs Material Symbols has no symbol for, each drawn from the one it
7
- // is the opposite of, which keeps its frame and strokes. Modified from Material
8
- // Symbols, © Google LLC, licensed under the Apache License 2.0:
6
+ import { editStateOf } from "./state.js";
7
+ import { consensusValue } from "./table-edits.js";
8
+ import { createBorderState, selectionTable, tableBorderColorControl, tableBorderControl, tableShadingControl, } from "./table-format.js";
9
+ import { ALIGN_CENTER_ROW, ALIGN_LEFT_ROW, ALIGN_RIGHT_ROW } from "./text-format.js";
10
+ // The table glyphs Material Symbols has no symbol for, each drawn from the
11
+ // symbol nearest it — the one it is the opposite of, or the one it adapts — which
12
+ // keeps its frame and strokes. Modified from Material Symbols, © Google LLC,
13
+ // licensed under the Apache License 2.0:
9
14
  // https://www.apache.org/licenses/LICENSE-2.0
10
15
  /** Delete Rows: `add_row_below` with its plus an × of the same size and strokes.
11
16
  * Not the trash can, which on the same menu deletes the whole shape. */
@@ -16,6 +21,15 @@ const ICON_DELETE_COLUMNS = `<svg viewBox="0 -960 960 960" fill="currentColor"><
16
21
  * heads clear of the frame's sides, and their tails meet where the merge arrows'
17
22
  * tips do. */
18
23
  export const ICON_UNMERGE_CELLS = `<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M144-144v-240h72v168h168v72H144Zm432 0v-72h168v-168h72v240H576ZM312-336L168-480l144-144 51 51-57 57H432v72H306l57 57-51 51Zm336 0l-51-51 57-57H528v-72h126l-57-57 51-51 144 144-144 144ZM144-576v-240h240v72H216v168h-72Zm600 0v-168H576v-72h240v240h-72Z"/></svg>`;
24
+ // The three cell alignments, drawn from `position_top_right`: its frame, and its
25
+ // block centred left to right and set where the cell's text sits — as far below
26
+ // the frame's top as the symbol sets it, mirrored at the bottom, or midway.
27
+ /** Top: the block at the top of the frame — and the Align dropdown's own glyph. */
28
+ export const ICON_CELL_ALIGN_TOP = `<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M312-576h336v-96H312v96ZM216-144q-29.7 0-50.85-21.15Q144-186.3 144-216v-528q0-29.7 21.15-50.85Q186.3-816 216-816h528q29.7 0 50.85 21.15Q816-773.7 816-744v528q0 29.7-21.15 50.85Q773.7-144 744-144H216Zm0-72h528v-528H216v528Zm0-528v528-528Z"/></svg>`;
29
+ /** Center: the block midway. */
30
+ export const ICON_CELL_ALIGN_CENTER = `<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M312-432h336v-96H312v96ZM216-144q-29.7 0-50.85-21.15Q144-186.3 144-216v-528q0-29.7 21.15-50.85Q186.3-816 216-816h528q29.7 0 50.85 21.15Q816-773.7 816-744v528q0 29.7-21.15 50.85Q773.7-144 744-144H216Zm0-72h528v-528H216v528Zm0-528v528-528Z"/></svg>`;
31
+ /** Bottom: the block at the bottom of the frame. */
32
+ export const ICON_CELL_ALIGN_BOTTOM = `<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M312-288h336v-96H312v96ZM216-144q-29.7 0-50.85-21.15Q144-186.3 144-216v-528q0-29.7 21.15-50.85Q186.3-816 216-816h528q29.7 0 50.85 21.15Q816-773.7 816-744v528q0 29.7-21.15 50.85Q773.7-144 744-144H216Zm0-72h528v-528H216v528Zm0-528v528-528Z"/></svg>`;
19
33
  /** Enabled whenever a document is open — the Select rows, which only show where
20
34
  * there is a table to widen in: a right-click on one, or the Table tab's
21
35
  * Select, which {@link inTable} greys. */
@@ -28,13 +42,9 @@ export const whenTableEdit = (kind) => (c) => allowsTableEdit(c.selection, kind)
28
42
  * Inserting is live wherever the selection names a row to insert beside. */
29
43
  const inTable = whenTableEdit("insertRows");
30
44
  export const TABLE_SELECT_MENU = [
31
- { action: editAction({ kind: "selectTable", scope: "rows" }), label: "table.selectRow", enabledWhen: whenReady },
32
- {
33
- action: editAction({ kind: "selectTable", scope: "columns" }),
34
- label: "table.selectColumn",
35
- enabledWhen: whenReady,
36
- },
37
- { action: editAction({ kind: "selectTable", scope: "table" }), label: "table.selectTable", enabledWhen: whenReady },
45
+ { action: editAction({ kind: "selectTable", scope: "rows" }), label: "table.row", enabledWhen: whenReady },
46
+ { action: editAction({ kind: "selectTable", scope: "columns" }), label: "table.column", enabledWhen: whenReady },
47
+ { action: editAction({ kind: "selectTable", scope: "table" }), label: "table.table", enabledWhen: whenReady },
38
48
  ];
39
49
  export const TABLE_INSERT_MENU = [
40
50
  {
@@ -63,62 +73,242 @@ export const TABLE_INSERT_MENU = [
63
73
  enabledWhen: whenTableEdit("insertColumns"),
64
74
  },
65
75
  ];
76
+ /** Delete the table: a deck's frame goes as a selected shape does, which a
77
+ * placeholder that refuses deletion keeps. A word document's goes as the one
78
+ * position it takes in its story, a delete of text wherever its rows can be
79
+ * edited. */
80
+ const canDeleteTable = (c) => inTable(c) && (c.docType === "wordprocessing" || allowsEdit(c.selection, "deleteShapes"));
66
81
  export const TABLE_DELETE_MENU = [
67
82
  {
68
83
  action: editAction({ kind: "tableEdit", edit: "deleteRows" }),
69
- label: "table.deleteRows",
84
+ label: "table.rows",
70
85
  icon: ICON_DELETE_ROWS,
71
86
  enabledWhen: whenTableEdit("deleteRows"),
72
87
  },
73
88
  {
74
89
  action: editAction({ kind: "tableEdit", edit: "deleteColumns" }),
75
- label: "table.deleteColumns",
90
+ label: "table.columns",
76
91
  icon: ICON_DELETE_COLUMNS,
77
92
  enabledWhen: whenTableEdit("deleteColumns"),
78
93
  },
94
+ {
95
+ action: editAction({ kind: "deleteTable" }),
96
+ label: "table.table",
97
+ icon: ICON_DELETE,
98
+ enabledWhen: canDeleteTable,
99
+ separatorBefore: true,
100
+ },
101
+ ];
102
+ /**
103
+ * `menu` with its rows' labels spelled whole by `labels` — the Table tab's
104
+ * dropdowns, whose button shows only an icon, where the context menu's
105
+ * fly-outs sit under a row already saying Select, Insert or Delete.
106
+ */
107
+ function spelledOut(menu, labels) {
108
+ return menu.map((item) => ({
109
+ ...item,
110
+ label: (typeof item.label === "string" && labels[item.label]) || item.label,
111
+ }));
112
+ }
113
+ const TOOLBAR_SELECT_MENU = spelledOut(TABLE_SELECT_MENU, {
114
+ "table.row": "table.selectRow",
115
+ "table.column": "table.selectColumn",
116
+ "table.table": "table.selectTable",
117
+ });
118
+ const TOOLBAR_INSERT_MENU = spelledOut(TABLE_INSERT_MENU, {
119
+ "table.rowAbove": "table.insertRowAbove",
120
+ "table.rowBelow": "table.insertRowBelow",
121
+ "table.columnLeft": "table.insertColumnLeft",
122
+ "table.columnRight": "table.insertColumnRight",
123
+ });
124
+ const TOOLBAR_DELETE_MENU = spelledOut(TABLE_DELETE_MENU, {
125
+ "table.rows": "table.deleteRows",
126
+ "table.columns": "table.deleteColumns",
127
+ "table.table": "table.deleteTable",
128
+ });
129
+ /** Merge and Unmerge, the Cells dropdown's two rows. */
130
+ export const TABLE_CELLS_MENU = [
131
+ {
132
+ action: editAction({ kind: "tableEdit", edit: "mergeCells" }),
133
+ label: "table.mergeCells",
134
+ icon: ICON_MERGE_CELLS,
135
+ enabledWhen: whenTableEdit("mergeCells"),
136
+ },
137
+ {
138
+ action: editAction({ kind: "tableEdit", edit: "unmergeCells" }),
139
+ label: "table.unmergeCells",
140
+ icon: ICON_UNMERGE_CELLS,
141
+ enabledWhen: whenTableEdit("unmergeCells"),
142
+ },
143
+ ];
144
+ /** What the selection's cells hold, read off its table properties. */
145
+ function tableOf(c) {
146
+ return selectionTable(editStateOf(c).selectionProperties);
147
+ }
148
+ /** A cell format row: patches `properties` onto the cells the selection covers. */
149
+ const cellPatch = (properties) => ({
150
+ patchCellProperties: { properties },
151
+ });
152
+ /** A vertical alignment row, marked where the selected cells all sit so. */
153
+ function anchorRow(anchor, label, icon) {
154
+ return {
155
+ action: editAction({ kind: "tableEdit", edit: cellPatch({ anchor }) }),
156
+ label,
157
+ icon,
158
+ enabledWhen: whenTableEdit("patchCellProperties"),
159
+ activeWhen: (c) => consensusValue(tableOf(c)?.anchor) === anchor,
160
+ };
161
+ }
162
+ /** A text direction row, marked where the selected cells' text all runs so. */
163
+ function directionRow(direction, label, icon, enabledWhen = whenTableEdit("patchCellProperties")) {
164
+ return {
165
+ action: editAction({ kind: "tableEdit", edit: cellPatch({ direction }) }),
166
+ label,
167
+ icon,
168
+ enabledWhen,
169
+ activeWhen: (c) => consensusValue(tableOf(c)?.direction) === direction,
170
+ };
171
+ }
172
+ /** The directions a cell's text runs in. Stacked is a deck's: a word document
173
+ * has no stacked text, and a save would drop it. */
174
+ const TEXT_DIRECTION_MENU = [
175
+ directionRow("lrTb", "table.directionHorizontal", ICON_TEXT_HORIZONTAL),
176
+ directionRow("tbRl", "table.directionRotate90", ICON_TEXT_ROTATE_90),
177
+ directionRow("btLr", "table.directionRotate270", ICON_TEXT_ROTATE_270),
178
+ directionRow("wordArtVert", "table.directionStacked", ICON_TEXT_STACKED, (c) => c.docType !== "wordprocessing" && whenTableEdit("patchCellProperties")(c)),
179
+ ];
180
+ /** The Align dropdown: where the cells' text sits, top to bottom, then across
181
+ * — the paragraph alignments the Text tab sets — then the direction it runs in. */
182
+ export const TABLE_ALIGN_MENU = [
183
+ anchorRow("top", "table.alignTop", ICON_CELL_ALIGN_TOP),
184
+ anchorRow("center", "table.alignCenter", ICON_CELL_ALIGN_CENTER),
185
+ anchorRow("bottom", "table.alignBottom", ICON_CELL_ALIGN_BOTTOM),
186
+ { ...ALIGN_LEFT_ROW, separatorBefore: true },
187
+ ALIGN_CENTER_ROW,
188
+ ALIGN_RIGHT_ROW,
189
+ {
190
+ submenu: TEXT_DIRECTION_MENU,
191
+ label: "table.textDirection",
192
+ icon: ICON_TEXT_HORIZONTAL,
193
+ enabledWhen: whenTableEdit("patchCellProperties"),
194
+ separatorBefore: true,
195
+ },
196
+ ];
197
+ /** One of the Table Style Options: a switch that keeps the panel open, so the
198
+ * next can be flipped at once. */
199
+ function lookRow(flag, label) {
200
+ return {
201
+ action: editAction({ kind: "toggleTableLook", flag }),
202
+ label,
203
+ enabledWhen: whenTableEdit("patchTableProperties"),
204
+ checked: (c) => consensusValue(tableOf(c)?.look)?.[flag] === true,
205
+ keepsOpen: true,
206
+ };
207
+ }
208
+ /** The Style dropdown: the six regions of the table's style that apply. */
209
+ export const TABLE_STYLE_MENU = [
210
+ lookRow("firstRow", "table.headerRow"),
211
+ lookRow("lastRow", "table.totalRow"),
212
+ lookRow("rowBanding", "table.bandedRows"),
213
+ lookRow("firstColumn", "table.firstColumn"),
214
+ lookRow("lastColumn", "table.lastColumn"),
215
+ lookRow("columnBanding", "table.bandedColumns"),
79
216
  ];
80
217
  /**
81
218
  * The Table tab's commands, over the {@link EditTools} once edit mode is mounted,
82
- * in the order of the context menu's rows over a table: the Select dropdown, the
83
- * four inserts, the two deletes, then Merge and Unmerge.
84
- *
85
- * The inserts and deletes stand on the band where the menu puts them behind
86
- * fly-outs: they are the edits made over and over, and the band has room for them,
87
- * so a row more or less is a press rather than a dropdown's two, and each delete
88
- * greys on its own. Select stays a dropdown, its rows named by words that no glyph
89
- * on the band could tell apart.
219
+ * and `openProperties`, which opens the Table Properties dialog. One tab, kept
220
+ * short: Select, then Insert, Delete and Cells as dropdowns beside Distribute
221
+ * Columns; Shading, Border Color and Border; the Align and Style dropdowns; and
222
+ * the dialog, which holds the measures — height, width, margins — that would
223
+ * cost the band a field each.
90
224
  */
91
- export function tableCommands(tools) {
92
- const button = (id, group, label, icon, edit, kind) => ({
225
+ export function tableCommands(tools, openProperties) {
226
+ // The pen and the edges laid last, which Border Color and Border share.
227
+ const border = createBorderState();
228
+ const dropdown = (id, group, label, icon, menu, enabledWhen) => ({
93
229
  id,
94
230
  label,
95
231
  icon,
96
232
  group,
97
- run: {
98
- kind: "action",
99
- cluster: "table",
100
- press: () => runEditMenuAction(tools(), { kind: "tableEdit", edit }),
101
- },
102
- enabledWhen: whenTableEdit(kind),
233
+ run: { kind: "menu", menu, cluster: "table" },
234
+ enabledWhen,
103
235
  });
104
- const insert = (id, label, icon, edit, kind) => button(id, "tableInsert", label, icon, edit, kind);
105
236
  return {
106
237
  tableSelect: {
107
238
  id: "tableSelect",
108
239
  label: "table.select",
109
240
  icon: ICON_TOOL_POINTER,
110
241
  group: "tableSelect",
111
- run: { kind: "menu", menu: TABLE_SELECT_MENU },
242
+ run: { kind: "menu", menu: TOOLBAR_SELECT_MENU },
243
+ enabledWhen: inTable,
244
+ },
245
+ tableInsert: dropdown("tableInsert", "tableEdit", "table.insert", ICON_INSERT_ROW_BELOW, TOOLBAR_INSERT_MENU, inTable),
246
+ tableDelete: dropdown("tableDelete", "tableEdit", "table.delete", ICON_DELETE_ROWS, TOOLBAR_DELETE_MENU, inTable),
247
+ tableCells: dropdown("tableCells", "tableEdit", "table.cells", ICON_MERGE_CELLS, TABLE_CELLS_MENU, inTable),
248
+ tableDistribute: {
249
+ id: "tableDistribute",
250
+ label: "table.distributeColumns",
251
+ icon: ICON_DISTRIBUTE_H,
252
+ group: "tableEdit",
253
+ run: {
254
+ kind: "action",
255
+ cluster: "table",
256
+ press: () => runEditMenuAction(tools(), { kind: "tableEdit", edit: "distributeColumns" }),
257
+ },
258
+ enabledWhen: whenTableEdit("distributeColumns"),
259
+ },
260
+ tableShading: {
261
+ id: "tableShading",
262
+ label: "table.shading",
263
+ icon: ICON_FILL,
264
+ group: "tablePaint",
265
+ run: { kind: "control", cluster: "paint", create: (env) => tableShadingControl(env, tools()) },
266
+ enabledWhen: whenTableEdit("patchCellProperties"),
267
+ },
268
+ tableBorder: {
269
+ id: "tableBorder",
270
+ label: "table.border",
271
+ icon: ICON_BORDER_ALL,
272
+ group: "tablePaint",
273
+ run: { kind: "control", cluster: "paint", create: (env) => tableBorderControl(env, tools(), border) },
274
+ enabledWhen: whenTableEdit("patchCellBorders"),
275
+ },
276
+ tableBorderColor: {
277
+ id: "tableBorderColor",
278
+ label: "table.borderColor",
279
+ icon: ICON_BORDER_COLOR,
280
+ group: "tablePaint",
281
+ run: {
282
+ kind: "control",
283
+ cluster: "paint",
284
+ create: (env) => tableBorderColorControl(env, tools(), border),
285
+ },
286
+ enabledWhen: whenTableEdit("patchCellBorders"),
287
+ },
288
+ tableAlign: {
289
+ id: "tableAlign",
290
+ label: "table.cellAlignment",
291
+ icon: ICON_CELL_ALIGN_TOP,
292
+ group: "tableFormat",
293
+ run: { kind: "menu", menu: TABLE_ALIGN_MENU },
294
+ enabledWhen: whenTableEdit("patchCellProperties"),
295
+ },
296
+ tableStyle: {
297
+ id: "tableStyle",
298
+ label: "table.styleOptions",
299
+ icon: ICON_TABLE_STYLE,
300
+ group: "tableFormat",
301
+ run: { kind: "menu", menu: TABLE_STYLE_MENU },
302
+ enabledWhen: whenTableEdit("patchTableProperties"),
303
+ },
304
+ tableProperties: {
305
+ id: "tableProperties",
306
+ label: "table.properties",
307
+ icon: ICON_TABLE_PROPERTIES,
308
+ group: "tableProperties",
309
+ run: { kind: "action", press: openProperties },
112
310
  enabledWhen: inTable,
113
311
  },
114
- tableInsertRowAbove: insert("tableInsertRowAbove", "table.insertRowAbove", ICON_INSERT_ROW_ABOVE, { insertRows: { before: true, count: 1 } }, "insertRows"),
115
- tableInsertRowBelow: insert("tableInsertRowBelow", "table.insertRowBelow", ICON_INSERT_ROW_BELOW, { insertRows: { before: false, count: 1 } }, "insertRows"),
116
- tableInsertColumnLeft: insert("tableInsertColumnLeft", "table.insertColumnLeft", ICON_INSERT_COLUMN_LEFT, { insertColumns: { before: true, count: 1 } }, "insertColumns"),
117
- tableInsertColumnRight: insert("tableInsertColumnRight", "table.insertColumnRight", ICON_INSERT_COLUMN_RIGHT, { insertColumns: { before: false, count: 1 } }, "insertColumns"),
118
- tableDeleteRows: button("tableDeleteRows", "tableDelete", "table.deleteRowsButton", ICON_DELETE_ROWS, "deleteRows", "deleteRows"),
119
- tableDeleteColumns: button("tableDeleteColumns", "tableDelete", "table.deleteColumnsButton", ICON_DELETE_COLUMNS, "deleteColumns", "deleteColumns"),
120
- tableMerge: button("tableMerge", "tableMerge", "table.mergeCells", ICON_MERGE_CELLS, "mergeCells", "mergeCells"),
121
- tableUnmerge: button("tableUnmerge", "tableMerge", "table.unmergeCells", ICON_UNMERGE_CELLS, "unmergeCells", "unmergeCells"),
122
312
  };
123
313
  }
124
314
  //# sourceMappingURL=table.js.map
package/dist/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
package/dist/tabs.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { UDocType } from "@docmentis/udoc-ui";
2
2
  import type { CommandId, ToolbarTab } from "@docmentis/udoc-ui/internal";
3
3
  import type { MessageKey } from "./i18n/index.js";
4
4
  /** A command edit mode's tabs name: udoc-ui's, or the editor's own. */
5
- export type EditCommandId = CommandId | "paragraphStyle" | "fontFamily" | "fontSize" | "bold" | "italic" | "underline" | "strikethrough" | "superscript" | "subscript" | "widthScale" | "textFill" | "textHighlight" | "paragraphAlign" | "lineSpacing" | "bulletList" | "numberList" | "changeShape" | "shapeFillColor" | "shapeStrokeColor" | "shapeOrder" | "shapeAlign" | "shapeRotate" | "shapeGroup" | "shapeUngroup" | "objectFillColor" | "objectStrokeColor" | "objectOpacity" | "objectOrder" | "objectAlign" | "objectRotate" | "objectGroup" | "objectUngroup" | "tableSelect" | "tableInsertRowAbove" | "tableInsertRowBelow" | "tableInsertColumnLeft" | "tableInsertColumnRight" | "tableDeleteRows" | "tableDeleteColumns" | "tableMerge" | "tableUnmerge" | "ruler" | "createSlide" | "deleteSlide" | "changeLayout" | "insertImage" | "insertPageImage" | "insertShape" | "insertGalleryShape" | "insertTextBox" | "pageCreate" | "pageDelete" | "pageRotateLeft" | "pageRotateRight" | "pageResize" | "rotatePageLeft" | "rotatePageRight" | "flipPageHorizontal" | "flipPageVertical" | "cropPage" | "resizePage" | "cropAspect" | "cropReset" | "cropCancel" | "cropApply";
5
+ export type EditCommandId = CommandId | "paragraphStyle" | "fontFamily" | "fontSize" | "bold" | "italic" | "underline" | "strikethrough" | "superscript" | "subscript" | "widthScale" | "textFill" | "textHighlight" | "paragraphAlign" | "lineSpacing" | "bulletList" | "numberList" | "changeShape" | "shapeFillColor" | "shapeStrokeColor" | "shapeOrder" | "shapeAlign" | "shapeRotate" | "shapeGroup" | "shapeUngroup" | "objectFillColor" | "objectStrokeColor" | "objectOpacity" | "objectOrder" | "objectAlign" | "objectRotate" | "objectGroup" | "objectUngroup" | "tableSelect" | "tableInsert" | "tableDelete" | "tableCells" | "tableDistribute" | "tableShading" | "tableBorderColor" | "tableBorder" | "tableAlign" | "tableStyle" | "tableProperties" | "ruler" | "createSlide" | "deleteSlide" | "changeLayout" | "insertImage" | "insertTable" | "insertPageImage" | "insertShape" | "insertGalleryShape" | "insertTextBox" | "pageCreate" | "pageDelete" | "pageRotateLeft" | "pageRotateRight" | "pageResize" | "rotatePageLeft" | "rotatePageRight" | "flipPageHorizontal" | "flipPageVertical" | "cropPage" | "resizePage" | "cropAspect" | "cropReset" | "cropCancel" | "cropApply";
6
6
  /** A tab of edit mode's. */
7
7
  type EditTab = ToolbarTab<MessageKey>;
8
8
  /** Edit mode's tab strip for a document of `docType`. */
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAUnD,OAAO,KAAK,EAAE,SAAS,EAAyB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAYlD,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,gBAAgB,GAChB,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,aAAa,GACb,WAAW,GACX,YAAY,GACZ,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,aAAa,GACb,aAAa,GACb,cAAc,GACd,aAAa,GACb,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,GACvB,wBAAwB,GACxB,iBAAiB,GACjB,oBAAoB,GACpB,YAAY,GACZ,cAAc,GACd,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;AAElB,4BAA4B;AAC5B,KAAK,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AAoTtC,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,OAAO,EAAE,CAerE"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAUnD,OAAO,KAAK,EAAE,SAAS,EAAyB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAYlD,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,gBAAgB,GAChB,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,aAAa,GACb,WAAW,GACX,YAAY,GACZ,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,aAAa,GACb,aAAa,GACb,cAAc,GACd,aAAa,GACb,eAAe,GACf,aAAa,GACb,aAAa,GACb,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;AAElB,4BAA4B;AAC5B,KAAK,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AA+UtC,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,OAAO,EAAE,CAerE"}
package/dist/tabs.js CHANGED
@@ -86,17 +86,22 @@ const PRESENTATION_TEXT_TAB = {
86
86
  commands: TEXT_TAB.commands.filter((id) => id !== "paragraphStyle" && id !== "widthScale"),
87
87
  };
88
88
  /**
89
- * The Shape tab — outline + appearance + arrangement for graphics objects. Change
90
- * Shape's gallery, then Fill / Line split buttons (color per channel), then a
91
- * button group of the arrangement dropdowns — Order (z-order), Align (align /
92
- * distribute to the selection or the page) and Rotate (quarter-turn rotations +
93
- * flips) — and one of Group and Ungroup. Picked shapes open it.
89
+ * The Shape tab — new shapes, then outline + appearance + arrangement for
90
+ * graphics objects. Text Box and the gallery's shapes first, dragged out as the
91
+ * Slide and Image tabs' are, as PowerPoint's Shape Format starts with its Insert
92
+ * Shapes; then Change Shape's gallery, then Fill / Line split buttons (color per
93
+ * channel), then a button group of the arrangement dropdowns — Order (z-order),
94
+ * Align (align / distribute to the selection or the page) and Rotate
95
+ * (quarter-turn rotations + flips) — and one of Group and Ungroup. Picked shapes
96
+ * open it.
94
97
  */
95
98
  const SHAPE_TAB = {
96
99
  id: "shape",
97
100
  label: "ribbon.shape",
98
101
  icon: ICON_TAB_SHAPE,
99
102
  commands: [
103
+ "insertTextBox",
104
+ "insertGalleryShape",
100
105
  "changeShape",
101
106
  "shapeFillColor",
102
107
  "shapeStrokeColor",
@@ -108,43 +113,61 @@ const SHAPE_TAB = {
108
113
  ],
109
114
  opensFor: pickedShapes,
110
115
  };
116
+ /** The wordprocessing Shape tab — {@link SHAPE_TAB} without Text Box and the
117
+ * gallery's shapes: nothing places a drawing in a word document's flow yet,
118
+ * and the tab drops them rather than greying them for good. */
119
+ const WORDPROCESSING_SHAPE_TAB = {
120
+ ...SHAPE_TAB,
121
+ commands: SHAPE_TAB.commands.filter((id) => id !== "insertTextBox" && id !== "insertGalleryShape"),
122
+ };
111
123
  /**
112
- * The Table tab — the edits of the table the selection is in: the Select dropdown,
113
- * the four inserts, the two deletes, then Merge and Unmerge. A block of cells
114
- * opens it, a selection with no text of its own to format. A caret in a cell opens
115
- * the Text tab ahead of it, as a caret in a shape's text does ahead of Shape, but
116
- * leaves this tab open if it is: selecting a row, deleting it and clicking a cell
117
- * goes from a block to a caret and back, all of it this tab's work.
124
+ * The Table tab — a new table, then the edits and the format of the table the
125
+ * selection is in, on one short band, as an embedded editor has room for: Insert
126
+ * Table — on a deck's slide or over an image's page, as their Slide and Image
127
+ * tabs have it too, or at a caret in a word document's body, not a cell's; then
128
+ * the Select, Insert, Delete and Cells dropdowns and Distribute Columns; Shading,
129
+ * Border Color and Border; the Align and Style dropdowns; and Properties, the
130
+ * dialog holding the measures. A block of cells opens it, a selection with no
131
+ * text of its own to format. A caret in a cell opens the Text tab ahead of it, as
132
+ * a caret in a shape's text does ahead of Shape, but leaves this tab open if it
133
+ * is: selecting a row, deleting it and clicking a cell goes from a block to a
134
+ * caret and back, all of it this tab's work.
118
135
  */
119
136
  const TABLE_TAB = {
120
137
  id: "table",
121
138
  label: "ribbon.table",
122
139
  icon: ICON_TAB_TABLE,
123
140
  commands: [
141
+ "insertTable",
124
142
  "tableSelect",
125
- "tableInsertRowAbove",
126
- "tableInsertRowBelow",
127
- "tableInsertColumnLeft",
128
- "tableInsertColumnRight",
129
- "tableDeleteRows",
130
- "tableDeleteColumns",
131
- "tableMerge",
132
- "tableUnmerge",
143
+ "tableInsert",
144
+ "tableDelete",
145
+ "tableCells",
146
+ "tableDistribute",
147
+ "tableShading",
148
+ "tableBorderColor",
149
+ "tableBorder",
150
+ "tableAlign",
151
+ "tableStyle",
152
+ "tableProperties",
133
153
  ],
134
154
  opensFor: inTable,
135
155
  staysOpen: true,
136
156
  };
137
157
  /**
138
- * The Object tab — the portable (PDF) counterpart of {@link SHAPE_TAB}: its own
139
- * Line, Fill, Opacity and arrangement, gated on the object edits, over the page's content
140
- * objects (paths, text, images) rather than DrawingML shapes. Picked objects
141
- * open it, as does a caret in one's text.
158
+ * The Object tab — the portable (PDF) counterpart of {@link SHAPE_TAB}: the Page
159
+ * tab's Text Box and Shapes first, then its own Line, Fill, Opacity and
160
+ * arrangement, gated on the object edits, over the page's content objects
161
+ * (paths, text, images) rather than DrawingML shapes. Picked objects open it, as
162
+ * does a caret in one's text.
142
163
  */
143
164
  const OBJECT_TAB = {
144
165
  id: "object",
145
166
  label: "ribbon.object",
146
167
  icon: ICON_TAB_OBJECT,
147
168
  commands: [
169
+ "insertTextBox",
170
+ "insertShape",
148
171
  "objectStrokeColor",
149
172
  "objectFillColor",
150
173
  "objectOpacity",
@@ -163,11 +186,12 @@ const PORTABLE_ANNOTATE_TAB = { ...ANNOTATE_TAB, opensFor: annotations };
163
186
  * The image Image tab — the current page's Rotate Left / Right, Flip
164
187
  * Horizontal / Vertical, Crop and Image Size, the turns and flips the pages picked
165
188
  * in the thumbnails instead, then what is drawn over the page: a text box and the
166
- * gallery's shapes. All icons, named by their tooltips. An image's strip opens on
167
- * it, and pages picked or nothing selected open it. **Contextual** (see {@link ToolbarTab.contextual}): while
168
- * a page is cropped, crop mode's own controls show in their place — the aspect the
169
- * box keeps, Reset, Cancel and Apply — and a page that takes no markup leaves out
170
- * the text box and the shapes.
189
+ * gallery's shapes, dragged out on it, and a table sized on a grid. All icons,
190
+ * named by their tooltips. An image's strip opens on it, and pages picked or
191
+ * nothing selected open it. **Contextual** (see {@link ToolbarTab.contextual}):
192
+ * while a page is cropped, crop mode's own controls show in their place — the
193
+ * aspect the box keeps, Reset, Cancel and Apply — and a page that takes no markup
194
+ * leaves out the text box, the shapes and the table.
171
195
  */
172
196
  const IMAGE_TAB = {
173
197
  id: "image",
@@ -182,6 +206,7 @@ const IMAGE_TAB = {
182
206
  "resizePage",
183
207
  "insertTextBox",
184
208
  "insertGalleryShape",
209
+ "insertTable",
185
210
  "cropAspect",
186
211
  "cropReset",
187
212
  "cropCancel",
@@ -220,9 +245,9 @@ const PORTABLE_PAGE_TAB = {
220
245
  * The presentation Slide tab: the slides' edits — New Slide, after the current
221
246
  * slide, then Delete Slide and Change Layout, of the current slide or those
222
247
  * picked in the thumbnails — then what goes on a slide: a text box and the
223
- * gallery's shapes, dragged out on it, and a picture. All icons, named by their
224
- * tooltips. A deck's strip opens on it, and slides or sections picked or nothing
225
- * selected open it.
248
+ * gallery's shapes, dragged out on it, a picture, and a table sized on a grid.
249
+ * All icons, named by their tooltips. A deck's strip opens on it, and slides or
250
+ * sections picked or nothing selected open it.
226
251
  */
227
252
  const PRESENTATION_SLIDE_TAB = {
228
253
  id: "slide",
@@ -235,6 +260,7 @@ const PRESENTATION_SLIDE_TAB = {
235
260
  "insertTextBox",
236
261
  "insertGalleryShape",
237
262
  "insertImage",
263
+ "insertTable",
238
264
  ],
239
265
  opensOnEntry: true,
240
266
  opensFor: slidesOrNothing,
@@ -268,19 +294,19 @@ const PRESENTATION_TABS = [
268
294
  presentTab("presentation"),
269
295
  editViewTab("presentation"),
270
296
  ];
271
- /** The wordprocessing strip: Text and Table, then Shape for the drawings in its
272
- * flow, and its View last. */
297
+ /** The wordprocessing strip: Text, then Table, then Shape for the drawings in
298
+ * its flow, then Review, and its View last. */
273
299
  const WORDPROCESSING_TABS = [
274
300
  WORDPROCESSING_TEXT_TAB,
275
301
  TABLE_TAB,
276
- SHAPE_TAB,
302
+ WORDPROCESSING_SHAPE_TAB,
277
303
  REVIEW_TAB,
278
304
  editViewTab("wordprocessing"),
279
305
  ];
280
- /** The image strip: its own Image, then the Text and Shape tabs of the shapes
281
- * drawn over its pages — a deck's, as they are a slide's shapes — and its View
282
- * last. */
283
- const IMAGE_TABS = [IMAGE_TAB, PRESENTATION_TEXT_TAB, SHAPE_TAB, editViewTab("image")];
306
+ /** The image strip: its own Image, then the Text, Table and Shape tabs of what
307
+ * is drawn over its pages — a deck's, as they are a slide's shapes and tables —
308
+ * and its View last. Table goes ahead of Shape, as on a deck. */
309
+ const IMAGE_TABS = [IMAGE_TAB, PRESENTATION_TEXT_TAB, TABLE_TAB, SHAPE_TAB, editViewTab("image")];
284
310
  /** The spreadsheet strip: its View. */
285
311
  const SPREADSHEET_TABS = [editViewTab("spreadsheet")];
286
312
  /** Edit mode's tab strip for a document of `docType`. */
package/dist/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"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"}