@docmentis/udoc-editor 0.8.7 → 0.8.9

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 (133) hide show
  1. package/dist/arrange.d.ts +3 -0
  2. package/dist/arrange.d.ts.map +1 -1
  3. package/dist/arrange.js +10 -12
  4. package/dist/arrange.js.map +1 -1
  5. package/dist/components/CropOverlay.d.ts +27 -0
  6. package/dist/components/CropOverlay.d.ts.map +1 -0
  7. package/dist/components/CropOverlay.js +126 -0
  8. package/dist/components/CropOverlay.js.map +1 -0
  9. package/dist/components/ImageSizeModal.d.ts +23 -0
  10. package/dist/components/ImageSizeModal.d.ts.map +1 -0
  11. package/dist/components/ImageSizeModal.js +189 -0
  12. package/dist/components/ImageSizeModal.js.map +1 -0
  13. package/dist/components/NewSlideModal.d.ts +7 -2
  14. package/dist/components/NewSlideModal.d.ts.map +1 -1
  15. package/dist/components/NewSlideModal.js +10 -3
  16. package/dist/components/NewSlideModal.js.map +1 -1
  17. package/dist/crop-box.d.ts +33 -0
  18. package/dist/crop-box.d.ts.map +1 -0
  19. package/dist/crop-box.js +107 -0
  20. package/dist/crop-box.js.map +1 -0
  21. package/dist/crop.d.ts +28 -0
  22. package/dist/crop.d.ts.map +1 -0
  23. package/dist/crop.js +256 -0
  24. package/dist/crop.js.map +1 -0
  25. package/dist/edit-client.d.ts +0 -6
  26. package/dist/edit-client.d.ts.map +1 -1
  27. package/dist/edit-client.js +0 -8
  28. package/dist/edit-client.js.map +1 -1
  29. package/dist/edit-mode.d.ts +0 -2
  30. package/dist/edit-mode.d.ts.map +1 -1
  31. package/dist/edit-mode.js +48 -14
  32. package/dist/edit-mode.js.map +1 -1
  33. package/dist/editor.d.ts +0 -8
  34. package/dist/editor.d.ts.map +1 -1
  35. package/dist/editor.js +0 -10
  36. package/dist/editor.js.map +1 -1
  37. package/dist/i18n/ar.d.ts.map +1 -1
  38. package/dist/i18n/ar.js +15 -1
  39. package/dist/i18n/ar.js.map +1 -1
  40. package/dist/i18n/de.d.ts.map +1 -1
  41. package/dist/i18n/de.js +15 -1
  42. package/dist/i18n/de.js.map +1 -1
  43. package/dist/i18n/en.d.ts.map +1 -1
  44. package/dist/i18n/en.js +15 -1
  45. package/dist/i18n/en.js.map +1 -1
  46. package/dist/i18n/es.d.ts.map +1 -1
  47. package/dist/i18n/es.js +15 -1
  48. package/dist/i18n/es.js.map +1 -1
  49. package/dist/i18n/fr.d.ts.map +1 -1
  50. package/dist/i18n/fr.js +15 -1
  51. package/dist/i18n/fr.js.map +1 -1
  52. package/dist/i18n/ja.d.ts.map +1 -1
  53. package/dist/i18n/ja.js +15 -1
  54. package/dist/i18n/ja.js.map +1 -1
  55. package/dist/i18n/ko.d.ts.map +1 -1
  56. package/dist/i18n/ko.js +15 -1
  57. package/dist/i18n/ko.js.map +1 -1
  58. package/dist/i18n/messages.d.ts +28 -2
  59. package/dist/i18n/messages.d.ts.map +1 -1
  60. package/dist/i18n/pt-BR.d.ts.map +1 -1
  61. package/dist/i18n/pt-BR.js +15 -1
  62. package/dist/i18n/pt-BR.js.map +1 -1
  63. package/dist/i18n/ru.d.ts.map +1 -1
  64. package/dist/i18n/ru.js +15 -1
  65. package/dist/i18n/ru.js.map +1 -1
  66. package/dist/i18n/zh-CN.d.ts.map +1 -1
  67. package/dist/i18n/zh-CN.js +15 -1
  68. package/dist/i18n/zh-CN.js.map +1 -1
  69. package/dist/i18n/zh-TW.d.ts.map +1 -1
  70. package/dist/i18n/zh-TW.js +15 -1
  71. package/dist/i18n/zh-TW.js.map +1 -1
  72. package/dist/icons.d.ts +10 -2
  73. package/dist/icons.d.ts.map +1 -1
  74. package/dist/icons.js +10 -2
  75. package/dist/icons.js.map +1 -1
  76. package/dist/image.d.ts +39 -0
  77. package/dist/image.d.ts.map +1 -0
  78. package/dist/image.js +203 -0
  79. package/dist/image.js.map +1 -0
  80. package/dist/insert.d.ts +3 -3
  81. package/dist/insert.d.ts.map +1 -1
  82. package/dist/insert.js +17 -8
  83. package/dist/insert.js.map +1 -1
  84. package/dist/markup.d.ts +23 -0
  85. package/dist/markup.d.ts.map +1 -0
  86. package/dist/markup.js +100 -0
  87. package/dist/markup.js.map +1 -0
  88. package/dist/menu-action.d.ts +6 -1
  89. package/dist/menu-action.d.ts.map +1 -1
  90. package/dist/menu-action.js +4 -1
  91. package/dist/menu-action.js.map +1 -1
  92. package/dist/new-slide.d.ts +1 -2
  93. package/dist/new-slide.d.ts.map +1 -1
  94. package/dist/new-slide.js +9 -5
  95. package/dist/new-slide.js.map +1 -1
  96. package/dist/paint.d.ts +5 -1
  97. package/dist/paint.d.ts.map +1 -1
  98. package/dist/paint.js +27 -16
  99. package/dist/paint.js.map +1 -1
  100. package/dist/ruler.d.ts +8 -1
  101. package/dist/ruler.d.ts.map +1 -1
  102. package/dist/ruler.js +16 -1
  103. package/dist/ruler.js.map +1 -1
  104. package/dist/state.d.ts +25 -10
  105. package/dist/state.d.ts.map +1 -1
  106. package/dist/state.js +3 -1
  107. package/dist/state.js.map +1 -1
  108. package/dist/styles.d.ts.map +1 -1
  109. package/dist/styles.js +149 -2
  110. package/dist/styles.js.map +1 -1
  111. package/dist/tabs.d.ts +1 -1
  112. package/dist/tabs.d.ts.map +1 -1
  113. package/dist/tabs.js +72 -19
  114. package/dist/tabs.js.map +1 -1
  115. package/dist/text-format.js +7 -7
  116. package/dist/text-format.js.map +1 -1
  117. package/dist/tools.d.ts +3 -0
  118. package/dist/tools.d.ts.map +1 -1
  119. package/dist/tools.js +4 -2
  120. package/dist/tools.js.map +1 -1
  121. package/dist/version.d.ts +1 -1
  122. package/dist/version.js +1 -1
  123. package/dist/worker/handlers.d.ts.map +1 -1
  124. package/dist/worker/handlers.js +0 -9
  125. package/dist/worker/handlers.js.map +1 -1
  126. package/dist/worker/protocol.d.ts +1 -12
  127. package/dist/worker/protocol.d.ts.map +1 -1
  128. package/dist/worker/worker-source.js +1 -1
  129. package/package.json +3 -3
  130. package/dist/formatting-marks.d.ts +0 -23
  131. package/dist/formatting-marks.d.ts.map +0 -1
  132. package/dist/formatting-marks.js +0 -55
  133. package/dist/formatting-marks.js.map +0 -1
