@docmentis/udoc-editor 0.8.6 → 0.8.8

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 (127) hide show
  1. package/dist/arrange.d.ts +3 -0
  2. package/dist/arrange.d.ts.map +1 -1
  3. package/dist/arrange.js +11 -13
  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/components/PageControls.d.ts.map +1 -1
  18. package/dist/components/PageControls.js +1 -2
  19. package/dist/components/PageControls.js.map +1 -1
  20. package/dist/components/PageSettingsModal.d.ts.map +1 -1
  21. package/dist/components/PageSettingsModal.js +1 -2
  22. package/dist/components/PageSettingsModal.js.map +1 -1
  23. package/dist/crop-box.d.ts +33 -0
  24. package/dist/crop-box.d.ts.map +1 -0
  25. package/dist/crop-box.js +107 -0
  26. package/dist/crop-box.js.map +1 -0
  27. package/dist/crop.d.ts +28 -0
  28. package/dist/crop.d.ts.map +1 -0
  29. package/dist/crop.js +260 -0
  30. package/dist/crop.js.map +1 -0
  31. package/dist/edit-mode.d.ts.map +1 -1
  32. package/dist/edit-mode.js +46 -3
  33. package/dist/edit-mode.js.map +1 -1
  34. package/dist/formatting-marks.d.ts +4 -5
  35. package/dist/formatting-marks.d.ts.map +1 -1
  36. package/dist/formatting-marks.js +4 -5
  37. package/dist/formatting-marks.js.map +1 -1
  38. package/dist/i18n/ar.d.ts.map +1 -1
  39. package/dist/i18n/ar.js +14 -0
  40. package/dist/i18n/ar.js.map +1 -1
  41. package/dist/i18n/de.d.ts.map +1 -1
  42. package/dist/i18n/de.js +14 -0
  43. package/dist/i18n/de.js.map +1 -1
  44. package/dist/i18n/en.d.ts.map +1 -1
  45. package/dist/i18n/en.js +14 -0
  46. package/dist/i18n/en.js.map +1 -1
  47. package/dist/i18n/es.d.ts.map +1 -1
  48. package/dist/i18n/es.js +14 -0
  49. package/dist/i18n/es.js.map +1 -1
  50. package/dist/i18n/fr.d.ts.map +1 -1
  51. package/dist/i18n/fr.js +14 -0
  52. package/dist/i18n/fr.js.map +1 -1
  53. package/dist/i18n/ja.d.ts.map +1 -1
  54. package/dist/i18n/ja.js +14 -0
  55. package/dist/i18n/ja.js.map +1 -1
  56. package/dist/i18n/ko.d.ts.map +1 -1
  57. package/dist/i18n/ko.js +14 -0
  58. package/dist/i18n/ko.js.map +1 -1
  59. package/dist/i18n/messages.d.ts +26 -0
  60. package/dist/i18n/messages.d.ts.map +1 -1
  61. package/dist/i18n/pt-BR.d.ts.map +1 -1
  62. package/dist/i18n/pt-BR.js +14 -0
  63. package/dist/i18n/pt-BR.js.map +1 -1
  64. package/dist/i18n/ru.d.ts.map +1 -1
  65. package/dist/i18n/ru.js +14 -0
  66. package/dist/i18n/ru.js.map +1 -1
  67. package/dist/i18n/zh-CN.d.ts.map +1 -1
  68. package/dist/i18n/zh-CN.js +14 -0
  69. package/dist/i18n/zh-CN.js.map +1 -1
  70. package/dist/i18n/zh-TW.d.ts.map +1 -1
  71. package/dist/i18n/zh-TW.js +14 -0
  72. package/dist/i18n/zh-TW.js.map +1 -1
  73. package/dist/icons.d.ts +8 -6
  74. package/dist/icons.d.ts.map +1 -1
  75. package/dist/icons.js +8 -6
  76. package/dist/icons.js.map +1 -1
  77. package/dist/image.d.ts +39 -0
  78. package/dist/image.d.ts.map +1 -0
  79. package/dist/image.js +203 -0
  80. package/dist/image.js.map +1 -0
  81. package/dist/insert.d.ts +5 -4
  82. package/dist/insert.d.ts.map +1 -1
  83. package/dist/insert.js +20 -9
  84. package/dist/insert.js.map +1 -1
  85. package/dist/markup.d.ts +23 -0
  86. package/dist/markup.d.ts.map +1 -0
  87. package/dist/markup.js +100 -0
  88. package/dist/markup.js.map +1 -0
  89. package/dist/menu-action.d.ts +6 -1
  90. package/dist/menu-action.d.ts.map +1 -1
  91. package/dist/menu-action.js +4 -1
  92. package/dist/menu-action.js.map +1 -1
  93. package/dist/new-slide.d.ts +5 -4
  94. package/dist/new-slide.d.ts.map +1 -1
  95. package/dist/new-slide.js +47 -17
  96. package/dist/new-slide.js.map +1 -1
  97. package/dist/page-controls.d.ts.map +1 -1
  98. package/dist/page-controls.js +31 -10
  99. package/dist/page-controls.js.map +1 -1
  100. package/dist/paint.d.ts +5 -1
  101. package/dist/paint.d.ts.map +1 -1
  102. package/dist/paint.js +27 -16
  103. package/dist/paint.js.map +1 -1
  104. package/dist/state.d.ts +24 -1
  105. package/dist/state.d.ts.map +1 -1
  106. package/dist/state.js +3 -0
  107. package/dist/state.js.map +1 -1
  108. package/dist/styles.d.ts.map +1 -1
  109. package/dist/styles.js +147 -1
  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 +53 -15
  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 +16 -10
  125. package/dist/worker/handlers.js.map +1 -1
  126. package/dist/worker/worker-source.js +1 -1
  127. package/package.json +3 -3