package/dist/arrange.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import type { AlignEdge, EditAxis, MenuItem, UIShellHost, ZOrder } from "@docmentis/udoc-ui/internal";
2
2
  import type { MessageKey } from "./i18n/index.js";
3
+ /** Flip Vertical's glyph: Material Symbols draws the mirror about an upright
4
+ * axis only, so the horizontal one is {@link ICON_FLIP} given a quarter turn. */
5
+ export declare const ICON_FLIP_VERTICAL: string;
3
6
  /**
4
7
  * The Shape tab's Arrange dropdown: the arrangement submenus — Order (z-order),
5
8
  * Align (align / distribute), and Rotate (rotate / flip) as fly-outs — then the
@@ -1 +1 @@
1
- {"version":3,"file":"arrange.d.ts","sourceRoot":"","sources":["../src/arrange.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,SAAS,EACT,QAAQ,EAER,QAAQ,EAER,WAAW,EACX,MAAM,EACT,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkLlD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EAsB7D,CAAC;AA6IF;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EA2B9D,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW;8BAYf,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;2BAWzB,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;gCAQpB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC;0BAO9B,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC;0BAO1B,OAAO,CAAC,IAAI,CAAC;4BAOX,OAAO,CAAC,IAAI,CAAC;iCASN,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAgB7D;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"arrange.d.ts","sourceRoot":"","sources":["../src/arrange.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,SAAS,EACT,QAAQ,EAER,QAAQ,EAER,WAAW,EACX,MAAM,EACT,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0BlD;kFACkF;AAClF,eAAO,MAAM,kBAAkB,QAAuE,CAAC;AAoJvG;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EAsB7D,CAAC;AA6IF;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,UAAU,CAAC,EA2B9D,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW;8BAYf,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;2BAWzB,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;gCAQpB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC;0BAO9B,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC;0BAO1B,OAAO,CAAC,IAAI,CAAC;4BAOX,OAAO,CAAC,IAAI,CAAC;iCASN,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAgB7D;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
package/dist/arrange.js CHANGED
@@ -1,18 +1,16 @@
1
1
  // Arrange: the Shape and Object tabs' Arrange menus — z-order, align and
2
2
  // distribute, rotate and flip, group — and the edits they make of the
3
3
  // selection.
4
- import { allowsEdit, ICON_ROTATE_LEFT, ICON_ROTATE_RIGHT } from "@docmentis/udoc-ui/internal";
4
+ import { allowsEdit, ICON_ROTATE_LEFT, ICON_ROTATE_RIGHT, profileFor } from "@docmentis/udoc-ui/internal";
5
5
  import { ICON_ALIGN_BOTTOM, ICON_ALIGN_CENTER_H, ICON_ALIGN_LEFT, ICON_ALIGN_MIDDLE_V, ICON_ALIGN_RIGHT, ICON_ALIGN_TOP, ICON_BRING_FORWARD, ICON_BRING_TO_FRONT, ICON_DISTRIBUTE_H, ICON_DISTRIBUTE_V, ICON_FLIP, ICON_GROUP, ICON_ORDER, ICON_SEND_BACKWARD, ICON_SEND_TO_BACK, ICON_UNGROUP, } from "./icons.js";
6
6
  import { editAction } from "./menu-action.js";
7
7
  import { editState, editStateOf } from "./state.js";
8
8
  /** A quarter turn in radians — the Rotate dropdown's 90° steps. Document space is
9
9
  * y-down, so a positive angle reads as clockwise on screen. */