package/dist/new-slide.js CHANGED
@@ -1,10 +1,26 @@
1
+ import { allowsEdit, ICON_PAGE_ADD } from "@docmentis/udoc-ui/internal";
1
2
  import { createNewSlideModal } from "./components/NewSlideModal.js";
2
- import { ICON_PAGE_ADD } from "./icons.js";
3
+ /** An insert index past any deck's end, which the engine clamps — the end of
4
+ * the section the slide is put in. */
5
+ const APPEND_INDEX = 0x7fff_ffff;
3
6
  /** Create a slide at `index` (clamped), seeded with its layout's content
4
7
  * placeholders. `layout` is the slide-layout id to build on; omit it to copy
5
- * the neighbor slide's layout. */
6
- function createSlide(index, layout) {
7
- return { presentation: { insertSlide: layout == null ? { index } : { index, layout } } };
8
+ * the neighbor slide's layout. `slideSection` is the section it joins, `index`
9
+ * clamped into its run; omit it to join the section of the slide it follows. */
10
+ function createSlide(index, layout, slideSection) {
11
+ return {
12
+ presentation: {
13
+ editSlide: {
14
+ command: {
15
+ insertSlide: {
16
+ index,
17
+ ...(layout == null ? {} : { layout }),
18
+ ...(slideSection == null ? {} : { slideSection }),
19
+ },
20
+ },
21
+ },
22
+ },
23
+ };
8
24
  }
9
25
  /** Mount the layout picker into `host` — once, re-seeded with the current
10
26
  * layout roster each open. */
@@ -15,13 +31,23 @@ export function mountNewSlide(host, i18n) {
15
31
  return {
16
32
  // Pull every slide master's summary, flatten it to pickable options
17
33
  // (each slide layout previews on its slide master's plane at page
18
- // `1 + its index`), and open. Falls back to the copy-neighbor default
19
- // when no slide layouts are available. The 0-based page index nearest
20
- // the viewport top is the current slide; +1 lands the new slide right
21
- // after it, PowerPoint-style.
34
+ // `1 + its index`), and open — with the current slide's size, which
35
+ // every slide layout shares. Falls back to the copy-neighbor default
36
+ // when no slide layouts are available. The new slide lands at the end
37
+ // of the last section selected in the thumbnails — an empty one too —
38
+ // else right after the last slide selected there, else after the
39
+ // current slide — the 0-based page index nearest the viewport top —
40
+ // PowerPoint-style.
22
41
  async open() {
23
- const insertIndex = host.store.getState().pageIndex + 1;
24
- const slideMasters = await host.edit.slideMastersSummary();
42
+ const { selectedPages, pageIndex, slideSections, selectedSlideSections } = host.store.getState();
43
+ const section = [...slideSections].reverse().find((s) => selectedSlideSections.includes(s.id))?.id;
44
+ const insertIndex = section !== undefined
45
+ ? APPEND_INDEX
46
+ : (selectedPages.length > 0 ? Math.max(...selectedPages) : pageIndex) + 1;
47
+ const [slideMasters, slideSize] = await Promise.all([
48
+ host.edit.slideMastersSummary(),
49
+ host.client.pageDisplaySize(pageIndex),
50
+ ]);
25
51
  const options = slideMasters.flatMap((slideMaster) => slideMaster.slideLayouts.map((slideLayout, index) => ({
26
52
  layout: slideLayout.id,
27
53
  plane: slideMaster.plane,
@@ -29,14 +55,16 @@ export function mountNewSlide(host, i18n) {
29
55
  name: slideLayout.name,
30
56
  })));
31
57
  if (options.length === 0) {
32
- void execute(createSlide(insertIndex));
58
+ void execute(createSlide(insertIndex, undefined, section));
33
59
  return;
34
60
  }
35
61
  modal.open({
36
62
  insertIndex,
37
63
  options,
64
+ // Zero in a deck with no slides yet.
65
+ slideSize: slideSize.width > 0 && slideSize.height > 0 ? slideSize : null,
38
66
  renderPreview: (plane, page, scale) => host.client.renderPagePreview(plane, page, scale),
39
- onPick: (layout) => void execute(createSlide(insertIndex, layout)),
67
+ onPick: (layout) => void execute(createSlide(insertIndex, layout, section)),
40
68
  });
41
69
  },
42
70
  destroy: () => modal.destroy(),
@@ -44,10 +72,11 @@ export function mountNewSlide(host, i18n) {
44
72
  }
45
73
  /**
46
74
  * The New Slide command, opening the picker with `open` — a document-level
47
- * action shown only with nothing selected: it sits where the selection's
48
- * property controls go, so it shows on the empty canvas and yields to those
49
- * controls the moment a shape or text is selected. Labeled, as its page-add
50
- * glyph reads "slide" only once you know.
75
+ * action shown with nothing selected, or slides or sections: it sits where the
76
+ * selection's property controls go, so it shows on the empty canvas and with
77
+ * slides or sections picked in the thumbnails, and yields to those controls the
78
+ * moment a shape or text is selected. Labeled, as its page-add glyph reads
79
+ * "slide" only once you know.
51
80
  */
52
81
  export function newSlideCommand(open) {
53
82
  return {
@@ -57,7 +86,8 @@ export function newSlideCommand(open) {
57
86
  group: "slide",
58
87
  labeled: true,
59
88
  run: { kind: "action", press: open },
60
- enabledWhen: (c) => c.ready && c.selection.count === 0,
89
+ enabledWhen: (c) => c.ready &&
90
+ (c.selection.count === 0 || allowsEdit(c.selection, "insertSlide") || c.slideSections.selected.length > 0),
61
91
  };
62
92
  }
63
93
  //# sourceMappingURL=new-slide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new-slide.js","sourceRoot":"","sources":["../src/new-slide.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;mCAEmC;AACnC,SAAS,WAAW,CAAC,KAAa,EAAE,MAAe;IAC/C,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC7F,CAAC;AASD;+BAC+B;AAC/B,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,IAAU;IACpD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,CAAC,OAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,OAAO;QACH,oEAAoE;QACpE,kEAAkE;QAClE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,8BAA8B;QAC9B,KAAK,CAAC,IAAI;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAmB,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CACjE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,IAAI,EAAE,KAAK,GAAG,CAAC;gBACf,IAAI,EAAE,WAAW,CAAC,IAAI;aACzB,CAAC,CAAC,CACN,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvC,OAAO;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACP,WAAW;gBACX,OAAO;gBACP,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;gBACxF,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;aACrE,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;KACjC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC5C,OAAO;QACH,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QACpC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;KACzD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"new-slide.js","sourceRoot":"","sources":["../src/new-slide.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-controls.d.ts","sourceRoot":"","sources":["../src/page-controls.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAM5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAGnC,CAAC;AAqCF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAQrD;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,IAAI,CAyD3E"}
1
+ {"version":3,"file":"page-controls.d.ts","sourceRoot":"","sources":["../src/page-controls.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAM5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAGnC,CAAC;AAmDF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAQrD;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,IAAI,CA+D3E"}
@@ -15,21 +15,34 @@ export const PAGE_CONTROLS_SPACING = {
15
15
  padding: { top: { px: 36 }, right: { px: 48 }, bottom: { px: 36 }, left: { px: 48 } },
16
16
  gap: { horizontal: GAP_PT, vertical: GAP_PT },
17
17
  };
18
- /** The `UDocCommand` for a page-structure edit. */
19
- function pageCommand(edit) {
18
+ /** The index of the existing page `edit` addresses, or `null` for an insert,
19
+ * whose index is only where the new page lands. */
20
+ function addressedPage(edit) {
20
21
  switch (edit.kind) {
21
22
  case "insert":
22
- return { portable: { insertPage: { index: edit.index } } };
23
+ return null;
24
+ case "reorder":
25
+ return edit.from;
26
+ default:
27
+ return edit.index;
28
+ }
29
+ }
30
+ /** The `UDocCommand` for a page-structure edit, the page it addresses named by
31
+ * `id` (its {@link addressedPage}'s id; unused by an insert). `to` is the index
32
+ * the moved page takes in the resulting order. */
33
+ function pageCommand(edit, id) {
34
+ const editPage = (command) => ({ portable: { editPage: { command } } });
35
+ switch (edit.kind) {
36
+ case "insert":
37
+ return editPage({ insertPage: { index: edit.index } });
23
38
  case "delete":
24
- return { portable: { deletePage: { index: edit.index } } };
39
+ return editPage({ deletePages: { ids: [id] } });
25
40
  case "reorder":
26
- return { portable: { reorderPage: { from: edit.from, to: edit.to } } };
41
+ return editPage({ reorderPages: { ids: [id], to: edit.to } });
27
42
  case "rotate":
28
- return { portable: { rotatePage: { index: edit.index, clockwise: edit.clockwise } } };
43
+ return editPage({ rotatePages: { ids: [id], clockwise: edit.clockwise } });
29
44
  case "resize":
30
- return {
31
- portable: { resizePage: { index: edit.index, size: { width: edit.width, height: edit.height } } },
32
- };
45
+ return editPage({ resizePage: { id, size: { width: edit.width, height: edit.height } } });
33
46
  }
34
47
  }
35
48
  /** The doc types whose pages the page controls move, rotate, delete and
@@ -53,7 +66,15 @@ export function mountPageControls(host, i18n) {
53
66
  // Mounted once and reused for whichever page's "more" button is clicked.
54
67
  const settings = createPageSettingsModal(i18n);
55
68
  settings.mount(host.root);
56
- const pageEditAt = (edit) => host.commit(() => host.client.execute(pageCommand(edit)));
69
+ // Commands address a page by id: read the addressed page's id first, and
70
+ // skip the edit when that page is gone.
71
+ const pageEditAt = async (edit) => {
72
+ const page = addressedPage(edit);
73
+ const id = page === null ? "" : await host.client.portable.pageIdByIndex(page);
74
+ if (id === undefined)
75
+ return;
76
+ await host.commit(() => host.client.execute(pageCommand(edit, id)));
77
+ };
57
78
  const pageCount = () => host.store.getState().pageCount;
58
79
  function show(shown) {
59
80
  if (!shown) {
@@ -1 +1 @@
1
- {"version":3,"file":"page-controls.js","sourceRoot":"","sources":["../src/page-controls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-controls.js","sourceRoot":"","sources":["../src/page-controls.ts"],"names":[],"mappings":"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"}
package/dist/paint.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { PaintColor, PaintFill } from "@docmentis/udoc-wasm";
1
+ import type { PaintColor, PaintFill, PaintLine, UDocSelectionProperties } from "@docmentis/udoc-wasm";
2
2
  import type { LineDash, PaintChannel, PaintSpec, RibbonControl, RibbonControlEnv, StrokeStyle, UIShellHost } from "@docmentis/udoc-ui/internal";
3
3
  import type { EditTools } from "./tools.js";
4
4
  /** A picker paint as a `PaintColor`, or `null` for "no fill": a solid sRGB
@@ -9,6 +9,10 @@ export declare function paintToDrawingColor(paint: PaintSpec): PaintColor | null
9
9
  /** A picker paint as a `PaintFill`: a solid / theme color wrapped as a solid
10
10
  * fill, or explicit `"none"` for "no fill". */
11
11
  export declare function paintToDrawingFill(paint: PaintSpec): PaintFill;
12
+ /** The line the selected shapes agree on — a deck's, a word document's, or
13
+ * those drawn over an image — or null where they don't, or none is
14
+ * selected. */
15
+ export declare function selectionLine(properties: UDocSelectionProperties | null): PaintLine | null;
12
16
  /** A composed stroke the Line picker applies: its color plus the weight and
13
17
  * dash from the Weight / Dashes fly-outs. The shell lowers it to the doc type's
14
18
  * outline model (`DrawingML` `Line` / PDF stroking style). */
@@ -1 +1 @@
1
- {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGR,UAAU,EAEV,SAAS,EAKZ,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EACR,QAAQ,EACR,YAAY,EAEZ,SAAS,EAET,aAAa,EACb,gBAAgB,EAChB,WAAW,EAGX,WAAW,EACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C;;;wEAGwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI,CAcvE;AAED;gDACgD;AAChD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAG9D;AAkFD;;+DAE+D;AAC/D,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW;2BAShB,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;8BAgBtB,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC;EAgB9D;AAED,4DAA4D;AAC5D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiB7D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CACpC;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,IAAI,WAAW,CAU/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,EAC5D,KAAK,EAAE,SAAS,GACjB,aAAa,CA4Ff"}
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGR,UAAU,EAEV,SAAS,EACT,SAAS,EAGT,uBAAuB,EAE1B,MAAM,sBAAsB,CAAC;AAY9B,OAAO,KAAK,EACR,QAAQ,EACR,YAAY,EAEZ,SAAS,EAET,aAAa,EACb,gBAAgB,EAChB,WAAW,EAGX,WAAW,EACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C;;;wEAGwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI,CAcvE;AAED;gDACgD;AAChD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAG9D;AAwCD;;gBAEgB;AAChB,wBAAgB,aAAa,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAG1F;AA6CD;;+DAE+D;AAC/D,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW;2BAShB,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;8BAiBtB,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC;EAkB9D;AAED,4DAA4D;AAC5D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiB7D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CACpC;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,IAAI,WAAW,CAU/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,EAC5D,KAAK,EAAE,SAAS,GACjB,aAAa,CA4Ff"}
package/dist/paint.js CHANGED
@@ -1,4 +1,4 @@
1
- import { applyPaintBar, buildPaintPanel, createDropdownButton, DEFAULT_OFFICE_THEME, displayToActivePaint, paintSwatch, themeSwatches, } from "@docmentis/udoc-ui/internal";
1
+ import { applyPaintBar, buildPaintPanel, createDropdownButton, DEFAULT_OFFICE_THEME, displayToActivePaint, drawingProperties, paintSwatch, profileFor, themeSwatches, } from "@docmentis/udoc-ui/internal";
2
2
  import { editState } from "./state.js";
3
3
  /** Split an `#rrggbb` hex into its three bytes (`0..255`). */
4
4
  function hexToRgbBytes(hex) {
@@ -50,20 +50,28 @@ function schemeSlot(slot) {
50
50
  return SCHEME_TOKEN[slot] ?? "text1";
51
51
  }
52
52
  /** A composed stroke as a `DrawingML` `Line`: its paint plus weight (points) and
53
- * a preset dash. */
54
- function paintToDrawingLine(stroke) {
53
+ * a preset dash, over the rest of `current` — the line it replaces, whose
54
+ * arrowheads, caps and joins it keeps. */
55
+ function paintToDrawingLine(stroke, current) {
55
56
  return {
56
57
  width: stroke.weight,
57
- cap: null,
58
- compound: null,
59
- align: null,
58
+ cap: current?.cap ?? null,
59
+ compound: current?.compound ?? null,
60
+ align: current?.align ?? null,
60
61
  fill: paintToDrawingFill(stroke.paint),
61
62
  dash: dashToDrawing(stroke.dash),
62
- join: null,
63
- headEnd: null,
64
- tailEnd: null,
63
+ join: current?.join ?? null,
64
+ headEnd: current?.headEnd ?? null,
65
+ tailEnd: current?.tailEnd ?? null,
65
66
  };
66
67
  }
68
+ /** The line the selected shapes agree on — a deck's, a word document's, or
69
+ * those drawn over an image — or null where they don't, or none is
70
+ * selected. */
71
+ export function selectionLine(properties) {
72
+ const line = drawingProperties(properties)?.shape.line;
73
+ return line !== undefined && typeof line === "object" ? line.value : null;
74
+ }
67
75
  function dashToDrawing(dash) {
68
76
  switch (dash) {
69
77
  case "solid":
@@ -111,11 +119,11 @@ export function createPaintEdits(host) {
111
119
  // Fill / Line — the picker's paint applied to the current selection. The
112
120
  // payload is the open doc type's own model style, built here (the host builds
113
121
  // model JSON, like `insertObject`), then sent through the same `executeOnSelection`
114
- // seam; the doc-type binder replaces the shape's fill / line or the path's
115
- // non-stroking / stroking style. "No Fill" on a PDF path (not expressible as a
116
- // device style) is skipped.
122
+ // seam; the doc-type binder replaces a drawing shape's fill / line or a PDF
123
+ // path's non-stroking / stroking style. "No Fill" on a PDF path (not
124
+ // expressible as a device style) is skipped.
117
125
  function fillSelection(paint) {
118
- if (store.getState().docType === "presentation") {
126
+ if (profileFor(store.getState().docType).drawingShapes) {
119
127
  return commit(() => client.executeOnSelection({ kind: "setShapeFill", fill: paintToDrawingFill(paint) }));
120
128
  }
121
129
  const brush = paintToBrush(paint);
@@ -127,10 +135,13 @@ export function createPaintEdits(host) {
127
135
  }));
128
136
  }
129
137
  // The whole composed stroke (color + weight + dash), since the engine sets the
130
- // outline as one value.
138
+ // outline as one value — over the line the shapes have, so an arrow keeps
139
+ // its head.
131
140
  function strokeSelection(stroke) {
132
- if (store.getState().docType === "presentation") {
133
- return commit(() => client.executeOnSelection({ kind: "setShapeLine", line: paintToDrawingLine(stroke) }));
141
+ const state = store.getState();
142
+ if (profileFor(state.docType).drawingShapes) {
143
+ const line = paintToDrawingLine(stroke, editState(state).selectionLine);
144
+ return commit(() => client.executeOnSelection({ kind: "setShapeLine", line }));
134
145
  }
135
146
  const brush = paintToBrush(stroke.paint);
136
147
  if (!brush)
package/dist/paint.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { FontFamilySummary } from "@docmentis/udoc-wasm";
1
+ import type { FontFamilySummary, PaintLine } from "@docmentis/udoc-wasm";
2
2
  import type { Action, CommandContext, SelectionPaint, SelectionTextFormat, Store, ThemePalette, UIState } from "@docmentis/udoc-ui/internal";
3
+ import type { CropAspect } from "./crop-box.js";
3
4
  import type { EditorMode } from "./mode.js";
4
5
  import type { SelectionRuler } from "./ruler-edits.js";
5
6
  export interface EditState {
@@ -69,6 +70,28 @@ export interface EditState {
69
70
  * selection reports, projected from the engine's selection properties.
70
71
  */
71
72
  selectionRuler: SelectionRuler;
73
+ /**
74
+ * The line of the selected shapes, where they agree on one — what a Line
75
+ * pick keeps the arrowheads, caps and joins of, as it sets the color,
76
+ * weight and dash. Null where they don't, or nothing is selected.
77
+ */
78
+ selectionLine: PaintLine | null;
79
+ /**
80
+ * Whether the current page of an image takes the shapes the Insert tab
81
+ * draws: false for an animated or a vector page, and for any other doc
82
+ * type. Re-read as the current page and the document change.
83
+ */
84
+ pageTakesMarkup: boolean;
85
+ /**
86
+ * Crop mode on an image's page — the page cropped, the aspect its box
87
+ * keeps, and whether the page shows a crop already, which Reset takes
88
+ * away — or null outside it. The box itself is the crop overlay's.
89
+ */
90
+ cropping: {
91
+ page: number;
92
+ aspect: CropAspect;
93
+ cropped: boolean;
94
+ } | null;
72
95
  /** The modes the host lets the user switch between (drives the mode
73
96
  * switcher, which offers those the session is entitled to —
74
97
  * `modeEntitled`). */
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,YAAY,EACZ,OAAO,EACV,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACtB;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAElC;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAE3C;;;;;;;OAOG;IACH,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC;;;;;;OAMG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;;;OAIG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;2BAEuB;IACvB,YAAY,EAAE,SAAS,UAAU,EAAE,CAAC;IAEpC;sCACkC;IAClC,cAAc,EAAE,OAAO,CAAC;IAExB;;kDAE8C;IAC9C,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,EAAE,SAYhC,CAAC;AAEF,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAEnD;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAE9D;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAE/F"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,YAAY,EACZ,OAAO,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACtB;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAElC;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAE3C;;;;;;;OAOG;IACH,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC;;;;;;OAMG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;;;OAIG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;;;OAIG;IACH,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAExE;;2BAEuB;IACvB,YAAY,EAAE,SAAS,UAAU,EAAE,CAAC;IAEpC;sCACkC;IAClC,cAAc,EAAE,OAAO,CAAC;IAExB;;kDAE8C;IAC9C,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,EAAE,SAehC,CAAC;AAEF,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAEnD;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAE9D;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAE/F"}
package/dist/state.js CHANGED
@@ -11,6 +11,9 @@ export const INITIAL_EDIT_STATE = {
11
11
  selectionText: EMPTY_SELECTION_TEXT_FORMAT,
12
12
  selectionPaint: EMPTY_SELECTION_PAINT,
13
13
  selectionRuler: EMPTY_SELECTION_RULER,
14
+ selectionLine: null,
15
+ pageTakesMarkup: false,
16
+ cropping: null,
14
17
  allowedModes: ALL_MODES,
15
18
  showModeSwitch: true,
16
19
  alignToPage: false,
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAUjG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AA6FzD,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAc;IACzC,mBAAmB,EAAE,KAAK;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,EAAE;IAChB,qBAAqB,EAAE,EAAE;IACzB,aAAa,EAAE,2BAA2B;IAC1C,cAAc,EAAE,qBAAqB;IACrC,cAAc,EAAE,qBAAqB;IACrC,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,KAAK;CACrB,CAAC;AAEF,oCAAoC;AACpC,MAAM,UAAU,SAAS,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,SAAsB,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,OAAuB;IAC/C,OAAO,OAAO,CAAC,SAAsB,CAAC;AAC1C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,KAA6B,EAAE,MAA0B;IACrF,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAWjG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAkHzD,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAc;IACzC,mBAAmB,EAAE,KAAK;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,EAAE;IAChB,qBAAqB,EAAE,EAAE;IACzB,aAAa,EAAE,2BAA2B;IAC1C,cAAc,EAAE,qBAAqB;IACrC,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,KAAK;CACrB,CAAC;AAEF,oCAAoC;AACpC,MAAM,UAAU,SAAS,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,SAAsB,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,OAAuB;IAC/C,OAAO,OAAO,CAAC,SAAsB,CAAC;AAC1C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,KAA6B,EAAE,MAA0B;IACrF,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY,QAg1BxB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY,QAk+BxB,CAAC"}
package/dist/styles.js CHANGED
@@ -339,6 +339,153 @@ export const editorStyles = css `
339
339
  outline-offset: 2px;
340
340
  }
341
341
 
342
+ /* The Image Size dialog's rows beyond the page-settings dialog's: the
343
+ pixel unit beside the size fields, the aspect lock, the original size, and
344
+ Reset at the footer's start. */
345
+ .udoc-ui-root .udoc-page-modal__unit-label {
346
+ flex: 0 0 auto;
347
+ height: 32px;
348
+ line-height: 32px;
349
+ font-size: 13px;
350
+ color: var(--udoc-color-on-surface-variant);
351
+ }
352
+
353
+ .udoc-ui-root .udoc-page-modal__check {
354
+ display: flex;
355
+ align-items: center;
356
+ gap: 8px;
357
+ margin-top: 12px;
358
+ font-size: 13px;
359
+ color: var(--udoc-color-on-surface);
360
+ cursor: pointer;
361
+ }
362
+
363
+ .udoc-ui-root .udoc-page-modal__check input {
364
+ margin: 0;
365
+ accent-color: var(--udoc-color-primary);
366
+ }
367
+
368
+ .udoc-ui-root .udoc-page-modal__hint {
369
+ margin: 12px 0 10px;
370
+ font-size: 12px;
371
+ color: var(--udoc-color-on-surface-variant);
372
+ font-variant-numeric: tabular-nums;
373
+ }
374
+
375
+ .udoc-ui-root .udoc-page-modal__secondary {
376
+ margin-right: auto;
377
+ height: 34px;
378
+ padding: 0 14px;
379
+ border: 1px solid var(--udoc-color-outline-variant);
380
+ border-radius: 6px;
381
+ background: transparent;
382
+ color: var(--udoc-color-on-surface);
383
+ font-size: 13px;
384
+ cursor: pointer;
385
+ }
386
+
387
+ .udoc-ui-root .udoc-page-modal__secondary:hover {
388
+ background-image: linear-gradient(var(--udoc-state-hover) 0 0);
389
+ }
390
+
391
+ /* --- Crop mode over an image's page (udoc:image-crop) ---
392
+ The page dimmed outside the box, the box with a rule-of-thirds grid and a
393
+ handle on each corner and edge, and the size badge. White over a dark edge,
394
+ not a theme role: it sits on the image, whatever the theme, so it reads on
395
+ light and dark pixels alike. */
396
+ .udoc-ui-root .udoc-crop {
397
+ position: relative;
398
+ pointer-events: auto;
399
+ touch-action: none;
400
+ }
401
+
402
+ .udoc-ui-root .udoc-crop__shade {
403
+ position: absolute;
404
+ background: rgb(0 0 0 / 0.5);
405
+ }
406
+
407
+ .udoc-ui-root .udoc-crop__box {
408
+ position: absolute;
409
+ box-sizing: border-box;
410
+ border: 1px solid #fff;
411
+ outline: 1px solid rgb(0 0 0 / 0.45);
412
+ cursor: move;
413
+ }
414
+
415
+ .udoc-ui-root .udoc-crop__grid {
416
+ position: absolute;
417
+ inset: 0;
418
+ pointer-events: none;
419
+ background-image:
420
+ linear-gradient(to right, rgb(255 255 255 / 0.5) 1px, transparent 1px),
421
+ linear-gradient(to bottom, rgb(255 255 255 / 0.5) 1px, transparent 1px);
422
+ background-size: calc(100% / 3) calc(100% / 3);
423
+ }
424
+
425
+ .udoc-ui-root .udoc-crop__handle {
426
+ position: absolute;
427
+ width: 10px;
428
+ height: 10px;
429
+ margin: -5px 0 0 -5px;
430
+ box-sizing: border-box;
431
+ background: #fff;
432
+ border: 1px solid rgb(0 0 0 / 0.6);
433
+ border-radius: 2px;
434
+ }
435
+
436
+ /* A wider target than the square it draws. */
437
+ .udoc-ui-root .udoc-crop__handle::before {
438
+ content: "";
439
+ position: absolute;
440
+ inset: -6px;
441
+ }
442
+
443
+ .udoc-ui-root .udoc-crop__handle--nw {
444
+ left: 0;
445
+ top: 0;
446
+ }
447
+ .udoc-ui-root .udoc-crop__handle--n {
448
+ left: 50%;
449
+ top: 0;
450
+ }
451
+ .udoc-ui-root .udoc-crop__handle--ne {
452
+ left: 100%;
453
+ top: 0;
454
+ }
455
+ .udoc-ui-root .udoc-crop__handle--e {
456
+ left: 100%;
457
+ top: 50%;
458
+ }
459
+ .udoc-ui-root .udoc-crop__handle--se {
460
+ left: 100%;
461
+ top: 100%;
462
+ }
463
+ .udoc-ui-root .udoc-crop__handle--s {
464
+ left: 50%;
465
+ top: 100%;
466
+ }
467
+ .udoc-ui-root .udoc-crop__handle--sw {
468
+ left: 0;
469
+ top: 100%;
470
+ }
471
+ .udoc-ui-root .udoc-crop__handle--w {
472
+ left: 0;
473
+ top: 50%;
474
+ }
475
+
476
+ .udoc-ui-root .udoc-crop__size {
477
+ position: absolute;
478
+ transform: translateX(-50%);
479
+ padding: 2px 8px;
480
+ border-radius: 4px;
481
+ background: rgb(0 0 0 / 0.7);
482
+ color: #fff;
483
+ font-size: 12px;
484
+ font-variant-numeric: tabular-nums;
485
+ white-space: nowrap;
486
+ pointer-events: none;
487
+ }
488
+
342
489
  /* --- New-Slide layout picker (NewSlideModal) --- */
343
490
 
344
491
  .udoc-ui-root .udoc-slide-picker {
@@ -438,7 +585,6 @@ export const editorStyles = css `
438
585
  display: block;
439
586
  width: 100%;
440
587
  height: auto;
441
- aspect-ratio: 16 / 9;
442
588
  border-radius: 3px;
443
589
  background: var(--udoc-color-surface);
444
590
  box-shadow: 0 0 0 1px var(--udoc-color-outline-variant) inset;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,uEAAuE;AACvE,+EAA+E;AAC/E,4BAA4B;AAC5B,MAAM,GAAG,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAg1B9B,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,uEAAuE;AACvE,+EAA+E;AAC/E,4BAA4B;AAC5B,MAAM,GAAG,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAk+B9B,CAAC"}
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 | "fontFamily" | "fontSize" | "bold" | "italic" | "underline" | "strikethrough" | "superscript" | "subscript" | "widthScale" | "textFill" | "textHighlight" | "paragraphAlign" | "lineSpacing" | "bulletList" | "numberList" | "shapeFillColor" | "shapeStrokeColor" | "shapeArrange" | "objectFillColor" | "objectStrokeColor" | "objectArrange" | "formattingMarks" | "createSlide" | "insertImage" | "insertShape";
5
+ export type EditCommandId = CommandId | "fontFamily" | "fontSize" | "bold" | "italic" | "underline" | "strikethrough" | "superscript" | "subscript" | "widthScale" | "textFill" | "textHighlight" | "paragraphAlign" | "lineSpacing" | "bulletList" | "numberList" | "shapeFillColor" | "shapeStrokeColor" | "shapeArrange" | "objectFillColor" | "objectStrokeColor" | "objectArrange" | "formattingMarks" | "createSlide" | "insertImage" | "insertShape" | "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":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,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,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,aAAa,CAAC;AAEpB,4BAA4B;AAC5B,KAAK,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AA4JtC,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,OAAO,EAAE,CAWrE"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,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,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,aAAa,GACb,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;AAoMtC,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,OAAO,EAAE,CAarE"}