10
10
  const QUARTER_TURN = Math.PI / 2;
11
- /** `icon` given a quarter turn — Flip Vertical's glyph: Material Symbols draws
12
- * the mirror about an upright axis only, so the horizontal one lies it down. */
13
- function quarterTurned(icon) {
14
- return icon.replace("<svg ", '<svg style="transform: rotate(90deg)" ');
15
- }
11
+ /** Flip Vertical's glyph: Material Symbols draws the mirror about an upright
12
+ * axis only, so the horizontal one is {@link ICON_FLIP} given a quarter turn. */
13
+ export const ICON_FLIP_VERTICAL = ICON_FLIP.replace("<svg ", '<svg style="transform: rotate(90deg)" ');
16
14
  /** True when any item in `items` is enabled — the enablement of a submenu row
17
15
  * (and of an Arrange trigger), which lights up exactly when it has a live
18
16
  * child to offer. */
@@ -146,7 +144,7 @@ const SHAPE_ROTATE_MENU = [
146
144
  {
147
145
  action: editAction({ kind: "flip", axis: "vertical" }),
148
146
  label: "arrange.flipVertical",
149
- icon: quarterTurned(ICON_FLIP),
147
+ icon: ICON_FLIP_VERTICAL,
150
148
  enabledWhen: (c) => allowsEdit(c.selection, "scaleEachShape"),
151
149
  },
152
150
  ];
@@ -313,7 +311,7 @@ const OBJECT_ROTATE_MENU = [
313
311
  {
314
312
  action: editAction({ kind: "flip", axis: "vertical" }),
315
313
  label: "arrange.flipVertical",
316
- icon: quarterTurned(ICON_FLIP),
314
+ icon: ICON_FLIP_VERTICAL,
317
315
  enabledWhen: (c) => allowsEdit(c.selection, "scaleEachObject"),
318
316
  },
319
317
  ];
@@ -360,11 +358,11 @@ export function createArrangeEdits(host) {
360
358
  const { store, client, commit } = host;
361
359
  const annotationsSelected = () => host.annotationsSelected();
362
360
  // Each edit names what it acts on, as its command does: a drawing's shapes
363
- // — in the doc types embedding the drawing families, a slide's shapes or a
364
- // docx drawing's — or a PDF's page objects or annotations.
361
+ // — in the doc types embedding the drawing families, a slide's shapes, a
362
+ // docx drawing's or those drawn over an image — or a PDF's page objects or
363
+ // annotations.
365
364
  function shapeDocType() {
366
- const docType = store.getState().docType;
367
- return docType === "presentation" || docType === "wordprocessing";
365
+ return profileFor(store.getState().docType).drawingShapes;
368
366
  }
369
367
  function reorderSelection(order) {
370
368
  let edit;
@@ -1 +1 @@
1
- {"version":3,"file":"arrange.js","sourceRoot":"","sources":["../src/arrange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrange.js","sourceRoot":"","sources":["../src/arrange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { OverlaySource, PageView } from "@docmentis/udoc-ui";
2
+ import type { CropBox, CropHandle } from "../crop-box.js";
3
+ import type { I18n } from "../i18n/index.js";
4
+ /** What the crop overlay draws, and what its gestures ask. */
5
+ export interface CropOverlayHooks {
6
+ i18n: I18n;
7
+ /** The page cropped. */
8
+ page: number;
9
+ /** The box now. */
10
+ box(): CropBox;
11
+ /** The size the page would show at, cropped to `box` — its badge. */
12
+ label(box: CropBox): string;
13
+ /** The page's on-screen box this frame, which a drag measures by. */
14
+ view(view: PageView): void;
15
+ /** Drag `handle` from where the box was, `from`, by `dx` × `dy` (fractions
16
+ * of the page), keeping its aspect when `keep` (Shift); the box it lands
17
+ * at. */
18
+ drag(handle: CropHandle, from: CropBox, dx: number, dy: number, keep: boolean): CropBox;
19
+ /** Apply the crop — a double click in the box. */
20
+ apply(): void;
21
+ }
22
+ /**
23
+ * The crop overlay: over page `hooks.page`, the box `hooks.box()`, which its
24
+ * handles and its middle drag through `hooks.drag`.
25
+ */
26
+ export declare function cropOverlay(hooks: CropOverlayHooks): OverlaySource;
27
+ //# sourceMappingURL=CropOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CropOverlay.d.ts","sourceRoot":"","sources":["../../src/components/CropOverlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,GAAG,IAAI,OAAO,CAAC;IACf,qEAAqE;IACrE,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,qEAAqE;IACrE,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B;;cAEU;IACV,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxF,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;CACjB;AAyDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CAmFlE"}
@@ -0,0 +1,126 @@
1
+ /** The handles around the box, each with the cursor it shows. */
2
+ const HANDLES = [
3
+ ["nw", "nwse-resize"],
4
+ ["n", "ns-resize"],
5
+ ["ne", "nesw-resize"],
6
+ ["e", "ew-resize"],
7
+ ["se", "nwse-resize"],
8
+ ["s", "ns-resize"],
9
+ ["sw", "nesw-resize"],
10
+ ["w", "ew-resize"],
11
+ ];
12
+ /** The room the size badge needs above the box to sit outside it, CSS px. */
13
+ const BADGE_ROOM = 28;
14
+ function div(className) {
15
+ const el = document.createElement("div");
16
+ el.className = className;
17
+ return el;
18
+ }
19
+ /** Lay `parts` out over a page `width` × `height` CSS px, the box at `box`. */
20
+ function layout(parts, width, height, box, label) {
21
+ const x0 = box.x0 * width;
22
+ const y0 = box.y0 * height;
23
+ const x1 = box.x1 * width;
24
+ const y1 = box.y1 * height;
25
+ const place = (el, left, top, w, h) => {
26
+ el.style.left = `${left}px`;
27
+ el.style.top = `${top}px`;
28
+ el.style.width = `${Math.max(0, w)}px`;
29
+ el.style.height = `${Math.max(0, h)}px`;
30
+ };
31
+ parts.root.style.width = `${width}px`;
32
+ parts.root.style.height = `${height}px`;
33
+ const [top, bottom, left, right] = parts.shades;
34
+ place(top, 0, 0, width, y0);
35
+ place(bottom, 0, y1, width, height - y1);
36
+ place(left, 0, y0, x0, y1 - y0);
37
+ place(right, x1, y0, width - x1, y1 - y0);
38
+ place(parts.box, x0, y0, x1 - x0, y1 - y0);
39
+ parts.badge.textContent = label;
40
+ parts.badge.style.left = `${(x0 + x1) / 2}px`;
41
+ // Above the box where there is room, else just inside its top edge.
42
+ parts.badge.style.top = `${y0 >= BADGE_ROOM ? y0 - BADGE_ROOM : y0 + 6}px`;
43
+ }
44
+ /**
45
+ * The crop overlay: over page `hooks.page`, the box `hooks.box()`, which its
46
+ * handles and its middle drag through `hooks.drag`.
47
+ */
48
+ export function cropOverlay(hooks) {
49
+ // The page's last on-screen box, which a drag in progress measures by.
50
+ let current = null;
51
+ let parts = null;
52
+ function create() {
53
+ const root = div("udoc-crop");
54
+ root.setAttribute("role", "group");
55
+ root.setAttribute("aria-label", hooks.i18n.t("command.cropPage"));
56
+ const shades = [
57
+ div("udoc-crop__shade"),
58
+ div("udoc-crop__shade"),
59
+ div("udoc-crop__shade"),
60
+ div("udoc-crop__shade"),
61
+ ];
62
+ const box = div("udoc-crop__box");
63
+ box.dataset["handle"] = "move";
64
+ box.append(div("udoc-crop__grid"));
65
+ for (const [handle, cursor] of HANDLES) {
66
+ const el = div(`udoc-crop__handle udoc-crop__handle--${handle}`);
67
+ el.dataset["handle"] = handle;
68
+ el.style.cursor = cursor;
69
+ box.append(el);
70
+ }
71
+ const badge = div("udoc-crop__size");
72
+ root.append(...shades, box, badge);
73
+ parts = { root, shades, box, badge };
74
+ const laid = parts;
75
+ // A press on a handle, or in the box, drags it until the release.
76
+ root.addEventListener("pointerdown", (e) => {
77
+ const handle = e.target.dataset["handle"];
78
+ if (e.button !== 0 || !handle || !current)
79
+ return;
80
+ e.preventDefault();
81
+ e.stopPropagation();
82
+ root.setPointerCapture(e.pointerId);
83
+ const from = hooks.box();
84
+ const start = { x: e.clientX, y: e.clientY };
85
+ const move = (ev) => {
86
+ if (ev.pointerId !== e.pointerId || !current)
87
+ return;
88
+ const view = current;
89
+ const box = hooks.drag(handle, from, (ev.clientX - start.x) / view.width, (ev.clientY - start.y) / view.height, ev.shiftKey);
90
+ layout(laid, view.width, view.height, box, hooks.label(box));
91
+ };
92
+ const end = (ev) => {
93
+ if (ev.pointerId !== e.pointerId)
94
+ return;
95
+ root.releasePointerCapture(e.pointerId);
96
+ root.removeEventListener("pointermove", move);
97
+ root.removeEventListener("pointerup", end);
98
+ root.removeEventListener("pointercancel", end);
99
+ };
100
+ root.addEventListener("pointermove", move);
101
+ root.addEventListener("pointerup", end);
102
+ root.addEventListener("pointercancel", end);
103
+ });
104
+ box.addEventListener("dblclick", (e) => {
105
+ e.preventDefault();
106
+ hooks.apply();
107
+ });
108
+ return root;
109
+ }
110
+ return (frame) => frame.views
111
+ .filter((view) => view.index === hooks.page)
112
+ .map((view) => ({
113
+ key: "crop",
114
+ x: view.x,
115
+ y: view.y,
116
+ create,
117
+ update: () => {
118
+ current = view;
119
+ hooks.view(view);
120
+ const box = hooks.box();
121
+ if (parts)
122
+ layout(parts, view.width, view.height, box, hooks.label(box));
123
+ },
124
+ }));
125
+ }
126
+ //# sourceMappingURL=CropOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CropOverlay.js","sourceRoot":"","sources":["../../src/components/CropOverlay.ts"],"names":[],"mappings":"AAgCA,iEAAiE;AACjE,MAAM,OAAO,GAAwC;IACjD,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,GAAG,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,GAAG,EAAE,CAAC;AAUtB,SAAS,GAAG,CAAC,SAAiB;IAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,SAAS,MAAM,CAAC,KAAgB,EAAE,KAAa,EAAE,MAAc,EAAE,GAAY,EAAE,KAAa;IACxF,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,EAAe,EAAE,IAAY,EAAE,GAAW,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;QAC/E,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QACvC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;IACxC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAChD,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9C,oEAAoE;IACpE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IAC/C,uEAAuE;IACvE,IAAI,OAAO,GAAoB,IAAI,CAAC;IACpC,IAAI,KAAK,GAAqB,IAAI,CAAC;IAEnC,SAAS,MAAM;QACX,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG;YACX,GAAG,CAAC,kBAAkB,CAAC;YACvB,GAAG,CAAC,kBAAkB,CAAC;YACvB,GAAG,CAAC,kBAAkB,CAAC;YACvB,GAAG,CAAC,kBAAkB,CAAC;SAC8B,CAAC;QAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,GAAG,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;YACjE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC;QAEnB,kEAAkE;QAClE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAA2B,CAAC;YACrF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;gBAAE,OAAO;YAClD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,CAAC,EAAgB,EAAE,EAAE;gBAC9B,IAAI,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrD,MAAM,IAAI,GAAG,OAAO,CAAC;gBACrB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAClB,MAAM,EACN,IAAI,EACJ,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EACnC,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EACpC,EAAE,CAAC,QAAQ,CACd,CAAC;gBACF,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC;YACF,MAAM,GAAG,GAAG,CAAC,EAAgB,EAAE,EAAE;gBAC7B,IAAI,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;oBAAE,OAAO;gBACzC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YACnC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,KAAK;SACN,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;SAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,GAAG,EAAE,MAAM;QACX,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,MAAM;QACN,MAAM,EAAE,GAAG,EAAE;YACT,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;KACJ,CAAC,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { I18n } from "../i18n/index.js";
2
+ /** What `open` needs: the page's sizes, turned as it shows, and how to
3
+ * resize it. */
4
+ export interface ImageSizeContext {
5
+ /** The size in pixels the page shows at now. */
6
+ width: number;
7
+ height: number;
8
+ /** The pixels it keeps, unscaled — its original size. */
9
+ originalWidth: number;
10
+ originalHeight: number;
11
+ /** Resize the page to show at `width` × `height` pixels (one undo step). */
12
+ onResize: (width: number, height: number) => void;
13
+ }
14
+ /** Build the Image Size dialog, mounted once and re-seeded by `open`. */
15
+ export declare function createImageSizeModal(i18n: I18n): {
16
+ el: HTMLDivElement;
17
+ mount: (parent: HTMLElement) => void;
18
+ open: (context: ImageSizeContext) => void;
19
+ close: () => void;
20
+ destroy: () => void;
21
+ };
22
+ export type ImageSizeModal = ReturnType<typeof createImageSizeModal>;
23
+ //# sourceMappingURL=ImageSizeModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageSizeModal.d.ts","sourceRoot":"","sources":["../../src/components/ImageSizeModal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7C;iBACiB;AACjB,MAAM,WAAW,gBAAgB;IAC7B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAsBD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI;;oBAwJpB,WAAW,KAAG,IAAI;oBAxBlB,gBAAgB,KAAG,IAAI;iBAiB5B,IAAI;mBAmBF,IAAI;EAM3B;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,189 @@
1
+ // The Image Size dialog, opened from an image's Home tab: the size in pixels
2
+ // the current page shows and saves at, as a width × height kept to its aspect
3
+ // unless the lock is off, with its original size beside it to go back to. A
4
+ // modal — backdrop + centered dialog — on the page-settings dialog's styles.
5
+ //
6
+ // Storeless and imperative: mounted once and reused. `open(ctx)` seeds it with
7
+ // the page's sizes and the callback that turns Apply into the page's resize;
8
+ // it owns no document state of its own.
9
+ import { ICON_CLEAR, on } from "@docmentis/udoc-ui/internal";
10
+ /** The widest or tallest a page is resized to, in pixels — past it, a save's
11
+ * pixels would run to gigabytes. */
12
+ const MAX_PIXELS = 16384;
13
+ function labeledField(labelText) {
14
+ const field = document.createElement("label");
15
+ field.className = "udoc-page-modal__field";
16
+ const label = document.createElement("span");
17
+ label.className = "udoc-page-modal__field-label";
18
+ label.textContent = labelText;
19
+ const input = document.createElement("input");
20
+ input.type = "text";
21
+ input.inputMode = "numeric";
22
+ input.className = "udoc-page-modal__input";
23
+ field.append(label, input);
24
+ return { field, input };
25
+ }
26
+ /** A whole pixel count in `text`, or null for none in range. */
27
+ function parsePixels(text) {
28
+ const n = Math.round(parseFloat(text));
29
+ return Number.isFinite(n) && n >= 1 && n <= MAX_PIXELS ? n : null;
30
+ }
31
+ /** Build the Image Size dialog, mounted once and re-seeded by `open`. */
32
+ export function createImageSizeModal(i18n) {
33
+ const el = document.createElement("div");
34
+ el.className = "udoc-page-modal";
35
+ el.style.display = "none";
36
+ const backdrop = document.createElement("div");
37
+ backdrop.className = "udoc-page-modal__backdrop";
38
+ const dialog = document.createElement("div");
39
+ dialog.className = "udoc-page-modal__dialog";
40
+ dialog.setAttribute("role", "dialog");
41
+ dialog.setAttribute("aria-modal", "true");
42
+ dialog.setAttribute("aria-label", i18n.t("command.resizePage"));
43
+ // --- header ---
44
+ const header = document.createElement("div");
45
+ header.className = "udoc-page-modal__header";
46
+ const heading = document.createElement("h2");
47
+ heading.className = "udoc-page-modal__heading";
48
+ heading.textContent = i18n.t("command.resizePage");
49
+ const closeBtn = document.createElement("button");
50
+ closeBtn.type = "button";
51
+ closeBtn.className = "udoc-page-modal__close";
52
+ closeBtn.setAttribute("aria-label", i18n.t("common.close"));
53
+ closeBtn.title = i18n.t("common.close");
54
+ closeBtn.innerHTML = ICON_CLEAR;
55
+ header.append(heading, closeBtn);
56
+ // --- size ---
57
+ const body = document.createElement("div");
58
+ body.className = "udoc-page-modal__body";
59
+ const dims = document.createElement("div");
60
+ dims.className = "udoc-page-modal__dims";
61
+ const { field: wField, input: widthInput } = labeledField(i18n.t("pageSettings.width"));
62
+ const { field: hField, input: heightInput } = labeledField(i18n.t("pageSettings.height"));
63
+ const unit = document.createElement("span");
64
+ unit.className = "udoc-page-modal__unit-label";
65
+ unit.textContent = i18n.t("image.pixels");
66
+ dims.append(wField, hField, unit);
67
+ const keep = document.createElement("label");
68
+ keep.className = "udoc-page-modal__check";
69
+ const keepInput = document.createElement("input");
70
+ keepInput.type = "checkbox";
71
+ keepInput.checked = true;
72
+ const keepLabel = document.createElement("span");
73
+ keepLabel.textContent = i18n.t("image.keepRatio");
74
+ keep.append(keepInput, keepLabel);
75
+ const original = document.createElement("div");
76
+ original.className = "udoc-page-modal__hint";
77
+ body.append(dims, keep, original);
78
+ // --- footer ---
79
+ const footer = document.createElement("div");
80
+ footer.className = "udoc-page-modal__footer";
81
+ const resetBtn = document.createElement("button");
82
+ resetBtn.type = "button";
83
+ resetBtn.className = "udoc-page-modal__secondary";
84
+ resetBtn.textContent = i18n.t("image.reset");
85
+ const applyBtn = document.createElement("button");
86
+ applyBtn.type = "button";
87
+ applyBtn.className = "udoc-page-modal__apply";
88
+ applyBtn.textContent = i18n.t("image.apply");
89
+ footer.append(resetBtn, applyBtn);
90
+ dialog.append(header, body, footer);
91
+ el.append(backdrop, dialog);
92
+ // --- state ---
93
+ let width = 1;
94
+ let height = 1;
95
+ // Width over height, which the lock keeps — the page's as it opened.
96
+ let ratio = 1;
97
+ let ctx = null;
98
+ let isOpen = false;
99
+ const unsubEvents = [];
100
+ function render() {
101
+ widthInput.value = String(width);
102
+ heightInput.value = String(height);
103
+ }
104
+ // An edited side sets the other to the ratio while the lock is on; one
105
+ // that doesn't parse goes back to what it was.
106
+ on(widthInput, "change", () => {
107
+ const n = parsePixels(widthInput.value);
108
+ if (n !== null) {
109
+ width = n;
110
+ if (keepInput.checked)
111
+ height = Math.min(MAX_PIXELS, Math.max(1, Math.round(n / ratio)));
112
+ }
113
+ render();
114
+ });
115
+ on(heightInput, "change", () => {
116
+ const n = parsePixels(heightInput.value);
117
+ if (n !== null) {
118
+ height = n;
119
+ if (keepInput.checked)
120
+ width = Math.min(MAX_PIXELS, Math.max(1, Math.round(n * ratio)));
121
+ }
122
+ render();
123
+ });
124
+ on(resetBtn, "click", () => {
125
+ if (!ctx)
126
+ return;
127
+ width = ctx.originalWidth;
128
+ height = ctx.originalHeight;
129
+ ratio = width / height;
130
+ render();
131
+ });
132
+ function apply() {
133
+ ctx?.onResize(width, height);
134
+ close();
135
+ }
136
+ on(applyBtn, "click", apply);
137
+ for (const input of [widthInput, heightInput]) {
138
+ on(input, "keydown", (e) => {
139
+ if (e.key === "Enter") {
140
+ e.preventDefault();
141
+ input.dispatchEvent(new Event("change"));
142
+ apply();
143
+ }
144
+ });
145
+ }
146
+ on(closeBtn, "click", () => close());
147
+ on(backdrop, "click", () => close());
148
+ function open(context) {
149
+ ctx = context;
150
+ width = Math.max(1, Math.round(context.width));
151
+ height = Math.max(1, Math.round(context.height));
152
+ ratio = context.width / context.height;
153
+ keepInput.checked = true;
154
+ original.textContent = i18n.t("image.originalSize", {
155
+ width: Math.round(context.originalWidth),
156
+ height: Math.round(context.originalHeight),
157
+ });
158
+ render();
159
+ isOpen = true;
160
+ el.style.display = "";
161
+ widthInput.focus();
162
+ widthInput.select();
163
+ }
164
+ function close() {
165
+ if (!isOpen)
166
+ return;
167
+ isOpen = false;
168
+ ctx = null;
169
+ el.style.display = "none";
170
+ }
171
+ function mount(parent) {
172
+ parent.appendChild(el);
173
+ const onKeydown = (e) => {
174
+ if (isOpen && e.key === "Escape") {
175
+ e.stopPropagation();
176
+ close();
177
+ }
178
+ };
179
+ document.addEventListener("keydown", onKeydown);
180
+ unsubEvents.push(() => document.removeEventListener("keydown", onKeydown));
181
+ }
182
+ function destroy() {
183
+ for (const off of unsubEvents)
184
+ off();
185
+ el.remove();
186
+ }
187
+ return { el, mount, open, close, destroy };
188
+ }
189
+ //# sourceMappingURL=ImageSizeModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageSizeModal.js","sourceRoot":"","sources":["../../src/components/ImageSizeModal.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
+ import type { Size } from "@docmentis/udoc-ui";
1
2
  import type { I18n } from "../i18n/index.js";
2
3
  /** One pickable slide layout: the id a slide is created on, plus where its
3
- * preview renders — the plane (a slide master's, `1..`) and the page within it
4
+ * preview renders — the plane (its slide master's) and the page within it
4
5
  * (`1 + its index`; page 0 of that plane is the master). */
5
6
  export interface LayoutOption {
6
7
  /** The slide-layout id (hex key) — passed to `createSlide(index, layout)`. */
7
8
  layout: string;
8
- /** The layout plane the preview renders on (`1..`). */
9
+ /** The slide master's plane the preview renders on. */
9
10
  plane: number;
10
11
  /** The page index within that plane (`1..`; page 0 is the master). */
11
12
  page: number;
@@ -20,6 +21,10 @@ export interface NewSlideContext {
20
21
  insertIndex: number;
21
22
  /** The layouts to offer, in roster order. */
22
23
  options: LayoutOption[];
24
+ /** The deck's slide size in points, which every slide layout shares — the
25
+ * shape of the cells before their previews land; null when unknown, for a
26
+ * 16:9 slide's. */
27
+ slideSize: Size | null;
23
28
  /** Render a one-shot preview of a page on a plane, at `scale` output px per
24
29
  * point — resolves with a bitmap the caller owns. */
25
30
  renderPreview: (plane: number, page: number, scale: number) => Promise<ImageBitmap>;
@@ -1 +1 @@
1
- {"version":3,"file":"NewSlideModal.d.ts","sourceRoot":"","sources":["../../src/components/NewSlideModal.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7C;;6DAE6D;AAC7D,MAAM,WAAW,YAAY;IACzB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb;gBACY;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;8CAC8C;AAC9C,MAAM,WAAW,eAAe;IAC5B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;0DACsD;IACtD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpF,iEAAiE;IACjE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI;;oBA4GnB,WAAW,KAAG,IAAI;oBAzBlB,eAAe,KAAG,IAAI;iBAa3B,IAAI;mBAwBF,IAAI;EAM3B;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"NewSlideModal.d.ts","sourceRoot":"","sources":["../../src/components/NewSlideModal.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAU7C;;6DAE6D;AAC7D,MAAM,WAAW,YAAY;IACzB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb;gBACY;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;8CAC8C;AAC9C,MAAM,WAAW,eAAe;IAC5B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;wBAEoB;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB;0DACsD;IACtD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpF,iEAAiE;IACjE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI;;oBAgHnB,WAAW,KAAG,IAAI;oBA1BlB,eAAe,KAAG,IAAI;iBAc3B,IAAI;mBAwBF,IAAI;EAM3B;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -15,6 +15,9 @@ import { ICON_CLEAR, on } from "@docmentis/udoc-ui/internal";
15
15
  /** Output pixels per document point for a layout preview — a modest raster
16
16
  * (a 960-pt slide → 240 px), downscaled by CSS into its grid cell. */
17
17
  const PREVIEW_SCALE = 0.25;
18
+ /** The slide size a cell is shaped as when the deck's isn't known — a 16:9
19
+ * slide, PowerPoint's default, in points. */
20
+ const DEFAULT_SLIDE_SIZE = { width: 960, height: 540 };
18
21
  /**
19
22
  * Build the New-Slide picker modal. The returned handle is mounted once by the
20
23
  * shell; `open` re-seeds it with the current layout roster each time.
@@ -59,8 +62,9 @@ export function createNewSlideModal(i18n) {
59
62
  close();
60
63
  chosen?.onPick(layout);
61
64
  }
62
- /** Build one layout cell: a button holding a canvas the preview draws into. */
63
- function buildCell(option, index, myEpoch) {
65
+ /** Build one layout cell: a button holding a canvas the preview draws into,
66
+ * sized as the preview will be, so the cell takes its shape from the start. */
67
+ function buildCell(option, index, slideSize, myEpoch) {
64
68
  const cell = document.createElement("button");
65
69
  cell.type = "button";
66
70
  cell.className = "udoc-slide-picker__cell";
@@ -70,6 +74,8 @@ export function createNewSlideModal(i18n) {
70
74
  cell.setAttribute("aria-label", name);
71
75
  const canvas = document.createElement("canvas");
72
76
  canvas.className = "udoc-slide-picker__canvas";
77
+ canvas.width = Math.round(slideSize.width * PREVIEW_SCALE);
78
+ canvas.height = Math.round(slideSize.height * PREVIEW_SCALE);
73
79
  cell.appendChild(canvas);
74
80
  on(cell, "click", () => pick(option.layout));
75
81
  void ctx
@@ -97,8 +103,9 @@ export function createNewSlideModal(i18n) {
97
103
  epoch++;
98
104
  const myEpoch = epoch;
99
105
  grid.replaceChildren();
106
+ const slideSize = context.slideSize ?? DEFAULT_SLIDE_SIZE;
100
107
  context.options.forEach((option, index) => {
101
- grid.appendChild(buildCell(option, index, myEpoch));
108
+ grid.appendChild(buildCell(option, index, slideSize, myEpoch));
102
109
  });
103
110
  isOpen = true;
104
111
  el.style.display = "";